[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторизация
saber135791
Здравствуйте! У меня проблемы с кодом авторизации, почему-то при вводе верного логина и не верного пароля можно войти, даже если не ввести пароль можно войти, подскажите в чем ошибка?
<?php
if (isset($_POST['submit']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT login,password1 FROM users WHERE login='$username'");
$myrow = mysql_fetch_array($result);
}
if (strcmp($password, $myrow['password1']) == 0)
{
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
}
?>




Спустя 4 минуты, 52 секунды (7.12.2011 - 14:13) alex12060 написал(а):
потому-что запрос у тебя построен не правильно

Спустя 59 минут, 9 секунд (7.12.2011 - 15:12) saber135791 написал(а):
Цитата
потому-что запрос у тебя построен не правильно

А как правильно?

Спустя 4 минуты, 58 секунд (7.12.2011 - 15:17) m4a1fox написал(а):

Спустя 1 час, 2 минуты, 47 секунд (7.12.2011 - 16:20) Psor написал(а):
если обе переменные $password $myrow['password1'] - пустые, то авторизация вполне проходит :)

так лучше:
if ($password && !strcmp($password, $myrow['password1']))

Спустя 8 минут, 5 секунд (7.12.2011 - 16:28) Ramzil_Nixon написал(а):
<?php
if (isset($_POST['submit']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM `users` WHERE
`login` = '
$username' AND
`password` = '
$password'
"
) or die(mysql_error());
?>


Вот теперь запрос правильный. Дальше сам думай :)

И кстати про защиту не забудь в запросе :)

Спустя 9 минут, 6 секунд (7.12.2011 - 16:37) m4a1fox написал(а):
Ramzil_Nixon
Цитата
И кстати про защиту не забудь в запросе :)

А чего сам не написал! Если делать - то правильно!


<?php
if (isset($_POST['submit']))
{
$username = !empty($_POST['username']) ? trim(htmlspecialchars($_POST['username'])) : FALSE;
$password = !empty($_POST['username']) ? trim(htmlspecialchars($_POST['password'])) : FALSE;

if($username && $password){
$result = mysql_query("SELECT `login`, `password` FROM `users` WHERE
`login` = '"
.mysql_real_escape_string($username)."' AND
`password` = '"
.mysql_real_escape_string($password)."'
"
) or die(mysql_error());
}else{
echo 'Заполните все поля';
}
?>


Спустя 5 минут, 25 секунд (7.12.2011 - 16:42) alex12060 написал(а):
m4a1fox

здесь htmlspecialchars совершенно лишнее

Спустя 1 минута, 43 секунды (7.12.2011 - 16:44) Ramzil_Nixon написал(а):
m4a1fox, а действительно зачем htmlspecialchars? smile.gif

m4a1fox,
Цитата
А чего сам не написал! Если делать - то правильно!


Да я его всегда забываю, ну после уже в код не стал трогать smile.gif

Спустя 2 минуты, 45 секунд (7.12.2011 - 16:47) m4a1fox написал(а):
alex12060
Цитата
здесь htmlspecialchars совершенно лишнее

Возможно! Сила привычки!
Быстрый ответ:

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