Заголовки и странности сокета

Winner

Новичок
Здравствуйте друзья!

Пожалуйста, помогите решить проблему- устранить зависание при чтении и залогиться.

Вот фрагмент кода работы со сокетом:


PHP:
$eFputs =fputs($source_socket, $reqHead);
	
	
	$headers_response ='';
	$body_response ='';
	$couFgets =0;
	
	while(!$body_response && $couFgets<70000){
		
		$headers_response =fgets($source_socket, 102400);
		$body_response .=$headers_response;
		$couFgets++;
		
	}
	
	
	while(!feof($source_socket)){
		
		$body_response .= fread($source_socket, 1024);
		
	}
Это первый запрос с POST логингом. Есть-ли в нем ошибка, потому, что если логиться через браузер то редирект отправляет на страницу http://doma.biz/dom/index.php а не http://doma.biz/ .

POST /login.php HTTP/1.1
Host: doma.com
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
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.
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 150
Connection: close
Referer: http://doma.com/login.php
Cookie: PHPSESSID=s2sdf5erfdanfempu385rjmh73
Content-Type: application/x-www-form-urlencoded
Content-Length: 71

login=Owner&passwd=etoja&go=GO';
-----------------------------------------------------------------------------------------------


Это ответ с редиректом на http://doma.com/ .

HTTP/1.1 302 Found
Date: Fri, 10 Jun 2011 08:56:24 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Last-Modified: "Fri, 10 Jun 2011 08:56:24 GMT"
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: http://doma.com/
Content-Length: 0
Connection: close
Content-Type: text/html; charset=windows-1251

-----------------------------------------------------------------------------------------------

Запрос редиректной страницы http://doma.com/ здесь скрипт зависает при чтении со сокета.

GET / HTTP/1.1
Host: doma.com
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
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.
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 150
Connection: close
Referer: http://doma.com/login.php
Cookie: PHPSESSID=s2sdf5erfdanfempu385rjmh73
Content-Type: text/html

-----------------------------------------------------------------------------------------------

Если логиться через браузер то редирект вместо http://doma.com/ отправляет на другую страницу- http://doma.com/dom/index.php.

HTTP/1.1 302 Found
Date: Thu, 09 Jun 2011 12:54:58 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Last-Modified: "Thu, 09 Jun 2011 12:54:58 GMT"
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: http://doma.com/dom/index.php
Content-Length: 0
Connection: close
Content-Type: text/html; charset=windows-1251

-----------------------------------------------------------------------------------------------
 

AmdY

Пью пиво
Команда форума
Winner
используй curl, а лучше обёртку над ним, их валом
 

Winner

Новичок
Привет AmdY!
Спасибо за помощь. Пожалуйста, подскажи- curl поддерживает крипто-протоколы? Например у fsockopen с этим проблемы.
В этом скрипте я использую stream_socket_client .
До этого проблем не было.
Но раньше, когда был fsockopen, то на некоторых сайтах тоже случалось зависание при чтении- как будто бесчисленное количество пустых строк в ответ.
 

tz-lom

Продвинутый новичок
Winner
тебя направили,теперь читай маны, а то как эти будешь
 

Валерий_har

Новичок
Добрый вечер! На определённом сайте выскакивает окно http-авторизации.
скажите, плиз,Как с помощью скрипта на php отправить провести авторизацию??
 

Валерий_har

Новичок
нет. я имел в виду не это, а отправить с помощью скрипта окну http-авторизации логин и пароль, не видя этого окна. т.е.чисто в скрипте.как это сделать?
 

AmdY

Пью пиво
Команда форума
Валерий_har
проверил, там в комментах ответ есть, лучше читайте все подрят для общего развития, но для облегчения задачи скажу, что в 2006-м году решение точно было дано. извини.
 

Валерий_har

Новичок
Можете конкретно сказать, где? мне очень надо... просто нет времени сейчас читать там всё подряд. пожалуйста
 

Andkorol

Новичок
просто там в 2006-х нет, чего нужно...
Да есть там всё...
Такое бывает, когда сам не понимаешь, что конкретно нужно - а хочется просто скопипастить готовое решение.

Там прям так и написано: "Простой PHP скрипт для логина на страницу с базовой аутентификацией".
Только по-буржуйски... :)
 

Валерий_har

Новичок
спасибо. я видел это!но ещё раз говорю - мне надо из своего скрипта, не глядя, отсылать данные форме http-авторизации и соединяться/не соединяться.....
 
Сверху