|
|
|
| Здраствуйте. Кто нибудь сталкивался с тем, что IE передает данные методом POST через раз.
В других браузеров такого глюка не наблюдал.
Посмотрел какие заголовки IE отправляет. Вот когда массив $_POST пуст
POST /adm/servers.php HTTP/1.1
Accept: ...
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2)
Host: ...
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ...
Authorization: NTLM TlRMTVNTUAABAAAAB7II...
Content-Length: 0
edit_url=http%3A%2F%2Fqwerty%2Ferqwwew&id_server=18&edit=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C&url=
|
А вот когда данные приходят и в $_POST они есть
POST /adm/servers.php HTTP/1.1
Accept: ...
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2)
Host: ...
Cookie: ...
Connection: Keep-Alive
Cache-Control: no-cache
Authorization: NTLM TlRMTVNTUAADAAAAGAAYAH...
Content-Length: 122
edit_url=http%3A%2F%2Fqwerty%2Ferreterterteq&id_server=18&edit=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C&url=
|
Как из этого видно, данные в обоих случаях передаются. Но почему то Content-Length и Authorization меняются | |
|
|
|
|
|
|
|
для: Gendalf
(14.12.2008 в 14:32)
| | Вообще-то POST-данные как раз передаются (edit_url=...), почему-то Content-Length: равен 0, если честно не сталкивался с таким, вообще у IE бывают иногда необъяснимые глюки, то установка cookie слетит, то ещё какое-то несчастье. | |
|
|
|
|
|
|
|
для: Gendalf
(14.12.2008 в 14:32)
| | Может просто прога, которой смотрите, буфер за собой не чистит
Чем смотрите заголовки? | |
|
|
|
|
|
|
|
для: GeorgeIV
(15.12.2008 в 16:35)
| | Плагином для IE DebugBar.
Поискав в гугле нашел, что это глюки из-за NTLM авторизации. Когда происходит авторизация то браузер IE не передает POST данные. Лечится вроде отключением KeepAlive, или уменьшением времени до 1 секунды. Правда не проверял еще. | |
|
|
|
|
|
|
|
для: Gendalf
(14.12.2008 в 14:32)
| | Столкнулся с такой же проблемой, нашел вот здесь:
http://www.pda.javatalks.ru/sutra38683.php&sid=3dff5cf7ef9ea7d1431199fde94260bb
----------------------------------------
TimReset : 30
Мар 01, 2009 13:32
Вопрос решил!
Вот ссылка:
http://davenport.sourceforge.net/ntlm.html
А там строка:
Цитата:
A notable exception to the above is the client's behavior when submitting a POST request (typically employed when the client is sending form data to the server). If the client determines that the server is not the local host, the client will initiate reauthentication for POST requests over the active connection. The client will first submit an empty POST request with a Type 1 message in the "Authorization" header; the server responds with the Type 2 message (in the "WWW-Authenticate" header as shown above). The client then resubmits the POST with the Type 3 message, sending the form data with the request.
Т.е. каждый раз при отправке POST запроса происходит NTLM-авторизация (после чего доходит сам запрос), а я делал NTLM-авторизацию только на главной странице и дальше создавал сессию, которую использовал при определении пользователя. Это было не совсем правильно. Т.е. для решения проблемы нужно код NTLM-авторизации написать на всех страницах приёмки POST-запросов.
Всё!
---------------------------------
Может кому-нить поможет.
Мне, помогло
ps: админам - я бы передвинул тему в блок PHP | |
|
|
|