Всем привет.
не могли бы подсказать, в чем ошибка -
собственно шлю POST запрос, получаю куку, далее шлю GET запрос с этой кукой, в ответ приходит новая кука, и сервер пишет, что куки нет.
не могли бы подсказать, в чем ошибка -
Код:
$sDomain = '127.0.0.1'
$iPort = 80
$sParameters = 'fo=75&ot=%CF%F'
$sRequest = 'POST 127.0.0.1/te.php HTTP/1.1' & @CRLF
$sRequest &= 'Connection: close' & @CRLF
$sRequest &= 'Accept: */*' & @CRLF
$sRequest &= 'User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.229 Version/11.60' & @CRLF
$sRequest &= 'Host: 127.0.0.1' & @CRLF
$sRequest &= 'Content-Type: application/x-www-form-urlencoded' & @CRLF
$sRequest &= 'Content-Length: ' & StringLen($sParameters) & @CRLF
$sRequest &= @CRLF
$sRequest &= $sParameters
If TCPStartup() = 0 Then
MsgBox(16, 'Ошибка', 'Не удалось запустить TCP/UDP-службы.')
Exit 1
EndIf
$sIP = TCPNameToIP($sDomain)
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось получить ip-адрес сервера.')
Exit 2
EndIf
$iSocket = TCPConnect($sIP, $iPort)
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось соедениться с сервером.')
Exit 3
EndIf
TCPSend($iSocket, $sRequest)
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось отправить запрос.')
Exit 4
EndIf
$sData = ''
$iTimer = TimerInit()
Do
$sBuffer = TCPRecv($iSocket, 1024)
$iError = @error
If Not $sBuffer = '' Then
$sData &= $sBuffer
$iTimer = TimerInit()
EndIf
Until $iError <> 0 Or TimerDiff($iTimer) > 5000
;TCPShutdown()
;TCPCloseSocket($iSocket)
;TCPShutdown()
MsgBox(16,'', $sData)
$cookies = StringRegExp($sData, '((?si)PHPSESSID=.*?);', 1)
$buy= StringRegExp($sData, '((?si).wb=\d+.*?).>', 1)
If @error Then
MsgBox(16, 'Ошибка', 'Полученные данные неверны.')
Exit 5
EndIf
MsgBox(16, 'Ошибка', $cookies[0])
$sRequest=''
$iSocket=''
;Запрос, который будет отправлен серверу
$sRequest = "GET 127.0.0.1/te.php&id=75&k=n HTTP/1.1" & @CRLF
$sRequest &= 'Connection: close' & @CRLF
$sRequest &= 'Accept: */*' & @CRLF
$sRequest &= 'User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.229 Version/11.60' & @CRLF
$sRequest &= 'Cookie: '&$cookies & @CRLF
$sRequest &= 'Host: 127.0.0.1' & @CRLF
$sRequest &= @CRLF
$iSocket = TCPConnect($sIP, $iPort)
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось соедениться с сервером.')
Exit 3
EndIf
TCPSend($iSocket, $sRequest)
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось отправить запрос.')
Exit 4
EndIf
$sData = ''
$iTimer = TimerInit()
Do
$sBuffer = TCPRecv($iSocket, 1024)
$iError = @error
If Not $sBuffer = '' Then
$sData &= $sBuffer
$iTimer = TimerInit()
EndIf
Until $iError <> 0 Or TimerDiff($iTimer) > 5000
TCPCloseSocket($iSocket)
TCPShutdown()
;$aData = StringRegExp($sData, '(?s)(.*?)\r\n\r\n(.*)', 3)
;If @error Then
; MsgBox(16, 'Ошибка', 'Полученные данные неверны.')
; Exit 5
;EndIf
MsgBox(0, ' :'(', $sData)
собственно шлю POST запрос, получаю куку, далее шлю GET запрос с этой кукой, в ответ приходит новая кука, и сервер пишет, что куки нет.