Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Авторизация или проблемы с куками
Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Народ, помагите))) я себе уже всю голову сломал)))
В этом коде мы получаем переменные $_POST["login"] и $_POST["pass"], фильтруем их и проверяем есть ли в БД поле с записью $login, дальше проверяем $pass и если все совпадает создаем куки и перенаправляем пользователя.
Отредактировано модератором: Champion, 29 Января, 2010 - 15:10:20 Используй кнопочку [PHP], а то мы будем возмущаться
RomAndry
Отправлено: 29 Января, 2010 - 14:41:59
Частый посетитель
Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008
Помог: 6 раз(а)
</form> Забыли =)
Felliks
Отправлено: 29 Января, 2010 - 14:50:58
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Спс, но все равно когда жму кнопу "Вход", кидает на страницу login.php и ничего не выдает, просто белый экран.
Champion
Отправлено: 29 Января, 2010 - 15:11:57
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
http://phpfaq[dot]ru/debug - познавай искусство отладки. Конкретно этого вопроса там нет, но ты поймешь как локализовать ошибку.
Мелкий
Отправлено: 29 Января, 2010 - 15:16:53
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
А я вижу ошибку для SQL инъекции:
htmlspecialchars в режиме по-умолчанию не преобразует одинарные кавычки. Т.е. в поле логина можно дописать чего-нибудь нехорошего.
А по теме вопроса:
почему аргумент header'a передаётся без кавычек? И вообще этот кусок кода выполняется?
----- PostgreSQL DBA
JustUserR
Отправлено: 29 Января, 2010 - 15:31:59
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Felliks Ну ошибку же видно сразу - для именования полей в Mysql используются не прямые одиночные кавычки ' а обратные ` (Или вообще не используются если имя состоит только из латинский букв и цифр)
Так что код хотя бы вот такой сделайте$sql = mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' LIMIT 1");
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Felliks
Отправлено: 29 Января, 2010 - 15:39:45
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Спасибо, header() поправил, насчет htmlspecialchars() я сначала рабочий код пишу а после защиту ставлю. А насчет выполнения кода, хз, вообще никакой ошибки не выдает, просто пустая страница.
Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Спасибо, вечером проверю)))
Felliks
Отправлено: 30 Января, 2010 - 22:03:51
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Спасибо всем кто помогал, я исправил недостатки и сделал дебаг. Но cookies всеравно не хотят создоваться.
Вот ошибка которая выводится:
Warning: Cannot modify header information - headers already sent by (output started at /home/felliks/domains/w1p.in/public_html/auth/login.php:1) in/home/felliks/domains/w1p.in/p ublic_html/auth/login.php on line26
Warning: Cannot modify header information - headers already sent by (output started at /home/felliks/domains/w1p.in/public_html/auth/login.php:1) in/home/felliks/domains/w1p.in/p ublic_html/auth/login.php on line27
Warning: Cannot modify header information - headers already sent by (output started at /home/felliks/domains/w1p.in/public_html/auth/login.php:1) in/home/felliks/domains/w1p.in/p ublic_html/auth/login.php on line 29
Насколько я понял проблема в заголовках, но я не смог понять где они создаются. Если понадобится, то я могу дать исходники подключаемых файлов.
Мелкий
Отправлено: 30 Января, 2010 - 22:17:02
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Проблема в том, что начали отправлять данные. Даже написано, где:
Цитата:
output started at /home/felliks/domains/w1p.in/public_html/auth/login.php:1
пробелы, символы перевода строки - так же считаются за начало вывода информации
----- PostgreSQL DBA
Felliks
Отправлено: 30 Января, 2010 - 22:39:22
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
И как мне это исправить? Удалить все пробелы и символы перевода?
P.S. я просто впервые с заголовками работаю, смотрел другие примеры, там вроде также и работает норм.
Мелкий
Отправлено: 30 Января, 2010 - 23:48:53
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Да, убрать весь вывод в браузер перед началом скрипта. Например, в приведённом листинге - 1 строка - уже вывод в браузер, необходимо, чтобы первой строкой скрипта было <?php
----- PostgreSQL DBA
JustUserR
Отправлено: 31 Января, 2010 - 01:34:08
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Felliks пишет:
И как мне это исправить? Удалить все пробелы и символы перевода?
К примеру можно включить буферизацию - а еще лучше использовать JS-редирект и соответствующую обработку cookie на стороне клиента если требуется (По мне это гораздо лучше буферизации в случае когда PHP-скрипт уже практически невозможно поменять чтобы он ничего не выводил
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Felliks
Отправлено: 31 Января, 2010 - 02:10:44
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
JustUserR пишет:
К примеру можно включить буферизацию - а еще лучше использовать JS-редирект и соответствующую обработку cookie на стороне клиента если требуется (По мне это гораздо лучше буферизации в случае когда PHP-скрипт уже практически невозможно поменять чтобы он ничего не выводил :-)
JS не вариант, я пишу под WAP, а там мало браузеров js поддержуют так как надо.
А насчет заголовков разобрался, просто у меня текстовый редактор добавлял сигнатуру в начале кода, вот и получалось что перед тем как откроется <?php стоял знак ?<, тоесть был символ за пределами обработки php. Теперь все ок, но куки всеравно глючат. Когда захожу на Дайджест, меня авторизирует. А когда захожу на индексную, то нет. Завтра с этим разберусь =) (Добавление)
Мелкий пишет:
Например, в приведённом листинге - 1 строка - уже вывод в браузер, необходимо, чтобы первой строкой скрипта было <?php
Это я когда писал сообщение напутал с bb кодами, со смарта не удобно просто =)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.