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

Разное

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

 

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

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

тема: IE и метод POST
 
 автор: Gendalf   (14.12.2008 в 14:32)   письмо автору
 
 

Здраствуйте. Кто нибудь сталкивался с тем, что 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 меняются

  Ответить  
 
 автор: cheops   (14.12.2008 в 14:44)   письмо автору
 
   для: Gendalf   (14.12.2008 в 14:32)
 

Вообще-то POST-данные как раз передаются (edit_url=...), почему-то Content-Length: равен 0, если честно не сталкивался с таким, вообще у IE бывают иногда необъяснимые глюки, то установка cookie слетит, то ещё какое-то несчастье.

  Ответить  
 
 автор: GeorgeIV   (15.12.2008 в 16:35)   письмо автору
 
   для: Gendalf   (14.12.2008 в 14:32)
 

Может просто прога, которой смотрите, буфер за собой не чистит
Чем смотрите заголовки?

  Ответить  
 
 автор: Gendalf   (15.12.2008 в 22:55)   письмо автору
 
   для: GeorgeIV   (15.12.2008 в 16:35)
 

Плагином для IE DebugBar.
Поискав в гугле нашел, что это глюки из-за NTLM авторизации. Когда происходит авторизация то браузер IE не передает POST данные. Лечится вроде отключением KeepAlive, или уменьшением времени до 1 секунды. Правда не проверял еще.

  Ответить  
 
 автор: gust   (21.04.2009 в 07:20)   письмо автору
 
   для: 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

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

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