md5 шифровка

12 3
Snoopik
На сайте с 20.02.2009
Offline
29
2416

Привет.Помогите.

Суть в том, что зашифровываю пароль.

Записываю данные в базу.Всё отлично.


$pass = md5($pass);

$zapros = "INSERT INTO users (name, famil, otechesvo, male, poll, email, login, pass, date) VALUES ('".$name."','".$famil."','".$otchestvo."','".$male."','".$poll."','".$email."','".$login."','".$pass."','".date("Y-m-d")."')";
$result = mysql_query($zapros);

А вот когда пытаюсь залогиниться, то не находит


$logi = $_POST['logi'];
$pas = $_POST['pass'];
$pas = md5($_POST['pass']);
$zapros = "select * from users where login='".$logi."' and pass='".$pas."'";
$result = mysql_query($zapros) or die("Ошибка");
$nr = mysql_num_rows($result);
$row = @mysql_fetch_array($result);
if ($nr == 0)
{
echo "Извините, но такого пользователя не существует.";
echo '<META HTTP-EQUIV="refresh" CONTENT="3 url=/usercp/">';
$aut=0;
}

Ввожу всё правильно всё равно пишет "Извините, но такого пользователя не существует.". помогите=(

public class SearchEngines
S0meT1me
На сайте с 07.06.2008
Offline
109
#1
Snoopik:
****$logi*=*$_POST['logi'];
****$pas*=*$_POST['pass'];
********$pas*=*md5($_POST['pass']);
****$zapros*=*"select***from*users*where*login='".$logi."'*and*pass='".$pas."'";
****$result*=*mysql_query($zapros)*or*die("Ошибка");
****$nr*=*mysql_num_rows($result);
****$row*=*@mysql_fetch_array($result);
****if*($nr*==*0)
****{
********echo*"Извините,*но*такого*пользователя*не*существует.";
********echo*'<META*HTTP-EQUIV="refresh"*CONTENT="3*url=/usercp/">';
********$aut=0;
****}*

1. $pas = $_POST['pass']; -- уберите, она не нужна (не ошибка, просто лишняя строка)

2. код вроде правильный, посмотрите имена инпутов, может они не совпадают с именами постовых переменных. попробуйте просто вывести что возвращает форма конструкцией print_r($_POST);

Snoopik
На сайте с 20.02.2009
Offline
29
#2
S0meT1me:
1. $pas = $_POST['pass']; -- уберите, она не нужна (не ошибка, просто лишняя строка)
2. код вроде правильный, посмотрите имена инпутов, может они не совпадают с именами постовых переменных. попробуйте просто вывести что возвращает форма конструкцией print_r($_POST);

Всё проверил..все имена правильные

print_r($_POST);

Создаётся массив..а там всё правильно..не понимаю..SOS

[Удален]
#3


<?php

$user = trim ( strip_tags ( $_POST ['logi'] ) );
$pass = trim ( strip_tags ( $_POST ['pass'] ) );

$query = "SELECT * FROM users WHERE login = '" . $user . "' LIMIT 1";

$result = mysql_query ( $query );
$row = @mysql_fetch_array ( $result );
$num = mysql_num_rows ( $result );

if ($num != '0') {
if ($row ['pass'] != md5( $pass )) {
echo 'Извините, но пароль не верный!.';
exit ();
} else {
echo 'В рот мне ноги, мне удалось авторизоваться =).';
exit ();
}
} else {
echo 'Извините, но такого пользователя не существует.';
exit ();
}

?>

вот так надо, только поля базы поставь свои

UPD: поправил, у тебя руки то есть у самого?

Snoopik
На сайте с 20.02.2009
Offline
29
#4
KosoyRoman:

<?php

$user = trim ( strip_tags ( $_POST ['logi'] ) );
$pass = trim ( strip_tags ( $_POST ['pass'] ) );

$query = "SELECT * FROM users WHERE login = '" . $user . "' LIMIT 1";

$result = mysql_query ( $query );
$row = @mysql_fetch_array ( $result );
$num = mysql_num_rows ( $result );

if ($num != '0') {
if ($row ['pass'] != $pass) {
echo 'Извините, но пароль не верный!.';
exit ();
} else {
echo 'В рот мне ноги, мне далось авторизоваться =).';
exit ();
}
} else {
echo 'Извините, но такого пользователя не существует.';
exit ();
}

?>




вот так надо, только поля базы поставь свои

дак мне нужно чтобы с md5 было

Pike
На сайте с 13.07.2004
Offline
79
#5

Начните с

echo($zapros);
free hosting (http://rahost.com)
dayw
На сайте с 25.01.2006
Offline
116
#6
дак мне нужно чтобы с md5 было

А где в указанном коде НЕТ md5?

Интернет-магазин игровых приставок в Москве (https://savelagame.ru)
Snoopik
На сайте с 20.02.2009
Offline
29
#7
dayw:
А где в указанном коде НЕТ md5?

Не заметил

N_MONax
На сайте с 22.08.2007
Offline
112
#8

KosoyRoman, Код красивый, но в предложенном Вами коде создаётся как минимум две переменные, которые могут быть лишними :)

Так-же, при проверке пароля логично первым проверять условие, вероятность которого возникнуть более вероятно, а именно когда пароль верный. А уже потом в "елсе" - если пароль неверный.

Полный спектр услуг в интернете. Быстро, Качественно, Дорого. Пишите в личку.
dayw
На сайте с 25.01.2006
Offline
116
#9
Snoopik:
Не заметил

Еще раз прочитайте сообщение, Роман его поправил :)

Берется из базы шифрованный пароль и проверяется с введенным паролем из формы, тоже зашифрованный в md5

[Удален]
#10

N_MONax да это чтобы ТС понять что к чему. Его велосипед подкрутил )

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий