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

Форум PHP

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

 

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

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

тема: Записать/стереть куки
 
 автор: 1prom   (11.01.2009 в 16:20)   письмо автору
 
 

Пишу: SetCookie("userc", $userc, time()+604800000); SetCookie("passwc", $passwc, time()+604800000);


Стираю: SetCookie("userc", 00, time()-1); SetCookie("passwc", 00, time()-1);

не получается (((. Что ж я не так делаю?

  Ответить  
 
 автор: AcidTrash   (11.01.2009 в 16:41)   письмо автору
 
   для: 1prom   (11.01.2009 в 16:20)
 

Чтобы затереть куку достачно ее перезаписать безо всяких параметров
SetCookie("userc");

  Ответить  
 
 автор: 1prom   (11.01.2009 в 16:49)   письмо автору
 
   для: AcidTrash   (11.01.2009 в 16:41)
 

Ну да, я знаю... Скажу так - стереть получилось лишь когда перезагружал страницу раз 5-ть. а вот записать не получается, может из-за того что работаю на локальном сервере или какие -то настройки броузера мешают, никто не знает?

  Ответить  
 
 автор: Николай2357   (11.01.2009 в 18:36)   письмо автору
 
   для: 1prom   (11.01.2009 в 16:49)
 

Поробуйте время увеличить (или уменьшить, как тут правильно сказать)))
<?
SetCookie
("userc"00time()-3600*24 );

  Ответить  
 
 автор: 1prom   (11.01.2009 в 19:38)   письмо автору
 
   для: Николай2357   (11.01.2009 в 18:36)
 

не стирает, а писать пишет, только вот так:

SetCookie("userc", "1", time()+604800000); SetCookie("passwc", "1", time()+604800000);

Вот так нет: SetCookie("userc", $userc, time()+604800000); SetCookie("passwc", $passwc, time()+604800000);

еще вопрос: что будет вместо $userc всавляться - переменная куки или переменная из другой страницы, переходя по ссылке:
echo"<a href=\"../infc.php&userc=$username&passwc=$password\">";

Как Вы заметили ссылка находится в каталоге (../infc), я думаю это не должно повлиять на передачу переменной

  Ответить  
 
 автор: Николай2357   (11.01.2009 в 20:12)   письмо автору
 
   для: 1prom   (11.01.2009 в 19:38)
 

Нате вот Вам цацку, проверьте. Если не работает, значит что то с браузером.
<?php
$cookie 
"А вот и Ваша кука. <a href='?delet=1'>Удалить</a>";
$test "Нет куки. <a href='?install=1'>Поставить</a>";
if(isset(
$_GET['delet']))
{
setcookie("test"""time()-3600*24 );
header("location: ".$_SERVER['PHP_SELF']);
}
elseif(isset(
$_GET['install']))
{
setcookie("test"$cookietime()+3600*24*30);
header("location: ".$_SERVER['PHP_SELF']);
}
$test = isset($_COOKIE['test'])?$_COOKIE['test']:$test;
echo 
$test;

  Ответить  
 
 автор: 1prom   (11.01.2009 в 22:14)   письмо автору
 
   для: Николай2357   (11.01.2009 в 20:12)
 

Пробовал 4-ма броузерами... На локалке под одним доменом работает, на другом (том, что в реале существует и меня интересует) - нет. В этом и нестыковка какая - то получается.

Спасибо, Николай, за код

  Ответить  
 
 автор: 1prom   (12.01.2009 в 20:56)   письмо автору
 
   для: 1prom   (11.01.2009 в 22:14)
 

к стати на сайте также не работает, может Вы посмотрите http://1ua.com.ua/br.php

  Ответить  
 
 автор: Trianon   (12.01.2009 в 21:08)   письмо автору
 
   для: 1prom   (12.01.2009 в 20:56)
 

Вы бы еще пару килограммов кода навесили к тому, что Николай предложил.
setcookie не работают, когда заголовок уже отправлен.
Заголовок отправляется перед тем, как отправлен хоть один байт тела.

  Ответить  
 
 автор: 1prom   (12.01.2009 в 21:57)   письмо автору
 
   для: Trianon   (12.01.2009 в 21:08)
 

Но у меня по всюду на сайте есть auto_prepend_file и auto_append_file
Как мне быть Trianon?

  Ответить  
 
 автор: AcidTrash   (12.01.2009 в 22:08)   письмо автору
 
   для: 1prom   (12.01.2009 в 21:57)
 

>auto_prepend_file
И какое содержимое этого файла, который подключается?

  Ответить  
 
 автор: 1prom   (12.01.2009 в 22:10)   письмо автору
 
   для: AcidTrash   (12.01.2009 в 22:08)
 

menu.php - он же должен и ставить и стирать куки после удачного входа (выхода) пользователей

  Ответить  
 
 автор: AcidTrash   (12.01.2009 в 22:14)   письмо автору
 
   для: 1prom   (12.01.2009 в 22:10)
 

menu.php - он же должен и ставить и стирать куки после удачного входа (выхода) пользователей
Может и должен, но гадать на кофейной гуще, уж...
Содержимое файла приведите, возможно прояснится.

  Ответить  
 
 автор: 1prom   (12.01.2009 в 22:24)   письмо автору
9.4 Кб
 
   для: AcidTrash   (12.01.2009 в 22:14)
 

Пожалуйста, только может там чего ниб лешнего есть.

Там есть возможность залогинится под парами user и passw, а также под парами userс и passwс

Меня интересуют пары userс и passwс.

Если много чего лишнего скажите удалю, так как меню разнообразное и под русский и украинский язык делалось...

  Ответить  
 
 автор: Николай2357   (12.01.2009 в 22:38)   письмо автору
 
   для: 1prom   (12.01.2009 в 22:24)
 

Там всё лишнее ))) Я имею ввиду, что этот файл у Вас подключаемый, а вывод может быть в том файле, к которому он подключается. Кстати, и в этом файле у Вас не всё в порядке. Но куки ставиться должны, если до них нет вывода.

  Ответить  
 
 автор: Trianon   (12.01.2009 в 22:18)   письмо автору
 
   для: 1prom   (12.01.2009 в 21:57)
 

Сделать так, чтобы auto prepend ничего не выводил в поток браузера.

  Ответить  
 
 автор: 1prom   (12.01.2009 в 22:45)   письмо автору
 
   для: Trianon   (12.01.2009 в 22:18)
 

Но так, наверное, никогда не бывает, меню же всегда на сайте есть..., может по-другому можно решить вопрос...?

  Ответить  
 
 автор: Николай2357   (12.01.2009 в 23:03)   письмо автору
 
   для: 1prom   (12.01.2009 в 22:45)
 

Всё бывает. Вы либо разделите всё таки вывод и логику, либо, если не можете, используйте буфферизацию. Примерно так:
<?php 
ob_start
();
?>
<div>Всяко разное меню</div>
<?php
$menu 
ob_get_contents();
ob_end_clean();

$cookie "А вот и Ваша кука. <a href='?delet=1'>Удалить</a>"
$test "Нет куки. <a href='?install=1'>Поставить</a>"
if(isset(
$_GET['delet'])) 

setcookie("test"""time()-3600*24 ); 
header("location: ".$_SERVER['PHP_SELF']); 

elseif(isset(
$_GET['install'])) 

setcookie("test"$cookietime()+3600*24*30); 
header("location: ".$_SERVER['PHP_SELF']); 

$test = isset($_COOKIE['test'])?$_COOKIE['test']:$test;

echo 
$menu
echo 
$test;
?>

  Ответить  
 
 автор: Trianon   (12.01.2009 в 23:32)   письмо автору
 
   для: 1prom   (12.01.2009 в 22:45)
 

>Но так, наверное, никогда не бывает, меню же всегда на сайте есть..., может по-другому можно решить вопрос...?

Да с каких это гвоздей оно всегда есть?
А если надо файл какой наружу выдать? Картинку? XML?

  Ответить  
Rambler's Top100
вверх

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