Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Установка coockie, как определить возможна ли?
 
 автор: Sergmust   (25.04.2006 в 17:01)   письмо автору
 
 

Можно ли без перезагрузки страницы узнать, позволительно ли на стороне пользователя устанавливать куки, и установилась ли своя?

   
 
 автор: CrazyAngel   (25.04.2006 в 17:07)   письмо автору
 
   для: Sergmust   (25.04.2006 в 17:01)
 

javaScript

   
 
 автор: Trianon   (25.04.2006 в 17:26)   письмо автору
 
   для: CrazyAngel   (25.04.2006 в 17:07)
 

ненадежно. Кукисы может срезать прокси.
Я бы предложил вариант с проверкой в отдельном незаметном фрейме.

   
 
 автор: XPraptor   (25.04.2006 в 17:35)   письмо автору
 
   для: Trianon   (25.04.2006 в 17:26)
 

Javascript действительно может облегчить задачу, но всеравно придется со второго раза только получить его ответ.
К этому еще добавляется возможность отключения самого яваскрипта у пользователя.
Лучше всего создавать такую ситуацию, когда установка куки гарантированно проверена на втором входе в php скрипт.
Я всегда пишу такой код:

session_start();
if(isset($_COOKIE["kuki"]) && !empty($_COOKIE["kuki"]))
{
    //куки уже есть отмечаем это в сессионной переменной
    $_SESSION["est_kuki"]=1;
}else{
    //нету куков, смотрим а входил ли уже юзер на эту страницу по сессии
    if(isset($_SESSION["est_kuki"]) && !empty($_SESSION["est_kuki"]))
    {
        //уже входил и должен был получить куки но не получил, значит запрет стоит
        $_SESSION["est_kuki"]=0;
        print "Включи куки чудило!";
        exit();
    }else{
        //еще не входил, шлем куки и отмечаем это в сессионной переменной
        $_SESSION["est_kuki"]=2;
        setcookie("kuki", "value_kuki", time() + 3600 * 24, "/", "interess.ru")
    }
}

   
 
 автор: Loki   (26.04.2006 в 11:26)   письмо автору
 
   для: XPraptor   (25.04.2006 в 17:35)
 

Вот только сессию при отсутствии кук мы тоже запросто можем потерять (тут, правда, еще и хостер должен напортачить:)

   
 
 автор: Sergmust   (25.04.2006 в 17:28)   письмо автору
 
   для: CrazyAngel   (25.04.2006 в 17:07)
 

2 CrazyAngel

Понял.
Если еще подскажете как...
Спасибо!

2 Trianon

Фреймы к сожалению не подходят, спасибо.

   
 
 автор: neudor   (26.04.2006 в 17:49)   письмо автору
 
   для: Sergmust   (25.04.2006 в 17:28)
 

<?php
  
// это небольшой проверочный скрипт, выясняющий,
  // включены ли cookies у пользователя  

  
if(!$cookie)
  {
    
// посылаем заголовок переадресации на страницу,
    // с которой будет предпринята попытка установить cookie 
    
header("Location: $PHP_SELF?cookie=1");
    
// устанавливаем cookie с именем "test"
    
setcookie("test","1"); 
  }
  else
  {
    if(!
$test)
    {
      echo(
"Для корректной работы приложения необходимо включить cookies");
    }
    else
    {
      
// cookie включены, переходим на нужную страницу:
      
header("Location: http://localhost/river.jpg");
      
// здесь посылается заголовок, содержащий адрес нужной страницы
    
}
  }
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования