Четверг, 26 Декабря 2024, 18:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблемы с Куки(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");
}
?>

на всех страницах куки нормально считаются, а на этой нет sad


Сообщение отредактировал 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');

Не работает, а щас оказывается вчера повезло что куки сработали, воббще не работают smile

Добавлено (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 - существует или нет

Спасибо
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг