|
|
|
| Здравствуйте!
Попогите разобраться. Как построить запрос на авторизацию если в в БД пароль захеширован md5 ? Код регистрации такой(Не смеяться)
function error($text){
echo "<table align='center'>
<tr>
<td>
<div align-'center'><font size='3' color='red' face='a_AlgeriusCaps'><u> ".$text." </u></font>
</div>
</td>
</tr>
<script language='Javascript'><!--
function reload() {location = \"reg_form.php\"}; setTimeout('reload()', 5000);
//--></script>
</table>";
exit;
}
if(isset($pas1) and trim($pass1) ==""):
error("Введите пароль !");
$error="y";
endif;
if(isset($pass2) and $pass2 == "$pass1"):
$userpassw = md5(trim($pass2));
else:
error("Пароль не подтвержден, или подтвержден не верно!");
$error="y";
endif;
##################################################################=>
if($error=="y"):
print "$form";
else:
mysql_query("INSERT INTO $user_table (user_login, user_pass, user_name, user_pol, user_email, user_icq, user_ip) VALUE ('$userlogin', '$userpassw', '$username', '$userpol', '$useremail', '$usericq', '$ip')");
echo "<br><br><br><br><center><font size='4' color=black face='Arial'><b>Вы успешно зарегистрированы $userllogin !<br>Через 10 секунд вы будете автоматически переброшены на главную стрницу. <br>Если это не происходит, нажмите <a href='index.php'>здесь</a>
<br><br><br><u>Ваши данные для авторизации</u> :<br>Логин : $login <br>Пароль : $pass2</b></font>
<script language='Javascript'><!--
function reload() {location = \"index.php\"}; setTimeout('reload()', 10000);
//--></script></center>";
endif;
?>
|
P.S. Помогите чайнику. | |
|
|
|
|
|
|
|
для: hell_riser
(01.05.2006 в 22:22)
| |
<?php
# выберем пароль из БД
$query = mysql_query("SELECT user_pass FROM $user_table WHERE user_name='$user_name'");
# если запрос успешный
if ( $query && mysql_num_rows($query) == 1 ) {
$fetch = mysql_fetch_assoc($query);
# сравним пароли
if ( $fetch['user_pass'] == $userpassw ) {
setcookie("name", $user_name);
setcookie("password", $userpassw);
print 'Вы залогинились';
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Саня
(01.05.2006 в 23:57)
| | Спасибо, но это не то. Возможно я не правильно вопрос поставил.
Короче мне надо либо как-то захешировать пасс авториз(тем же методом что и при регистр.. не работает) либо вытягивать из БД на проверку уже разшифрованый.
Код регистр.. такой
if(isset($pass2) and $pass2 == "$pass1"):
$userpassw = md5(trim($pass2)); //кодируем пароль
else:
error("Проли не совпадают!");
endif;
//Заталкиваем в БД.
mysql_query("INSERT INTO $user_table (user_login, user_pass, user_name, user_pol, user_email, user_icq, user_ip) VALUE ('$userlogin', '$userpassw', '$username', '$userpol', '$useremail', '$usericq', '$ip')");
|
Код авторизации .........
if (!empty($pass)): .
if (preg_match("/[0-9a-z_A-ZÀ-ßà-ÿ]/i", "$pass")):
$passw = md5(trim($pass)); //Кодируем пасс..
else:
print "<p align=\"center\"><font color=red face=Arial size=2>Òàêîé ïàðîëü íå äîïóñòèì!</font></p>";
endif;
//Вытягиваем пас из БД.
$valid = mysql_query("SELECT user_pass FROM $user_table WHERE user_login='$login'");
if ($valid && mysql_num_rows($valid)== 1):
$result = mysql_fetch_assoc($valid);
//Сравниваем.
if ($result['user_pass'] == $passw):
setcookie("login", $login);
setcookie("pass", $passw);
print "<center>Здравствуйте $login !<br> Вы авторизованы.</center>";
else :
print "Введенные данные не корректны!!! $auth";
endif;
endif;
|
Где я на портачил??? В БД пишет красиво, без проблем(без хеширования этот код работает тоже без проблем). | |
|
|
|
|
|
|
|
для: hell_riser
(02.05.2006 в 02:06)
| | Я бы переписал код регистрации так:
<?php
if( !empty($pass2) && $pass2 == $pass1) {
$userpassw = md5($pass2);
} else error("Проли не совпадают!");
$q = mysql_query("INSERT INTO $user_table (user_login, user_pass, user_name, user_pol,
user_email, user_icq, user_ip) VALUES ('$userlogin', '$userpassw',
'$username', '$userpol', '$useremail', '$usericq', '$ip')");
if ( !$q ) print "Невозможно зарегистрироваться<br/>".mysql_error();
?>
|
А код авторизации так:
<?pgp
if ( !empty($pass) ) {
$passw = md5($pass); //Кодируем пасс..
} else print "Введи пароль!";
$valid = mysql_query("SELECT user_pass FROM $user_table WHERE user_login='$login'");
if ($valid && mysql_num_rows($valid)== 1):
$result = mysql_fetch_assoc($valid);
if ($result['user_pass'] == $passw) {
setcookie("login", $login);
setcookie("pass", $passw);
print "<center>Здравствуйте $login !<br> Вы авторизованы.</center>";
} else print "Введенные данные не корректны!!! $auth";
}
?>
|
P. S.
Не стоит ограничивать пользователя в выборе символов для пароля. | |
|
|
|
|
|
|
|
для: Саня
(06.05.2006 в 18:18)
| | Вот такой код авторизации
<?
if (!empty($pass)):
$passw = md5($pass);
else:
print "<p align=\"center\"><font color=red face=Arial size=2>Вашь пароль ???</font></p>";
$error ="y";
endif;
if ($error =="y"): //Если ошибки найдены выводим форму, если нет, соединяемся с базой
print "$auth"; //и сравниваем логин и пароль.
else:
//выбираем пароль из БД.
$valid = mysql_query("SELECT user_pass FROM $user_table WHERE user_login='$login'");
//если запрос успешный.
if ($valid && mysql_num_rows($valid)== 1):
$result = mysql_fetch_assoc($valid);
//сравнить пароли.
if ($result['user_pass'] == $passw):
setcookie("login", $login, time()+6000);
setcookie("pass", $passw, time()+6000);
print "<center>Здравствуйте $login !</center>";
else :
print "Не верный логин или пароль!!! $auth";
endif;
endif;
endif;
?>
|
вроде всё тоже но не пашет.
код регистрации в ахиве.
Я уже отупел от этой авторизации | |
|
|
|
|
|
|
|
для: hell_riser
(06.05.2006 в 23:17)
| | Хм.. интересно. Прописал так ..
<?
$pasw = crypt($pass, 'XXX');
?>
|
и всё работает. | |
|
|
|