| Проблемы с Куки(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 - существует или нет
 
Спасибо
 |  |  |  |  |