Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2012, 21:02   #1
diazolin
 
Регистрация: 21.12.2012
Сообщений: 4
Вопрос Перенаправление

Привет. Хотелось бы сделать следующее, когда пользователь вводит пароль и логин , его перенаправляет на страницу соответствующую его логину (разделение идёт по правам, т.е. админ одни права , юзер урезанные)

В форме есть 2 поля логин и пасс и кнопка

В коде обработчике вот это:
<?
$db = mysql_connect("localhost","root","" );
mysql_select_db("Course_Work(paspor t table)" ,$db);
$_REQUEST['login'];
$_REQUEST['password'];
$login=$_REQUEST['login'];
$password=$_REQUEST['password'];
$query = "SELECT id
FROM login
WHERE login='{$login}' and password='{$password}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
if ($password="admin" and $login="admin"){
echo 'Done!';
}
else {
echo 'Try again!';
}
?>

почему не работает мой код ? Вопрос в этом. Cкидывать готовый сделанный не нужно, просто скажите почему когда я ввожу пасс и логин, будь он admin/admin или 121313/вапапва мне пишет на страничке DONE! =(
diazolin вне форума Ответить с цитированием
Старый 21.12.2012, 21:25   #2
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Потому что оператор сравнения - 2 или 3 знака "=". То есть надо if ($password=="admin" and $login=="admin")

Последний раз редактировалось LZero; 21.12.2012 в 21:32.
LZero вне форума Ответить с цитированием
Старый 21.12.2012, 21:32   #3
diazolin
 
Регистрация: 21.12.2012
Сообщений: 4
По умолчанию

нет не слышал) я вообще пару дней как читать пхп начал , заодно курсач делаю)

Всё работает, спасибо, не подумал я что тут именно присваивать нужно значение

Последний раз редактировалось diazolin; 21.12.2012 в 21:34.
diazolin вне форума Ответить с цитированием
Старый 21.12.2012, 21:44   #4
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Если курсач, то еще ладно. А в реальном приложении нужно быть внимательным - взломать могут. ru.wikipedia.org/wiki/Внедрение_SQL-кода
LZero вне форума Ответить с цитированием
Старый 21.12.2012, 21:52   #5
diazolin
 
Регистрация: 21.12.2012
Сообщений: 4
По умолчанию

ну если ты про это $login=md5($_REQUEST['login']); то знаю

Последний раз редактировалось diazolin; 21.12.2012 в 21:59.
diazolin вне форума Ответить с цитированием
Старый 21.12.2012, 22:03   #6
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Нет, про
Код:
$login = mysql_real_escape_string($_REQUEST['login']);
$password = mysql_real_escape_string($_REQUEST['password']);
Нужно проверять и фильтровать входящие данные.
LZero вне форума Ответить с цитированием
Старый 21.12.2012, 22:46   #7
diazolin
 
Регистрация: 21.12.2012
Сообщений: 4
По умолчанию

А можно узнать что означает mysql_real_escape_string, а то в мануале я не очень понял что она делает !

if ($password==="admin" and $login==="admin"){
echo 'Done1!';
}
elseif ($password==="guest" and $login==="1")
{ echo 'DONE2!';
}
else {
die ("Try again!");
}
?>

Сделал так и теперь работает только if а elseif не хочет =(

Последний раз редактировалось diazolin; 21.12.2012 в 22:55.
diazolin вне форума Ответить с цитированием
Старый 21.12.2012, 23:23   #8
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

mysql_real_escape_string добавляет обратную косую черту к следующим символам: \x00, \n, \r, \, ', " и \x1a.

Эта функция должна всегда (за несколькими исключениями) использоваться для того, чтобы обезопасить данные, вставляемые в запрос перед отправкой его в MySQL.
Из мануала.

Тут лучше использовать == , а не ===. Типы не совпадают, наверное. Вообщем, если пока не понимаешь разницу между == и ===, используй ==. Если коротко, "==" - это не учитывается тип данных (1 == '1' - true), а "===" - учитывает (1 === '1' - false).
LZero вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенаправление cherepushka PHP 1 26.02.2012 14:35
перенаправление Card1nal Общие вопросы C/C++ 0 19.05.2010 17:00
Перенаправление... neeer HTML и CSS 7 23.02.2009 11:16
Перенаправление портов ADSoft Безопасность, Шифрование 2 05.01.2008 00:30
Перенаправление потоков Carbon Win Api 5 25.11.2007 14:46