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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Элегантный способ выявления факта, что cookies'ы клиентского браузера отключены...

Сообщения:  [1-5] 

 
 автор: SHAman   (24.03.2008 в 09:28)   письмо автору
 
   для: Cyrax   (24.03.2008 в 09:18)
 

Если нет параметра checkcookie, то устанавливаем тестовую куку и делаем перенаправление на то же место, только с параметром checkcookie.

   
 
 автор: Cyrax   (24.03.2008 в 09:18)   письмо автору
 
   для: Саня   (23.03.2008 в 23:57)
 

Поскольку определить отключенность ccookies'ов должен сервер без ведома клиента, то последние 2 варианта отпадают.
Что касается первого варианта, то что делает фрагмен
if ( !isset($_GET['checkcookie']) ) { 
  setcookie("test", "true"); 
  header("Location: /script.php?checkcookie");

   
 
 автор: Саня   (23.03.2008 в 23:57)   письмо автору
 
   для: Cyrax   (23.03.2008 в 22:52)
 

Обычно, делают так:
<?php
if ( !isset($_GET['checkcookie']) ) {
  
setcookie("test""true");
  
header("Location: /script.php?checkcookie");
} else {
  if ( isset(
$_COOKIE['test']) && $_COOKIE['test'] === "true" ) {
    print 
"Круто, у вас включены куки";
  } else {
    print 
"Не круто :(";
  }
}

Если вам не нравится хинт с перезагрузкой страницы и некрасивым довеском к урлу, попробуйте подключить js.
<?php
setcookie
("test-my-cookie""1");
?>
<input type="button" value="ClickMe" onclick="test()">
<script>
function test() {
  if ( document.cookie.indexOf('test-my-cookie') >= 0 ) {
    alert("Круто, куки включены!");
  } else {
    alert("Не круто :(");
  }
}
</script>

Или чистый js:
<input type="button" value="ClickMe" onclick="test()">
<script>
function test() {
  document.cookie = 'test-my-cookie=true';
  if ( document.cookie.indexOf('test-my-cookie') >= 0 ) {
    alert("Круто, куки включены!");
  } else {
    alert("Не круто :(");
  }
}
</script>

Только следует учесть, что такие махинации с js не работают в ie.

   
 
 автор: bronenos   (23.03.2008 в 23:06)   письмо автору
 
   для: Cyrax   (23.03.2008 в 22:52)
 

Если бы был более корректный способ, то наверное в сети вы бы нашли инфу поэтой теме

   
 
 автор: Cyrax   (23.03.2008 в 22:52)   письмо автору
 
 

Каким образом можно определить, что cookies'ы клиентского браузера отключены ?
Можно, конечно, что-нибудь записать к нему в cookies'ы и тут же попытаться прочесть. Но желателен более корректный способ...

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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