Привет, Гость!
Главная
Вход

Последняя активность

Форум / Вап-мастеру / PHP
Поиск
  Условие
1 2 >>
istORik istORik [Off] [#] (20.10.2011 / 20:36)
Щас разбираю скрипт простой гости, так вот там механизм проверки пользователя, зареган или нет такой
  1. if (empty($login) and empty($password))
  2. {
  3. }
  4. else
  5. {
  6. $req = mysql_query("SELECT * FROM user WHERE login='$login' AND password='$password'");
  7. $users = mysql_fetch_assoc($req);
  8. }

Я что то не вруббился, ведь по идее если человек авторизован то запрос в базу должен идти до else, то есть как то так
  1. if (empty($login) and empty($password))
  2. {$req = mysql_query("SELECT * FROM user WHERE login='$login' AND password='$password'");
  3. $users = mysql_fetch_assoc($req);}
  4. else
  5. {
  6. }
а выходит почему то наоборот.
В чем косяк? Или я чего то не догоняю.
Эдуард_Лобзикоф Эдуард_Лобзикоф [Off] [#] (20.10.2011 / 21:51)
Чо не ясно? Логин и пасс идет запросом в базу идет проверка
Свин-павук Свин-павук (SV!) [Off] [#] (21.10.2011 / 04:00)
чморылое одоробло
istORik (20.10.2011/20:36)
Щас разбираю скрипт простой гости, так вот там механизм проверки пользователя, зареган или нет такой[php]if (empty($login) and empty($password))
{
}
else
{
$req = mysql_query("SELECT * FROM user
Английский понимаеш? Если пустой логин и пустой пароль, нихуя не делаем. Иначе запрос
Log!N Log!N [Off] [#] (21.10.2011 / 10:15)
Последний Дино3@вр
Вот кстате,:
нифика до сих пор не могу понять,
почему отперемены условия может не сработать код???
Вот например как здесь.
если сначала проверка пустого пароля, то сработает.
А если сеачала посылка запроса, то нет...
istORik istORik [Off] [#] (21.10.2011 / 10:22)
Log!N (21.10.2011/10:15)
Вот кстате,:
нифика до сих пор не могу понять,
почему отперемены условия может не сработать код???
Вот например как здесь.
если сначала проверка пустого пароля, то сработает.
А если сеачала посыл
Сам не мог вкурить, уже мозг сломал, но со своей проблеммой справился, нужно было empty заменить на isset то есть как то так
  1. if (isset($login) and isset($password))
  2. {$req = mysql_query("SELECT * FROM user WHERE login='$login' AND password='$password'");
  3. $users = mysql_fetch_assoc($req);}
  4. else
  5. {
  6. }

Только насчет безопасности вот думаю,не намудровал что либо , щас пытаюсь простенькую гостю сам написать, вроде получается.
Изм. istORik (21.10.2011 / 10:23) [1]
Свин-павук Свин-павук (SV!) [Off] [#] (21.10.2011 / 11:06)
чморылое одоробло
istORik (21.10.2011/10:22)
Сам не мог вкурить, уже мозг сломал, но со своей проблеммой справился, нужно было empty заменить на isset то есть как то так
[php]if (isset($login) and isset($password))
{$req = mysql_query("SELECT
Во первых переменные должны быть отфильтрованы, иначе инъекция. Во вторых else там нахуй не нужно
istORik istORik [Off] [#] (21.10.2011 / 11:11)
Свин-павук (21.10.2011/11:06)
Во первых переменные должны быть отфильтрованы, иначе инъекция. Во вторых else там нахуй не нужно
Ну логин а пароль фильтруются твоей функцией антихак :-)
А елсе нужно чтоб если чел ввел не правильные данные то выводится сообщение и идет перенаправление на главную
istORik istORik [Off] [#] (21.10.2011 / 11:12)
Я думаю Этого хвотит для защиты
  1. function antihak($var) //Антихакер фильтрации:-)
  2.  
  3. {
  4. $var = trim($var);
  5. $var = addslashes($var);
  6. $var = stripslashes($var);
  7. $var = htmlspecialchars($var);
  8. return $var;
  9. }

Или нет?
Свин-павук Свин-павук (SV!) [Off] [#] (21.10.2011 / 11:14)
чморылое одоробло
istORik (21.10.2011/11:11)
Ну логин а пароль фильтруются твоей функцией антихак :-)
А елсе нужно чтоб если чел ввел не правильные данные то выводится сообщение и идет перенаправление на главную
В таком случае условие неправильное. Ибо идет проверка на то што чел ВООБЩЕ ввел данные. А правильные или нет, похуй получается
istORik istORik [Off] [#] (21.10.2011 / 11:17)
Свин-павук (21.10.2011/11:14)
В таком случае условие неправильное. Ибо идет проверка на то што чел ВООБЩЕ ввел данные. А правильные или нет, похуй получается
Ну эт не весь код, щас весь скину который накатал.
  1. if (isset($login) and isset($password))
  2. {
  3.  
  4. $users = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password'");
  5. $users = mysql_fetch_array($users);
  6. if (empty($users['id']))
  7. {
  8. //если пользователь не найден то удаляю сесии
  9. unset($_SESSION['password']);
  10. unset($_SESSION['login']);
  11. unset($_SESSION['id']);
  12.  
  13.  
  14. } else
  15. {
  16. $aut = '1'; //Если юзер авторизован то вывожу 1
  17.  
  18. }
  19.  
  20. } else
  21. {
  22. $aut = '0'; //Если юзер не авторизован то вывожу 0 и ставлю статус гость
  23. }
Свин-павук Свин-павук (SV!) [Off] [#] (21.10.2011 / 11:20)
чморылое одоробло
istORik (21.10.2011/11:17)
Ну эт не весь код, щас весь скину который накатал.
[php] if (isset($login) and isset($password))
{

$users = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password'");
Немного не так. Надо проверять вернул ли запрос какой либо результат (mysql_num_row) и в зависимости от этого читать строку или нет
istORik istORik [Off] [#] (21.10.2011 / 11:22)
Свин-павук (21.10.2011/11:20)
Немного не так. Надо проверять вернул ли запрос какой либо результат (mysql_num_row) и в зависимости от этого читать строку или нет
То есть ты имеешь ввиду вместо подставить
  1. mysql_num_row
istORik istORik [Off] [#] (21.10.2011 / 11:22)
Но тогда все равно условие то не изменится.
И еще, как я понимаю то при mysql_num_row и неправильном запросе то выведет Array
Изм. istORik (21.10.2011 / 11:23) [1]
Свин-павук Свин-павук (SV!) [Off] [#] (21.10.2011 / 11:24)
чморылое одоробло
istORik (21.10.2011/11:22)
То есть ты имеешь ввиду вместо подставить
  1. mysql_num_row
Не совсем. Я на работе с телефона. Написать не могу подробнее
istORik istORik [Off] [#] (21.10.2011 / 11:25)
Свин-павук (21.10.2011/11:24)
Не совсем. Я на работе с телефона. Написать не могу подробнее
Ты только обьясняй:-) я учусь и метод тыка проб и ошибок это самый главный учебник
istORik istORik [Off] [#] (21.10.2011 / 11:27)
Ладно джон,спасибо и на этом, ты и так многое помог:-)
Свин-павук Свин-павук (SV!) [Off] [#] (21.10.2011 / 13:54)
чморылое одоробло
Screamer (21.10.2011/13:50)
  1. $total = mysql_result(mysql_query("SELECT COUNT(*) FROM `table`"),0);
  2. if ($total) {
  3. mysql_query("SELECT * FROM `table`");
  4. } else {
  5. echo 'Пусто';
  6. }

Как то так
Во. Примерно. Посчитать есть ли вообще совпадения с таким именем и паролем. И тогда уже делать выборку
istORik istORik [Off] [#] (21.10.2011 / 14:17)
Свин-павук (21.10.2011/13:54)
Во. Примерно. Посчитать есть ли вообще совпадения с таким именем и паролем. И тогда уже делать выборку
Помоему это глупость.
Я так понимаю что при таком запросе будет идти подсчет всех юзеров, потом будет повторный запрос на юзера и получение его данных.
То есть получается 2 запроса в базу, причем тут подсчет количества юзеров?
  1. $total = mysql_result(mysql_query("SELECT COUNT(*) FROM `table`"),0);
  2. if ($total) {
  3. mysql_query("SELECT * FROM `table`");
  4. } else {
  5. echo 'Пусто';
  6. }

А если я сделаю запрос по логину и паролю то зачем считать? ведь юзер будет всего один с таким соотношением.
istORik istORik [Off] [#] (21.10.2011 / 14:30)
Screamer (21.10.2011/14:20)
Я примерно написал.Сначала считаем есть ли в базе юзер с таким логином и паролем если есть то берем данные из базы если нет уведомляем
в принципе можно и одним запросом обойтись
[php]
$query = mysq
Все теперь врубился:-)
istORik istORik [Off] [#] (21.10.2011 / 14:32)
Кстати, ну а вообще, мой вариант правильный?
  Всего: 35
1 2 >>

Фильтр по автору
Скачать тему

Форум

Новые вверху
0 / 75

Gazenwagen Gegenkulturelle Gemeinschaft