15
我的程式是從主機A用socket送出http要求給另一台主機B用來存取主機B上的session資料,我的cookies已經設定為整個網域皆可存取
session_name('testcookies');
session_start();
$ssid=session_id();
$sct=fsockopen('220.134.123.2',80);
if(!$sct){
echo 'Connection failed';
exit();
}
if($ssid==''){
echo 'Session failed';
exit();
}
//output http
$out="GET /session.php HTTP/1.1\r\n";
$out.="Host: myweb.xx\r\n";
$out.="Keep-Alive: 10\r\n";
$out.="Connection: Keep-Alive\r\n";
$out.="Cookie: testcookies=$ssid\r\n";
$out.="\r\n\r\n";
fwrite($sct,$out);
flush();
while(!feof($sct)){
echo fread($sct,1024);
}
fclose($sct);
在執行上述的code會造成整個瀏覽器停住,一直等待伺服器回應的情況,最後httpd服務必須要重新啟動才能連上,我查看httpd的紀錄該要求已經完成
但是如果我使用telnet去連接該主機並送出下列要求
GET /session.php HTTP/1.1
Host: myweb.xx
Keep-Alive: 10
Connection: Keep-Alive
Cookie: testcookies=357d1b78d58c4362d3c4e66f5e485f02
則可以得到正確的資料,敢問各位前輩要如何debug,目前小弟沒有任何頭緒 :(