Проблемы с Куки(PHP)
|
|
Labirintik | Дата: Среда, 02 Июля 2014, 00:27 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Вот код: Код <?php session_start(); echo '<h2>Смена Скина</h2>';
if(empty($_COOKIE["Nick"])) { echo 'Куки не найден'; require("login.php"); } else { echo 'Куки найден'; require("uploadad.php"); } ?> на всех страницах куки нормально считаются, а на этой нет
Сообщение отредактировал Labirintik - Среда, 02 Июля 2014, 00:38 |
|
| |
Folleah | Дата: Среда, 02 Июля 2014, 09:27 | Сообщение # 2 |
Архитектор
Сейчас нет на сайте
| Быдлокод Функция require выполняется до запуска программы. Т.е., конструкция if \ else (плюс у вас echo идет перед require) - это уже исполнение программы. Да и вся конструкция сомнительна.
Сообщение отредактировал Folleah - Среда, 02 Июля 2014, 09:28 |
|
| |
Akyltist | Дата: Среда, 02 Июля 2014, 10:04 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| header('Location: /login.php'); exit(0);
или include_once('login.php');
+ посмотреть в браузере установленна ли конкретно данная печенька на этой странице, возможно вы где то её затираете.
|
|
| |
Labirintik | Дата: Среда, 02 Июля 2014, 11:53 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Цитата Akyltist ( ) include_once('login.php'); Не работает, а щас оказывается вчера повезло что куки сработали, воббще не работают
Добавлено (02.07.2014, 11:34) --------------------------------------------- Вот заношу $login в Nick Код SetCookie("Nick",$login); может тут не правильно?
Добавлено (02.07.2014, 11:53) --------------------------------------------- Скрипты
Сообщение отредактировал Labirintik - Среда, 02 Июля 2014, 11:54 |
|
| |
dima9595 | Дата: Среда, 02 Июля 2014, 13:00 | Сообщение # 5 |
почти ветеран
Сейчас нет на сайте
| Labirintik, Я с куки не работал, так что ошибку не могу определить без справки... Я их не использую в целях безопасности. А для различных настроек я бы использовал. Так же при загрузки файла проверяй на расширение. Просто в твоём скрипте можно запустить php или другой файл. Хотя, ты и так должен знать это)
Сообщение отредактировал dima9595 - Среда, 02 Июля 2014, 13:00 |
|
| |
lvovand | Дата: Среда, 02 Июля 2014, 13:11 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| Цитата Labirintik ( ) SetCookie("Nick",$login); так а время то жизни куки установи
Разработка и продвижение сайтов. Дизайн
|
|
| |
romgerman | Дата: Среда, 02 Июля 2014, 13:36 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Цитата lvovand ( ) так а время то жизни куки установи Вроде, по-умолчанию стоит до выхода из браузера.
|
|
| |
Akyltist | Дата: Среда, 02 Июля 2014, 13:46 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| Цитата Labirintik ( ) Скрипты поехали разбираться: skinload.php
session_start(); - норм define('INCLUDE_CHECK',true); - норм, так понимаю проверка на вход не в обход скрипта #require_once 'functions.php'; - пока выключим, т.к. нам его не дали #include ("connect.php"); - аналогично, нет кода - выключаем $login = $_POST['user']; - так делать нельзя, смотрим в гугле по запросу XSS $login = trim(htmlspecialchars($_POST['user'])); - на время, пока не трогая регулярки... $postPass = md5($_POST['password']); - тоже самое, но тут выпендриваться не будем, хоть там 2 XSS будет, в хеш. SetCookie("Nick",$login); - расширим до нормального вида SetCookie("Nick",$login, time()+3600); #include_once('uploadad.php'); - тоже нет файла, отключаем
Но прежде чем проверять, смотри откуда пришли данные, а это $_POST['user'] - с некой формы, методом POST воткнём проверку пришли ли эти данные!
Код <?php session_start(); define('INCLUDE_CHECK',true); #require_once 'functions.php'; #include ("connect.php"); if(isset($_POST['user'])){ $login = trim(htmlspecialchars($_POST['user'])); $postPass = md5($_POST['password']); SetCookie("Nick",$login, time()+3600); #include_once('uploadad.php'); print_r($_COOKIE); } else { echo "Данные то не пришли!"; } ?> Проверяем!!! а оказывается, мы либо данные не присылаем, либо id и name в формах поменяли и забыли!
PS: у вас в коде никакой фильтрации данных на выводе, не упустите этот момент, потому как у вас там и XSS и remove и local include. Бдите безопасность.
|
|
| |
lvovand | Дата: Среда, 02 Июля 2014, 13:47 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| Цитата romgerman ( ) Вроде, по-умолчанию стоит до выхода из браузера. так то да, должно сохраняться, просто какой еще вариант, либо кука не сохранилась, либо что-то с $login а так то в браузере если посмотреть, сохранилось куки или нет?
Разработка и продвижение сайтов. Дизайн
|
|
| |
Labirintik | Дата: Среда, 02 Июля 2014, 14:08 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| Цитата Akyltist ( ) Но прежде чем проверять, смотри откуда пришли данные, а это $_POST['user'] - с некой формы, методом POST воткнём проверку пришли ли эти данные! Данные точно приходят, так как без правильного пароля, он не передет на другой код(это я стер в исходниках) Добавлено (02.07.2014, 14:08) --------------------------------------------- Может быть проблема в хосте?
Сообщение отредактировал Labirintik - Среда, 02 Июля 2014, 14:13 |
|
| |
Akyltist | Дата: Среда, 02 Июля 2014, 14:51 | Сообщение # 11 |
заслуженный участник
Сейчас нет на сайте
| Цитата Labirintik ( ) Данные точно приходят, так как без правильного пароля, он не передет на другой код(это я стер в исходниках) Добавлено (02.07.2014, 14:08) --------------------------------------------- Может быть проблема в хосте? создай файл с таким содержимым и обнови страницу пару раз. Код <?php $login = 'HaHaHa'; SetCookie("Nick",$login, time()+3600); print_r($_COOKIE); ?> что выводит?
Может в настройках браузера стоит не принимать куки?
|
|
| |
Labirintik | Дата: Среда, 02 Июля 2014, 14:56 | Сообщение # 12 |
постоянный участник
Сейчас нет на сайте
| Цитата Akyltist ( ) что выводит? Здесь всё нормально,
Сообщение отредактировал Labirintik - Среда, 02 Июля 2014, 15:01 |
|
| |
phpkoder | Дата: Четверг, 03 Июля 2014, 02:24 | Сообщение # 13 |
был не раз
Сейчас нет на сайте
| 1) Зачем открытие сессии при использованиии куков? 2) Используйте вместо require - include 3) empty проверяет пустая или нет кука, а Вы проверяйте isset - существует или нет
Цитата lvovand ( ) так а время то жизни куки установи Не обязательно
|
|
| |
Labirintik | Дата: Четверг, 03 Июля 2014, 10:43 | Сообщение # 14 |
постоянный участник
Сейчас нет на сайте
| Цитата phpkoder ( ) 1) Зачем открытие сессии при использованиии куков? 2) Используйте вместо require - include 3) empty проверяет пустая или нет кука, а Вы проверяйте isset - существует или нет Спасибо
|
|
| |