|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.12.2012, 21:02 | #1 |
Регистрация: 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! =( |
21.12.2012, 21:25 | #2 |
Форумчанин
Регистрация: 20.07.2012
Сообщений: 129
|
Потому что оператор сравнения - 2 или 3 знака "=". То есть надо if ($password=="admin" and $login=="admin")
Последний раз редактировалось LZero; 21.12.2012 в 21:32. |
21.12.2012, 21:32 | #3 |
Регистрация: 21.12.2012
Сообщений: 4
|
нет не слышал) я вообще пару дней как читать пхп начал , заодно курсач делаю)
Всё работает, спасибо, не подумал я что тут именно присваивать нужно значение Последний раз редактировалось diazolin; 21.12.2012 в 21:34. |
21.12.2012, 21:44 | #4 |
Форумчанин
Регистрация: 20.07.2012
Сообщений: 129
|
Если курсач, то еще ладно. А в реальном приложении нужно быть внимательным - взломать могут. ru.wikipedia.org/wiki/Внедрение_SQL-кода
|
21.12.2012, 21:52 | #5 |
Регистрация: 21.12.2012
Сообщений: 4
|
ну если ты про это $login=md5($_REQUEST['login']); то знаю
Последний раз редактировалось diazolin; 21.12.2012 в 21:59. |
21.12.2012, 22:03 | #6 |
Форумчанин
Регистрация: 20.07.2012
Сообщений: 129
|
Нет, про
Код:
|
21.12.2012, 22:46 | #7 |
Регистрация: 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. |
21.12.2012, 23:23 | #8 |
Форумчанин
Регистрация: 20.07.2012
Сообщений: 129
|
mysql_real_escape_string добавляет обратную косую черту к следующим символам: \x00, \n, \r, \, ', " и \x1a.
Эта функция должна всегда (за несколькими исключениями) использоваться для того, чтобы обезопасить данные, вставляемые в запрос перед отправкой его в MySQL. Из мануала. Тут лучше использовать == , а не ===. Типы не совпадают, наверное. Вообщем, если пока не понимаешь разницу между == и ===, используй ==. Если коротко, "==" - это не учитывается тип данных (1 == '1' - true), а "===" - учитывает (1 === '1' - false). |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенаправление | 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 |