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

Форум PHP

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

 

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

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

тема: Не сохраняются Куки при использовании mod_rewrite
 
 автор: lElectroHardl   (18.01.2011 в 18:07)   письмо автору
980 байт
 
 

Сделал скрипт голосования. Все отлично работало, до внедрения ЧПУ (через RewriteRule).
Теперь, когда голосую, кука сначала сохраняется, в нее попадает новое значение, а потом, после перезагрузки страницы, в ней не оказывается нового значения!
Как это вообще возможно? И как это справить? Я в панике!

  Ответить  
 
 автор: cheops   (18.01.2011 в 18:35)   письмо автору
 
   для: lElectroHardl   (18.01.2011 в 18:07)
 

Приведите правила RewriteRule, а лучше на словах сообщите, что они делают. Как правило, такие штуки бывают, когда вы переходите с домена site.dev на www.site.dev и наоборот (при этом в функции setcookie() не используется пятый параметр для привязки к домену .site.dev).

  Ответить  
 
 автор: lElectroHardl   (18.01.2011 в 18:57)   письмо автору
 
   для: cheops   (18.01.2011 в 18:35)
 

RewriteRule имеется ввиду, для ЧПУ.
Некоторые правила (где исп. $rate):

# foto rate
RewriteRule ^page/([0-9]+)/cat/([0-9]+)/subcat/([0-9]+)/foto/([0-9]+)/rate/([0-9]+)$ page.php?page=$1&cat=$2&subcat=$3&foto=$4&rate=$5 [L]
RewriteRule ^page/([0-9]+)/cat/([0-9]+)/subcat/([0-9]+)/foto/([0-9]+)/rate/([0-9]+)/$ page.php?page=$1&cat=$2&subcat=$3&foto=$4&rate=$5 [L]

  Ответить  
 
 автор: lElectroHardl   (18.01.2011 в 19:48)   письмо автору
 
   для: lElectroHardl   (18.01.2011 в 18:57)
 

Возможно, куки слишком длинные? И из-за этого в них новое не пишется?
У меня они имеют такой вид: " 31 29 33 51 52 34 37 36 32 43 38 30 54 56 62 57 59 61 63 45 75 79 111"

  Ответить  
 
 автор: lElectroHardl   (18.01.2011 в 20:31)   письмо автору
 
   для: lElectroHardl   (18.01.2011 в 19:48)
 

Если убираю все правила из ..htaccess, то куки отлично работают, но как опять начинаю работать с RewriteRule, старые куки перестают быть доступны и я начинаю работать, как будто бы с новыми куками.
Бред! Что за фигня твориться?

  Ответить  
 
 автор: cheops   (18.01.2011 в 20:44)   письмо автору
 
   для: lElectroHardl   (18.01.2011 в 20:31)
 

А приложите полностью .htaccess, там только эти правила? Или еще какие-то есть?

  Ответить  
 
 автор: lElectroHardl   (18.01.2011 в 20:56)   письмо автору
 
   для: cheops   (18.01.2011 в 20:44)
 

Options -Indexes

ErrorDocument 404 /error/
ErrorDocument 403 /error/

RewriteEngine on
    # errors
    RewriteRule ^error$ error.php [L]
    RewriteRule ^error/$ error.php [L]
    
    # view
    RewriteRule ^view/([0-9]+)$ view.php?foto=$1 [L]
    RewriteRule ^view/([0-9]+)/$ view.php?foto=$1 [L]
    
    # download
    RewriteRule ^download/([0-9]+)$ download.php?foto=$1 [L]
    RewriteRule ^download/([0-9]+)/$ download.php?foto=$1 [L]
# и т.д. ...


P.S. Я скоро сума сойду!

  Ответить  
 
 автор: lElectroHardl   (18.01.2011 в 21:47)   письмо автору
 
   для: lElectroHardl   (18.01.2011 в 20:56)
 

Я в отчаянии! Что может быть не правильным???
<?php setcookie("rate""$_COOKIE[rate] $foto"time() + 3600*24*7"/""site.org"); // записываю старые куки + новое значение


Еще 10 минут и я пойду на базар, за ружьем!

  Ответить  
 
 автор: cheops   (18.01.2011 в 21:49)   письмо автору
 
   для: lElectroHardl   (18.01.2011 в 21:47)
 

"site.org" лучше исправить на ".site.org"

  Ответить  
 
 автор: Trianon   (18.01.2011 в 21:53)   письмо автору
 
   для: lElectroHardl   (18.01.2011 в 21:47)
 

>Еще 10 минут и я пойду на базар, за ружьем!

Отставить ружье.
Из ружья неудобно.
Я дам вам парабеллум.

  Ответить  
 
 автор: lElectroHardl   (18.01.2011 в 22:11)   письмо автору
 
   для: Trianon   (18.01.2011 в 21:53)
 

Парабеллумов на рынке нет.

cheops
Все-равно! Теперь куки вообще не ставятся.

  Ответить  
 
 автор: cheops   (18.01.2011 в 22:41)   письмо автору
 
   для: lElectroHardl   (18.01.2011 в 22:11)
 

Попробуйте сессию установить - она тоже теряется (дело в том, что SID передается через cookie, которые устанавливает сервер - интересно на его реакцию посмотреть)?

  Ответить  
 
 автор: lElectroHardl   (19.01.2011 в 16:59)   письмо автору
 
   для: cheops   (18.01.2011 в 22:41)
 

Тут еще 2 непонятки:
1. Когда ставлю такие куки
<?php setcookie("rate""$_COOKIE[rate] $foto"time() + 3600*24*7);
Куки устанавливаются. Но! Видны они (т.е. их новые значения) только на самой странице голосования ($rate). Как только перехожу обратно, куки как будто и не было.
2. Когда ставлю такие куки
<?php setcookie("rate""$_COOKIE[rate] $foto"time() + 3600*24*7"/"".no_rerlama.org");
куки не ставятся в принципе.

Сессию установлена всегда. Но... толку 0.
Что посоветуете? Вчера пол ночи рыл, так и не нашел ответа на вопрос.

Лично я предполагаю, что проблема в 4-м параметре. Т.е. куки устанавливаются только для переменной $rate. Или это бред?

  Ответить  
 
 автор: lElectroHardl   (19.01.2011 в 19:39)   письмо автору
 
   для: lElectroHardl   (19.01.2011 в 16:59)
 

Малость поковыряв, установил, что куки ставятся через раз :).
Т.е., если я ставлю куки вида
setcookie("rate", $_COOKIE["rate"]." ".$foto, time() + 3600*24*7, "/", ".site.org");

обращаюсь к скрипту, а потом из этой функции убираю
".site.org";

То куки успешно ставятся и работают. (и на оборот, если обращаюсь к скрипту, к функции, без 6-го параметра, а потом вставляю 6-й параметр - куки успешно ставятся).

Что может указывать на такое поведения скрипта?

UPD: htaccess:
Options -Indexes

ErrorDocument 404 /error/
ErrorDocument 403 /error/

RewriteEngine on
    RewriteBase /
    
    # errors
    RewriteRule ^error$ error.php [L]
    RewriteRule ^error/$ error.php [L]
# и т.д.

  Ответить  
 
 автор: lElectroHardl   (19.01.2011 в 22:14)   письмо автору
 
   для: lElectroHardl   (19.01.2011 в 19:39)
 

Help... Please.

  Ответить  
 
 автор: lElectroHardl   (20.01.2011 в 18:16)   письмо автору
 
   для: lElectroHardl   (19.01.2011 в 22:14)
 

Неужели не кто не знает, что это за глюк?

  Ответить  
 
 автор: lElectroHardl   (20.01.2011 в 18:24)   письмо автору
 
   для: lElectroHardl   (20.01.2011 в 18:16)
 

Вы не поверите. Сегодня попытался поставить куку (имя, значение и время) и ОНА ПОСТАВИЛАСЬ!.
Вопрос КАК??? Вчера делал в точности так же само и нечего не работало. Сегодня - уже все работает.
Кто-то может объяснить сие чудо?

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

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