сессия не работает в opera

mixwell

Новичок
Спасибо ФАНАТ, но я уже находил этот виджет, там есть поле set-Cookie, но нет cookie, т.е. установку куки пишет а про ответ серера нет.

cDLEON что именно привести, ты про обмен заголовками? или про то что отображается на сайте?
 

Фанат

oncle terrible
Команда форума
mixwell
ты какую-то чушь несешь.
устанавливает куки СЕРВЕР! то есть, как раз ОТВЕТ СЕРВЕРА у тебя есть.
а нет запроса браузера.
причем твои фантазии и тебя самого запутали, и нас с толку сбивают.
если в запросе нет cookie - это не значит, что виджет тупой. это значит, что тот кто смотрит дамп такой.
если в запросе нет COOKIE - значит браузер решил куку серверу не возвращать.
я не удивлюсь, если в твоей опере они вообще отключены.

если у тебя есть set-Cookie - ПОЧЕМУ СЮДА НЕ СКОПИРОВАНА ТОБОЙ ЭТА СТРОЧКА?
чтобы подольше поиздеваться над нами, что ли?
 

cDLEON

Онанист РНРСlub
mixwell
о_О. А сам как думаешь?
Приведи мне содержимое страницы http://phpfaq.ru/na_tanke
 

mixwell

Новичок
Установка куки должна выглядеть, как
Set-Cookie: PHPSESSID=prlgdfbvlg5fbsbshch6hj0cq6;
или как
Set-Cookie: PHPSESSID=prlgdfbvlg5fbsbshch6hj0cq6; path=/
(если вы запрашиваете скрипт не из корневого каталога)
Ответ сервера должен выглядеть, как
Cookie: PHPSESSID=prlgdfbvlg5fbsbshch6hj0cq6
либо
Cookie: PHPSESSID=prlgdfbvlg5fbsbshch6hj0cq6; b=b
в соответствии с этим я и написал, что Set-Cookie- установка куки, а Cookie - ответ сервера.
Извените уж, просто написал в соответствии с приведенной цитатой из faq.
в этом виджете есть только строка set-cookie: PHPSESSID = e5ee79FOefc8a52c6ee56455daabfa4a path=/, строки запроса браузера нет. Могу сделать скриншот.

-~{}~ 11.11.07 15:25:

куки не отключены.
 

cDLEON

Онанист РНРСlub
Хм. Помоему в факю недочёт 8)
Set-Cookie: PHPSESSID=prlgdfbvlg5fbsbshch6hj0cq6;
Это говорит сервер.
Cookie: PHPSESSID=prlgdfbvlg5fbsbshch6hj0cq6; b=b
А это говорит клиент. И ТОЛЬКО при последующих обращениях к страничке. Т.е. он отправляет все установленные сервером и валидные куки.
 

mixwell

Новичок
может поможет понять в чем дело, тот факт что когда меняешь
PHP:
header("Location: index.php part=2&action=data&subPart=data&action=1");
exit;
на
PHP:
$OUTPUT_INFO .= "<script language=JavaScript>location.replace('index.php?part=2&action=data&subPart=data&action=1') </script>";
то после редиректа стразу отображается информация о то, что пользователь авторизированн, а вот если использую header, то переменные сессии будут определятся только после того как закрою и загружу заново сайт.

-~{}~ 11.11.07 15:38:

cDLEON спасибо, я понял. Впринципе ето то и понятно, просто написал как в факе. sorry.

-~{}~ 11.11.07 15:39:

вот информации про ответ клиента в виджете нет:(
 

mixwell

Новичок
да этот виджет вообще ничего не пишет про ответ клиента(cookie: ), есть только строчка set-cookie
 

Фанат

oncle terrible
Команда форума
хорошо.
в пхп ты в состоянии просмотреть содержимое массива $_COOKIE?
или это для тебя тоже непосильная задача?
 

mixwell

Новичок
сейчас поставил firefox и для него норальны рабочий виджет, и вот что он мне выдает когда я авторизируюсь и он мне говорит, что сессии не созданы:
http://test.com/index.php?part=22&subPart=2&action=auth
POST /index.php?part=22&subPart=2&action=auth HTTP/1.1
Host: test.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.0.2) Gecko/20060405 Firefox/1.5.0.2
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://test.com/
Cookie: PHPSESSID=89f76d08bcb7eae882be19ac31a60e28
Content-Type: multipart/form-data; boundary=---------------------------41184676334
Content-Length: 514
-----------------------------41184676334
Content-Disposition: form-data; name="loginN"

david
-----------------------------41184676334
Content-Disposition: form-data; name="passN"

1234567
-----------------------------41184676334
Content-Disposition: form-data; name="hidPar"

1
-----------------------------41184676334
Content-Disposition: form-data; name="x"

28
-----------------------------41184676334
Content-Disposition: form-data; name="y"

2
-----------------------------41184676334--

HTTP/1.x 302 OK
Date: Sun, 11 Nov 2007 13:08:07 GMT
Server: Apache/1.3.33 (Unix)
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.4.7
Location: http://www.test.com/index.php?part=2&action=data&subPart=data&action=1
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
----------------------------------------------------------
http://www.test.com/index.php?part=2&action=data&subPart=data&action=1

GET /index.php?part=2&action=data&subPart=data&action=1 HTTP/1.1
Host: www.test.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.0.2) Gecko/20060405 Firefox/1.5.0.2
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://test.com/
HTTP/1.x 200 OK
Date: Sun, 11 Nov 2007 13:08:07 GMT
Server: Apache/1.3.33 (Unix)
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
X-Powered-By: PHP/4.4.7
Set-Cookie: PHPSESSID=f40d76e7bc1efe5b6a3a427fcb7d663e; path=/
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
----------------------------------------------------------
http://www.test.com/images/topImage1.jpg

GET /images/topImage1.jpg HTTP/1.1
Host: www.test.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.0.2) Gecko/20060405 Firefox/1.5.0.2
Accept: image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.test.com/index.php?part=2&action=data&subPart=data&action=1
Cookie: PHPSESSID=f40d76e7bc1efe5b6a3a427fcb7d663e

HTTP/1.x 200 OK
Date: Sun, 11 Nov 2007 13:08:08 GMT
Server: Apache/1.3.33 (Unix)
Last-Modified: Wed, 24 Oct 2007 20:50:16 GMT
Etag: "65e6e83-bab3-471fb008"
Accept-Ranges: bytes
Content-Length: 47795
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Content-Type: image/jpeg

https://aus2.mozilla.org/update/1/Firefox/1.5.0.2/2006040507/WINNT_x86-msvc/en-US/release/update.xml

GET /update/1/Firefox/1.5.0.2/2006040507/WINNT_x86-msvc/en-US/release/update.xml HTTP/1.1
Host: aus2.mozilla.org
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.0.2) Gecko/20060405 Firefox/1.5.0.2
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cache-Control: no-cache

HTTP/1.x 200 OK
Date: Sun, 11 Nov 2007 13:15:55 GMT
Server: Apache/2.0.52 (Red Hat)
Set-Cookie: aus=10.2.81.4.1194786955161185; path=/; expires=Mon, 10-Nov-08 13:15:55 GMT
X-Powered-By: PHP/4.3.9
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, private
Keep-Alive: timeout=300, max=171
Connection: Keep-Alive
Content-Type: text/xml;
Content-Encoding: gzip
Content-Length: 54
-~{}~ 11.11.07 16:17:

складывается такое впечатление, что вызов редиректа через header("Loaction: ") как то перебивает создание переменных сессии, Но почему-то когда закрываешь сайт и откраываешь его потом вновь то переменные сессии созданы.

-~{}~ 11.11.07 17:02:

точнее не закрываешь а открываешь новую закладку

-~{}~ 11.11.07 18:23:

После тестирования, понял, что проблема в редиректе через header, как только его заменяешь на редирект через javascript, все работает нормально.
 

mixwell

Новичок
а как поступают в таких случаях? Делая редирект через javascript, это не очень грамотно.. И правильно ли я понял, что проблема в том, что опера не отдает куку серверу при редиректе через header()?
 

cDLEON

Онанист РНРСlub
mixwell
Это очень похоже на "баг".
Опера делает редирект не обрабатывая заголовки с куками.
 

mixwell

Новичок
ты имеешь ввиду баг оперы? с firefox тоже самое(если я не ошибаюсь они с оперой на одном движке написаны)
Мне просто важно убедится, что это не я чего-то напортачил..
 

anti_sapiens

Новичок
Автор оригинала: mixwell
(если я не ошибаюсь они с оперой на одном движке написаны)
Ошибаешься.

Автор оригинала: mixwell Мне просто важно убедится, что это не я чего-то напортачил..
Видимо это все-таки ты напортачил.
 

mixwell

Новичок
проблема однозначно в сочетании использования редиректа через header() и обработкой куков(т.к. когда земеняю редирект через header на редирект через javascript все работает нормально). Я все-таки предполагаю, что это проблема браузера, но все же хотелось чтобы эксперты разьяснили проблему.
Я коненчо понимаю что уже многих достал, и по-этому приношу свои извенеия, просто для меня очень важно именно правильное решение этой проблемы, чтобы в дальнейшем она не появилось вновь или не вытекла в другом месте.
 

SiMM

Новичок
POST /index.php?part=22&subPart=2&action=auth HTTP/1.1
Host: test.com
...
Location: http://www.test.com/index.php?part=2&action=data&subPart=data&action=1
 

mixwell

Новичок
все-таки разобрался.
В таких браузерах, как opera, firefox после создания переменных сессии в редиректе через header нужно указывать адресс без http://www.ru/index.php? а сразу index.php?
т.е. вместо
указывать
header("Location: index.php?part=3&subPart=1&action=show&id=$id");
Вот такая вот особенность. Если это ни кому не знакомая проблема, то можно куда-нибудь вынести, а то вдруг кто сталкнется и будет париться как я.
Огромное человеческое спасибо ФАНАТУ. Данный товарищ помогает мне не в первый раз. И помогает до последнего. Respect:)
 

SiMM

Новичок
> Если это ни кому не знакомая проблема, то можно куда-нибудь вынести
Эта никому незнакомая проблема описана в таблице 1 документации на [m]setcookie[/m]
PS: зачем вообще в Location указывать жёсткие URI? Это ж при смене домена потом делать лишние телодвижения.
 
Сверху