[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт автоиризации
Druids
Постоянно выводит что логин или пароль не верные =( Где я мог ошибиться?

<?php
session_start();
// Проверка нажатия клавиши "Войти"

if (!isset($_POST[‘enter’]))
{
?>

<center>
<
h4>АВТОРИЗАЦИЯ</h4><br>
<
form action="" method="post">
<
h4>Имя:</h4>
<
input type="text" name="email" value=""><br><br>
<
h4>Password:</h4>
<
input type="password" name="pass"><br><br>
<
input type="submit" name=‘enter’ value="Войти">
</
form></center>

<?php
}

else
{
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);
// Если кнопка нажата и если поля логина и пароля не пустые
if ((!empty($email)) or (!empty($pass)))
{
$pass = md5($pass);
require_once("connect.php");
// формируем SQL-запрос
$sql = "SELECT email,pass FROM USERS WHERE email='".$email."' and pass='".$pass."'";

// делаем запрос
$result = mysql_query ($sql);
if (!mysql_num_rows($result))
{
die ("Не верный логин или пароль <a href='index.php'> На главную </a>");
}
else
{
// записываем переменные в сессию
$line = mysql_fetch_row($result);
$_SESSION[‘autorized’]=true;
$_SESSION[‘email’]=$safe_name;
$_SESSION[‘role’]=$line[2];

// выводим ссылку для входа в админку (можно сделать перенаправление)
echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}
}

else
{
echo "<center><h4>Не введены данные</h4><br><a href=login.php>Назад</a></center>";
}
}


?>




Спустя 44 минуты, 38 секунд (13.07.2011 - 07:13) YVSIK написал(а):
у меня вот такая штука получилась, сравни
она работает уже и очень похожа на вашу посмотри тут

в вашем скрипе сразу два else подряд
что и не верно не соответствует логике
переправте первое else на ifelse

Спустя 7 минут, 50 секунд (13.07.2011 - 07:21) Druids написал(а):
Цитата (YVSIK @ 13.07.2011 - 04:13)
у меня вот такая штука получилась, сравни
она работает уже и очень похожа на вашу посмотри тут

Спасибо, сейчас ваш скрипт попробую переделать под себя. =)
Но вот хотелось бы в своём найти ошибку =) уже всё вроде пересмотрел, а ошибку так и не нашёл =(

Можешь рассказать принцип вот этой сроки, а то у меня с мускулом ещё пока проблемно.

 $result = mysql_query("SELECT id FROM `reg_li_ag` WHERE `loginl` = '$loginl'"
." AND `parol` = '$parol'", $db)


Интересует почему select id?
И в примере моего скрипта, может будет тоже id?

Спустя 8 минут, 19 секунд (13.07.2011 - 07:29) YVSIK написал(а):
знаешь самоя главная ошибка это написание самого стиля
скрипта , вот смотри всё в одной строчке начинается
и не видать где начало а где конец того или иного условия
я да и все так начинают писать А потом приведу и нормальному виду
вот это и сбивает с толку ,
потом как всегда уже не наступит никогда

Спустя 9 минут, 24 секунды (13.07.2011 - 07:39) Druids написал(а):
Привел к читабельному виду. ifelse думаю не нужен =) каждый else относится к своему if. Или я напутал?

Спустя 4 минуты, 46 секунд (13.07.2011 - 07:44) YVSIK написал(а):
Цитата
Интересует почему select id?
И в примере моего скрипта, может будет тоже id?

ну у меня такая тогда была логика ID он-же один для одного пользователя
другого ID уже не будет
далее просто перечислил по каким полям в этом ID искать
и запускать сессию

Спустя 2 минуты, 26 секунд (13.07.2011 - 07:46) YVSIK написал(а):
смотри сам что написал два отдельных скрипа
ты просто разорвал один вот и условия не проходят
вот как помогают этот новый стиь сам терь видить должен
у тя новый скрипт начинаеться условия else
smile.gif smile.gif

Спустя 3 минуты, 42 секунды (13.07.2011 - 07:50) Druids написал(а):
Не могу понять, де разорвал, только что все условия проверил. все if и else. всё верно =)

Спустя 26 секунд (13.07.2011 - 07:50) YVSIK написал(а):
терь правило в одном if должен быть только один else

только один !!

Спустя 1 минута, 41 секунда (13.07.2011 - 07:52) YVSIK написал(а):
Цитата
Не могу понять, де разорвал, только что все условия проверил. все if и else. всё верно =)

теперь они стали полностью независимы
получилось что в каждом свое условие
потому и нет желаемого результата

Цитата
а то у меня с мускулом ещё пока проблемно.

в подпись глянь пригодится для мускула

Спустя 5 минут, 58 секунд (13.07.2011 - 07:58) Druids написал(а):
Цитата (YVSIK @ 13.07.2011 - 04:50)
терь правило в одном if должен быть только один else

только один !!

Одному if должен принадлежать только 1 else =)

Не получается сообразить где я напутал. можешь переписать как будет верно?

Спустя 5 минут, 27 секунд (13.07.2011 - 08:03) YVSIK написал(а):
<?php
}

else
{
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);

вот твоё начало скрипта ??? с чего он начинаетьс ???? с чего ????

вот так переделай
<?php session_start(); ?>

тут код формы или ещё какойнить далЬше второй скрипт
<?php
if (!isset($_POST[‘enter’]))
{


else
{
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);

Спустя 30 минут, 41 секунда (13.07.2011 - 08:34) Druids написал(а):
Тогда может условие всё переделать под и будет так?

<?php
session_start();
// Проверка нажатия клавиши "Войти"
?>
<center>

<
h4>АВТОРИЗАЦИЯ</h4><br>
<
form action="" method="post">
<
h4>Имя:</h4>
<
input type="text" name="email" value=""><br><br>
<
h4>Password:</h4>
<
input type="password" name="pass"><br><br>
<
input type="submit" name=‘enter’ value="Войти">
</
form></center>
<?php
if (isset($_POST[‘enter’]) and ((!empty($email)) or (!empty($pass))))
{
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);
$pass = md5($pass);
require_once("connect.php");
// формируем SQL-запрос
$sql = "SELECT id FROM USERS WHERE email='".$email."' and pass='".$pass."'";

// делаем запрос
$result = mysql_query ($sql);
if (!mysql_num_rows($result))
{
die ("Не верный логин или пароль <a href='index.php'> На главную </a>");
}
else
{
// записываем переменные в сессию
$line = mysql_fetch_row($result);
$_SESSION[‘autorized’]=true;
$_SESSION[‘email’]=$safe_name;
$_SESSION[‘role’]=$line[2];

// выводим ссылку для входа в админку (можно сделать перенаправление)
echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}
}

else
{
echo "Проверьте Логин и пароль";
}
?>

Спустя 5 минут, 2 секунды (13.07.2011 - 08:39) Druids написал(а):
Но это в конец не верно получается =(

Спустя 6 минут, 4 секунды (13.07.2011 - 08:45) quickxyan написал(а):
сначала идет проверка переменной на пустоту, а потом если условие проходит ты ей что-то присваиваешь - не очень правильный подход.


if (isset($_POST['enter']) and ((!empty($_POST['email'])) or (!empty($_POST['pass']))))
{
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);

Спустя 2 минуты, 13 секунд (13.07.2011 - 08:47) Админ написал(а):
Цитата
‘enter’

это что за кавычки такие интересные
Цитата
if (isset($_POST[‘enter’]) and ((!empty($email)) or (!empty($pass))))

а переменные то откуда берутся

Спустя 13 секунд (13.07.2011 - 08:47) YVSIK написал(а):
$result = mysql_query ($sql);
if (!mysql_num_rows($result))
{
die ("Не верный логин или пароль <a href='index.php'> На главную </a>");
}
else
{
// записываем переменные в сессию
$line = mysql_fetch_row($result);
$_SESSION[‘autorized’]=true;
$_SESSION[‘email’]=$safe_name;
$_SESSION[‘role’]=$line[2];

// выводим ссылку для входа в админку (можно сделать перенаправление)
echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}

знаешь ту полная логика ваша отсутствует
попробуйте сказать словам что тут написано
и прогворите что теперь я написал

die ("Не верный логин или пароль <a href='index.php'> На главную </a>");

die что оно значит ?
может eche

Спустя 2 минуты, 15 секунд (13.07.2011 - 08:50) Админ написал(а):
YVSIK
не путай человека - сам вообще набрал бы в гугле что значит die

Спустя 3 минуты, 49 секунд (13.07.2011 - 08:53) Админ написал(а):
а так по делу если - не будет этот скрипт никогда работать ибо валидация проходит после того как страница сгенерирована - а это господа только аяксом можно сделать

Спустя 4 минуты, 3 секунды (13.07.2011 - 08:58) Druids написал(а):
Последний вариант скрипта вот такой: Ошибку выдаёт что "Логин или пароль не верны, а в базе и логин и пасс есть"

<?php
session_start();
// Проверка нажатия клавиши "Войти"
?>
<center>
<
h4>АВТОРИЗАЦИЯ</h4><br>
<
form action="" method="post">
<
h4>Имя:</h4>
<
input type="text" name="email" value=""><br><br>
<
h4>Password:</h4>
<
input type="password" name="pass"><br><br>
<
input type="submit" name=‘enter’ value="Войти">
</
form></center>

<?php
if (isset($_POST[‘enter’]))
{
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);

if ((!empty($email)) or (!empty($pass)))
{
$pass = md5($pass);
require_once("connect.php");
// формируем SQL-запрос
$sql = "SELECT email, pass FROM USERS WHERE email='".$email."' and pass='".$pass."'";

// делаем запрос
$result = mysql_query ($sql);
if (!mysql_num_rows($result))
{
die ("Не верный логин или пароль <a href='index.php'> На главную </a>");
}
else
{
// записываем переменные в сессию
$line = mysql_fetch_row($result);
$_SESSION[‘autorized’]=true;
$_SESSION[‘email’]=$safe_name;
$_SESSION[‘role’]=$line[2];

// выводим ссылку для входа в админку (можно сделать перенаправление)
echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}
}
}

?>


2 Админ, как тогда сделать норм скрипт? я уже мозг себе вынес =(

Спустя 7 минут, 13 секунд (13.07.2011 - 09:05) Админ написал(а):
Цитата
как тогда сделать норм скрипт?

руками наверно.
У тебя в одном файле форма и тут же ниже проверка - но пойми простую вещь php формирует страницу - а как скрипт может чё то там проверить если он уже отработал. хотя хрен его знает - я таких экспериментов не ставил.

<?php
session_start();
// Проверка нажатия клавиши "Войти"

if (isset($_POST[‘enter’]))
{
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);

if ((!empty($email)) or (!empty($pass)))
{
$pass = md5($pass);
require_once("connect.php");
// формируем SQL-запрос
$sql = "SELECT email, pass FROM USERS WHERE email='".$email."' and pass='".$pass."'";

// делаем запрос
$result = mysql_query ($sql);
if (!mysql_num_rows($result))
{
die ("Не верный логин или пароль <a href='index.php'> На главную </a>");
}
else
{
// записываем переменные в сессию
$line = mysql_fetch_row($result);
$_SESSION[‘autorized’]=true;
$_SESSION[‘email’]=$safe_name;
$_SESSION[‘role’]=$line[2];

// выводим ссылку для входа в админку (можно сделать перенаправление)
echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}
}
}

?>

<center>
<
h4>АВТОРИЗАЦИЯ</h4><br>
<
form action="этот файл" method="post">
<
h4>Имя:</h4>
<
input type="text" name="email" value=""><br><br>
<
h4>Password:</h4>
<
input type="password" name="pass"><br><br>
<
input type="submit" name="enter" value="Войти">
</
form></center>

дальше лень и кавычки исправь на человечьи

Спустя 1 минута, 19 секунд (13.07.2011 - 09:06) quickxyan написал(а):
ну вот таки стоит эти кавычки поменять!


if (isset($_POST['enter']))

$_SESSION['autorized']=true;
$_SESSION['email']=$safe_name;
$_SESSION['role']=$line[2];


Спустя 18 минут, 38 секунд (13.07.2011 - 09:25) Druids написал(а):
Исправил ковычки, поставил вариант Админа, но отказывается воспринимать из базы данных логин и пароль =(

может моя ошибка, где-то здесь?

$sql = "SELECT email, pass FROM USERS WHERE email='".$email."' and pass='".$pass."'";

// делаем запрос
$result = mysql_query ($sql);
if (!mysql_num_rows($result))
{
die ("Не верный логин или пароль <a href='index.php'> На главную </a>");
}

Спустя 5 минут, 23 секунды (13.07.2011 - 09:30) quickxyan написал(а):
я бы сделал так(догадываюсь, что делает mysql_fetch_row, но точно не знаю)


if (!mysql_num_rows($result))
{
die ("Не верный логин или пароль <a href='index.php'> На главную </a>");
}
else
{
// записываем переменные в сессию
$line = mysql_fetch_assoc($result);
$_SESSION['autorized']=true;
$_SESSION['email']=$line['email']; //тут поле с БД
$_SESSION['role']=$line['role']; //тут тоже

// выводим ссылку для входа в админку (можно сделать перенаправление)

echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}

Спустя 25 минут, 8 секунд (13.07.2011 - 09:55) YVSIK написал(а):
Druids попробуй так
возьми мой скрипт и примени
и ещё любой скрипт начинается с малого
поробуй его минимизировать
чтоб только логика потом исправишь внесешь все необходимое

Спустя 2 минуты, 26 секунд (13.07.2011 - 09:58) Druids написал(а):
Сейчас я переписываю своё.

Вот смотрите.
берем с самого начала.
Начинаем с сессии (session_start()wink.gif далее делаем проверку если нажата кнопка и правилен пароль с мылом, далее делаем сверку с базой а после этого уже авторизуемся?

А в самом конце уже вставляем форму

Спустя 6 минут, 45 секунд (13.07.2011 - 10:04) YVSIK написал(а):
так щас найду тему свою как я дошел до этого скрипа своего

вотт http://phpforum.ru/index.php?showtopic=40622&st=0

Спустя 57 минут (13.07.2011 - 11:01) DeeKeiD написал(а):
Попробуй так
Свернутый текст


<?php
session_start();

if(isset($_POST['enter']))
{
/* Пинимаем данные из формы */
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);
/* Проверяем на заполнение */
if(empty($pass) || empty($email))
{
die('Заполните все поля');
}
else
{
/* Проверяем на существование пользователя */
$result = "SELECT `email`, `pass` FROM `USERS` WHERE `email` = '".$email."' AND `pass` = '".$pass."'";
if (mysql_num_rows($result) < 1)
{
die ("Не верный логин или пароль <a href='index.php'> На главную </a>");
}
else
{
// записываем переменные в сессию
$line = mysql_fetch_row($result);
$_SESSION[‘autorized’]=true;
$_SESSION[‘email’]=$safe_name;
$_SESSION[‘role’]=$line[2];
// выводим ссылку для входа в админку (можно сделать перенаправление)
echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}
}
}

else
{
?>
<center>
<
h4>АВТОРИЗАЦИЯ</h4><br>
<
form action="этот файл" method="post">
<
h4>Имя:</h4>
<
input type="text" name="email" value=""><br><br>
<
h4>Password:</h4>
<
input type="password" name="pass"><br><br>
<
input type="submit" name="enter" value="Войти">
</
form>
</
center>
<?php
}
?>


Спустя 4 часа, 48 минут, 58 секунд (13.07.2011 - 15:50) Druids написал(а):
Ошибка вот в этом кусочке кода. Матерится вот так... Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in W:\home\localhost\www\123\login.php on line 18
Как подправить код?
		/* Проверяем на существование пользователя */
$result="SELECT email, pass FROM USERS WHERE email='".$email."', pass='".$pass."'";
if (mysql_num_rows($result))
{
// записываем переменные в сессию
$line = mysql_fetch_row($result);
$_SESSION['autorized']=true;
$_SESSION['email']=$email;
$_SESSION['role']=$line[2];
// выводим ссылку для входа в админку (можно сделать перенаправление)
echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}
else
{
echo 'Логин или пароль не верны!';
}

Весь код
<?php
session_start();

if(isset($_POST['enter']))
{
/* Пинимаем данные из формы */
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);
/* Проверяем на заполнение */
if(empty($pass) || empty($email))
{
echo 'Заполните все поля';
}
else
{
/* Проверяем на существование пользователя */
$result="SELECT email, pass FROM USERS WHERE email='".$email."', pass='".$pass."'";
if (mysql_num_rows($result))
{
// записываем переменные в сессию
$line = mysql_fetch_row($result);
$_SESSION['autorized']=true;
$_SESSION['email']=$email;
$_SESSION['role']=$line[2];
// выводим ссылку для входа в админку (можно сделать перенаправление)
echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}
else
{
echo 'Логин или пароль не верны!';
}
}
}

else
{
?>
<center>
<
h4>АВТОРИЗАЦИЯ</h4><br>
<
form action="" method="post">
<
h4>Имя:</h4>
<
input type="text" name="email" value=""><br><br>
<
h4>Password:</h4>
<
input type="password" name="pass"><br><br>
<
input type="submit" name="enter" value="Войти">
</
form>
</
center>
<?php
}
?>

Спустя 9 минут, 57 секунд (13.07.2011 - 16:00) Invis1ble написал(а):
$result = mysql_query(
"SELECT `email`, `pass`
FROM `USERS`
WHERE `email` = '"
.mysql_real_escape_string($email) . "' AND
`pass` = '"
. mysql_real_escape_string($pass) . "'"
) or die(mysql_error());

Спустя 2 минуты, 29 секунд (13.07.2011 - 16:03) Druids написал(а):
Теперь вот такая ошибка в тех же строках.

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in W:\home\localhost\www\123\login.php on line 17

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in W:\home\localhost\www\123\login.php on line 17

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in W:\home\localhost\www\123\login.php on line 17

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in W:\home\localhost\www\123\login.php on line 17

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in W:\home\localhost\www\123\login.php on line 17

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in W:\home\localhost\www\123\login.php on line 17
Access denied for user 'ODBC'@'localhost' (using password: NO)

Спустя 1 минута, 14 секунд (13.07.2011 - 16:04) Админ написал(а):
ну дак тебе ж всё написали - нету у тебя с базой соединения

Спустя 55 секунд (13.07.2011 - 16:05) Invis1ble написал(а):
Druids
все верно, где mysql_connect() ? где mysql_select_db() ?

Спустя 1 минута, 45 секунд (13.07.2011 - 16:07) Druids написал(а):
Цитата (Invis1ble @ 13.07.2011 - 13:05)
Druids
все верно, где mysql_connect() ? где mysql_select_db() ?

забыл пропиать =)
Прописал, теперь
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' pass='934d980be49bbe4694aae578cd90cf86'' at line 1

Спустя 2 минуты, 14 секунд (13.07.2011 - 16:09) Invis1ble написал(а):
Druids
посмотри еще раз мой пост, я его подредактировал

Спустя 1 минута, 36 секунд (13.07.2011 - 16:11) YVSIK написал(а):
У вас есть ошибка в синтаксисе SQL; проверить документацию по используемой версии MySQL на предмет корректного синтаксиса около 'проходят = '934d980be49bbe4694aae578cd90cf86''в строке 1
вот полный перевод гуглом

Спустя 4 минуты, 4 секунды (13.07.2011 - 16:15) Druids написал(а):
Да английский я и без переводчика знаю =)
Теперь всё таже трабла, что и с самого начала.

<?php
session_start();

if(isset($_POST['enter']))
{
require_once("connect.php");
/* Пинимаем данные из формы */
$pass = trim($_POST['pass']);
$email = trim($_POST['email']);
/* Проверяем на заполнение */
if(empty($pass) || empty($email))
{
echo 'Заполните все поля';
}
else
{

/* Проверяем на существование пользователя */
$pass=md5($pass);
$result = mysql_query(
"SELECT `email`, `pass`
FROM `USERS`
WHERE `email` = '"
.mysql_real_escape_string($email) . "' AND
`pass` = '"
. mysql_real_escape_string($pass) . "'"
) or die(mysql_error());


if (mysql_num_rows($result))
{
// записываем переменные в сессию
$line = mysql_fetch_row($result);
$_SESSION['autorized']=true;
$_SESSION['email']=$email;
$_SESSION['role']=$line[2];
// выводим ссылку для входа в админку (можно сделать перенаправление)
echo "<center><h4>Авторизация прошла успешно</h4><br><a href=index.php>Вернуться на главную</a><br><br><a href=’admin.php’>Войти в админку</a></center>";
}
else
{
echo 'Логин или пароль не верны!';
}
}
}

else
{
?>
<center>
<
h4>АВТОРИЗАЦИЯ</h4><br>
<
form action="" method="post">
<
h4>Имя:</h4>
<
input type="text" name="email" value=""><br><br>
<
h4>Password:</h4>
<
input type="password" name="pass"><br><br>
<
input type="submit" name="enter" value="Войти">
</
form>
</
center>
<?php
}
?>


Он выводит теперь постоянно, что логин и пароль не верны.
Но если if (mysql_num_rows($result)) меняем на if (!mysql_num_rows($result)), то авторизуются абсолютно все =)

Как такое правится? ответ руками я уже слышал =)

Спустя 2 минуты, 57 секунд (13.07.2011 - 16:18) Админ написал(а):
Цитата
FROM `USERS`

первое что коробит - ты зачем название таблицы большими написал

Спустя 1 минута, 2 секунды (13.07.2011 - 16:19) Druids написал(а):
Цитата (Админ @ 13.07.2011 - 13:18)
Цитата
FROM `USERS`

первое что коробит - ты зачем название таблицы большими написал

Да у меня и сама таблица большими буквами написана. в phpmyadmin, т.е. синтаксис верен. в названии ошибки нет.

http://clip2net.com/clip/m56917/1310563169-clip-31kb.png - на всякий случай скрин таблички.

Спустя 2 минуты, 21 секунда (13.07.2011 - 16:21) YVSIK написал(а):
так когда в базу прописываешь ты пароль также
хешируешь ? $pass=md5($pass);
может там нет такого пароля или он не совпадает ?)))))))
гГг=== согласно скина у тя в базе ведь нет ничего

Спустя 1 минута, 53 секунды (13.07.2011 - 16:23) Winston написал(а):
Это лишнее
Цитата (Druids @ 13.07.2011 - 16:15)
`pass` = '" . mysql_real_escape_string($pass) . "'"

Достаточно
`pass` = '" .$pass. "'"


А если так написать
Цитата
if (mysql_num_rows($result) > 0)

Спустя 13 секунд (13.07.2011 - 16:23) Druids написал(а):
Цитата (YVSIK @ 13.07.2011 - 13:21)
так когда в базу прописываешь ты пароль также
хешируешь ? $pass=md5($pass);
может там нет такого пароля или он не совпадает ?)))))))
гГг=== согласно скина у тя в базе ведь нет ничего

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

Спустя 2 минуты, 36 секунд (13.07.2011 - 16:26) Druids написал(а):
Цитата (PHPprogramer @ 13.07.2011 - 13:23)
Это лишнее
Цитата (Druids @ 13.07.2011 - 16:15)
`pass` = '" . mysql_real_escape_string($pass) . "'"

Достаточно
`pass` = '" .$pass. "'"


А если так написать
Цитата
if (mysql_num_rows($result) > 0)

Логин и пароль не верны

Спустя 1 минута, 20 секунд (13.07.2011 - 16:27) Winston написал(а):
Попробуй вообще без mysql_real_escape_string написать в запросе



Спустя 1 минута, 6 секунд PHPprogramer написал(а):
И пропиши вот так на всякий случай
echo $pass	=	md5(trim($_POST['pass']));
echo $email = trim($_POST['email']);

И сравни с тем, что в базе

Спустя 5 минут, 21 секунда (13.07.2011 - 16:32) Druids написал(а):
PHPprogramer
тоже самое. проверил что выводит.
Тоже самое что и в базе.

Спустя 1 минута, 7 секунд (13.07.2011 - 16:33) Админ написал(а):
Цитата
Да у меня и сама таблица большими буквами написана. в phpmyadmin, т.е. синтаксис верен. в названии ошибки нет.

зато в настройках phpmyadmin есть такая интересная переменная как lower_case_table_names

Спустя 2 минуты, 59 секунд (13.07.2011 - 16:36) YVSIK написал(а):
$pass=md5($pass);
$result = mysql_query(
"SELECT `email`, `pass`
FROM `USERS`
WHERE `email` = '"
.mysql_real_escape_string($email) . "' AND
`pass` = '"
. mysql_real_escape_string($pass) . "'"
) or die(mysql_error());

тут все дело в кавычках вы их перепутали задом на перед
щас подравлю

Спустя 41 секунда (13.07.2011 - 16:37) Druids написал(а):
Цитата (Админ @ 13.07.2011 - 13:33)
Цитата
Да у меня и сама таблица большими буквами написана. в phpmyadmin, т.е. синтаксис верен. в названии ошибки нет.

зато в настройках phpmyadmin есть такая интересная переменная как lower_case_table_names

толку 0. перепробовал Users, USERS, users - результат всегда 1 и тот-же

Спустя 1 минута, 11 секунд (13.07.2011 - 16:38) YVSIK написал(а):
теперь всё
$pass=md5($pass);
$result = mysql_query(
"SELECT `email`, `pass`
FROM `USERS`
WHERE `email` =" '.mysql_real_escape_string($email) . '" AND
`pass` = "' . mysql_real_escape_string($pass) . '"
) or die(mysql_error());

надо лишь найти отличия

Спустя 39 секунд (13.07.2011 - 16:39) Winston написал(а):
Может у вас включены магические кавычки ?



Спустя 42 секунды PHPprogramer написал(а):
YVSIK
Цитата (YVSIK @ 13.07.2011 - 16:36)
тут все дело в кавычках вы их перепутали задом на перед

Это к вам smile.gif

Спустя 1 минута (13.07.2011 - 16:40) Админ написал(а):
покажи connect.php - а то я смотрю в базе кодировка ср1251

Спустя 1 минута, 42 секунды (13.07.2011 - 16:42) YVSIK написал(а):
да каккие магические кавычки то
вы местами поменяли эти "c '
сам попутал сдаюсь

Спустя 59 секунд (13.07.2011 - 16:43) Druids написал(а):
<?php
$sqlhost="localhost";
$sqluser="root";
$sqlpass="";
$db="WorldVote";

//Подключение к MySQL
mysql_connect ($sqlhost, $sqluser, $sqlpass) or die ("MySQL не доустпен ".mysql_error());
//Подключение к БД
mysql_select_db ($db) or die ("Нет соединения с БД ".mysql_error());
?>


Коннект рабочий, проверял на скрипте регистрации

Спустя 19 секунд (13.07.2011 - 16:43) Winston написал(а):
Цитата (YVSIK @ 13.07.2011 - 16:42)
вы местами поменяли эти "c '

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

Спустя 1 минута, 31 секунда (13.07.2011 - 16:44) Админ написал(а):
user posted image

=" '.mysql_real_escape_string($email) . '" AND
`pass` = "' . mysql_real_escape_string($pass) . '"

ржу ни магу

Спустя 9 секунд (13.07.2011 - 16:45) Winston написал(а):
Возможно база в одной кодировке, а скрипт отдает в другой
<?php
$sqlhost="localhost";
$sqluser="root";
$sqlpass="";
$db="WorldVote";

//Подключение к MySQL
mysql_connect ($sqlhost, $sqluser, $sqlpass) or die ("MySQL не доустпен ".mysql_error());
//Подключение к БД
mysql_select_db ($db) or die ("Нет соединения с БД ".mysql_error());
mysql_query('SET NAMES utf8');
?>


Я дописал кодировке в конце кода, поменяйте utf8 на ту которая у вас, если что

Спустя 2 минуты, 23 секунды (13.07.2011 - 16:47) YVSIK написал(а):
$db="WorldVote";

а база как зоветься к которой вы цепляетесь ???

 FROM `USERS`

Спустя 1 минута, 6 секунд (13.07.2011 - 16:48) Druids написал(а):
Цитата (YVSIK @ 13.07.2011 - 13:47)
$db="WorldVote";

а база как зоветься к которой вы цепляетесь ???

Ну а как думаешь? =)
WorldVote - я же скринчик кидал =)

Мне кажется или таблица от базы отличается?
Таблица USERS, База WorldVote

Спустя 18 секунд (13.07.2011 - 16:48) Invis1ble написал(а):
пароль в запросе где хешируется? что-то не понятно....
покажи скрин содержимого из phpmyadmin и дамп запроса сделай.
$pass=md5($pass); // вот этого в коде я не увидел
$q = "SELECT `email`, `pass`
FROM `USERS`
WHERE `email` = '"
.mysql_real_escape_string($email) . "' AND
`pass` = '"
. $pass . "'";
echo '<pre>'; print_r($q); echo '</pre>'; // смотрим, какой запрос получился и сравниваем со скриншотом таблицы
$result = mysql_query($q) or die(mysql_error());

Спустя 34 секунды (13.07.2011 - 16:49) Winston написал(а):
Кодировка сайта, какая у тебя, и базы ?

Спустя 35 секунд (13.07.2011 - 16:50) YVSIK написал(а):
FROM `USERS`
а зоветься она как ???
в запросе ты к другой цепляешся к другой biggrin.gif biggrin.gif

Спустя 41 секунда (13.07.2011 - 16:50) Winston написал(а):
Цитата (Invis1ble @ 13.07.2011 - 16:48)
$pass=md5($pass); // вот этого в коде я не увидел

Спустя 1 минута, 5 секунд (13.07.2011 - 16:51) Druids написал(а):
Цитата (PHPprogramer @ 13.07.2011 - 13:49)
Кодировка сайта, какая у тебя, и базы ?

как вы и говорили сменил на cp1251_general_ci

Спустя 1 минута, 13 секунд (13.07.2011 - 16:53) Invis1ble написал(а):
Цитата
Здесь

да, провтыкал smile.gif тогда экранирование естественно лишнее

Спустя 45 секунд (13.07.2011 - 16:53) Druids написал(а):
Цитата (Invis1ble @ 13.07.2011 - 13:48)
пароль в запросе где хешируется? что-то не понятно....
покажи скрин содержимого из phpmyadmin и дамп запроса сделай.
$pass=md5($pass); // вот этого в коде я не увидел
$q = "SELECT `email`, `pass`
FROM `USERS`
WHERE `email` = '"
.mysql_real_escape_string($email) . "' AND
`pass` = '"
. $pass . "'";
echo '<pre>'; print_r($q); echo '</pre>'; // смотрим, какой запрос получился и сравниваем со скриншотом таблицы
$result = mysql_query($q) or die(mysql_error());

SELECT `email`, `pass`
FROM `USERS`
WHERE `email` = 'druids91@mail.ru' AND
`pass` = '934d980be49bbe4694aae578cd90cf86'

Спустя 7 секунд (13.07.2011 - 16:53) Winston написал(а):
База у тебя в windows-1251 ?
Цитата (Druids @ 13.07.2011 - 16:51)
как вы и говорили сменил на cp1251_general_ci

Тогда в файле коннекта пропиши
mysql_query('SET NAMES cp1251');

Спустя 37 секунд (13.07.2011 - 16:54) Админ написал(а):
не ну сделай так в самом начале

include 'connect.php';
$res = mysql_query ("SELECT * FROM `USERS`");
while = ($row = mysql_fetch_assoc ($res))
{
echo $row ['pass'].'<br />';
}

Спустя 2 минуты, 16 секунд (13.07.2011 - 16:56) Invis1ble написал(а):
нужно прописать SET NAMES, как написал PHPProgramer, а также сам файл со скриптом желательно чтоб cp1251 тоже был
кстати, после смены кодировки БД, при том, что она наполенена данными в другой кодировке бывают бока, насколько я слышал

Спустя 2 минуты, 16 секунд (13.07.2011 - 16:59) Druids написал(а):
Invis1ble
PHPprogramer
Кодировку указал, как говорите, но проблема остаётся =(

include 'connect.php';
$res = mysql_query ("SELECT * FROM `USERS`");
while = ($row = mysql_fetch_assoc ($res))
{
echo $row ['pass'].'<br />';
}


Ругается на 4ю строку - while = ($row = mysql_fetch_assoc ($res))
Parse error: syntax error, unexpected '=', expecting '(' in W:\home\localhost\www\123\login.php on line 4

Спустя 48 секунд (13.07.2011 - 16:59) Invis1ble написал(а):
= лишнее, очепятка

Спустя 19 секунд (13.07.2011 - 17:00) Админ написал(а):
while ($row = mysql_fetch_assoc ($res)) знак равно убери - блин тут редактор неудобный

Спустя 34 секунды (13.07.2011 - 17:00) Druids написал(а):
934d980be49bbe46
934d980be49bbe46

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at W:\home\localhost\www\123\login.php:6) in W:\home\localhost\www\123\login.php on line 8

Спустя 31 секунда (13.07.2011 - 17:01) Invis1ble написал(а):
и покажи все таки 2 скрина, 1 - со структурой, 2-ой - с данными

Спустя 36 секунд (13.07.2011 - 17:01) Админ написал(а):
тогда я вообще ничего не понимаю

Спустя 42 секунды (13.07.2011 - 17:02) Druids написал(а):

Спустя 2 минуты, 24 секунды (13.07.2011 - 17:04) Invis1ble написал(а):
хеш пароля в БД 16-битный, видимо обрезанный, либо зашифрованный по другому алгоритму
в этом вся проблема

Спустя 28 секунд (13.07.2011 - 17:05) Winston написал(а):
Скопируйте хеш пароля с базы и сравните его в скрипте
if($pass == 'a2d5f6.....')
echo 'OK';
else
echo 'bad';

Спустя 40 секунд (13.07.2011 - 17:06) Invis1ble написал(а):
PHPprogramer
да что там сравнивать, и так видно smile.gif

Спустя 2 минуты, 36 секунд (13.07.2011 - 17:08) Админ написал(а):
ну ёлки палки - такая банальщина

Спустя 7 секунд (13.07.2011 - 17:08) Druids написал(а):
тогда вопрос, как её поправить? =-)

Спустя 5 минут, 46 секунд (13.07.2011 - 17:14) Invis1ble написал(а):
короче это md5-хеш обрезанный пополам
$q = "SELECT `email`, `pass`
FROM `USERS`
WHERE `email` = '"
. mysql_real_escape_string($email) . "' AND
`pass` = '"
. substr(md5($pass), 0, 16) . "'";
echo '<pre>'; print_r($q); echo '</pre>'; // смотрим, какой запрос получился и сравниваем со скриншотом таблицы
$result = mysql_query($q) or die(mysql_error());

Спустя 22 секунды (13.07.2011 - 17:14) Админ написал(а):
длину у поля pass сделай 32

Спустя 8 секунд (13.07.2011 - 17:15) Winston написал(а):
Во разфлудились мы здесь, аж форум ложится laugh.gif

Спустя 2 минуты, 3 секунды (13.07.2011 - 17:17) YVSIK написал(а):
Цитата
так когда в базу прописываешь ты пароль также
хешируешь ? $pass=md5($pass);
????

Спустя 21 секунда (13.07.2011 - 17:17) Winston написал(а):
Цитата (Invis1ble @ 13.07.2011 - 17:04)
хеш пароля в БД 16-битный

А если попробовать отредактировать одну запись в таблице и посмотреть какой там хеш. Мне кажется, что он будет длиннее, т.к. PMA отображает не все содержимое этого поля ?

Спустя 2 минуты, 1 секунда (13.07.2011 - 17:19) Invis1ble написал(а):
нет, он же писал, что выводит скрипт Админа
и поле на скрине varchar(16)

Спустя 2 минуты, 15 секунд (13.07.2011 - 17:21) Druids написал(а):
Такс. подтер в базе записи. Начал регить их заново, слетела регистрация, не регит, 5 минут назад всё было ок. щас найду где косяк, и попробую с пасом разобраться

Спустя 1 минута, 39 секунд (13.07.2011 - 17:23) Winston написал(а):
И поставь для поля pass varchar(32)

Спустя 17 минут, 31 секунда (13.07.2011 - 17:40) Druids написал(а):
УРА, теперь всё работает. с меня каждому + в карму;)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.