PHP fsockopen() cookies


PHP fsockopen() cookies

>我正在尝试创建一个"远程登录"站点,但是当我尝试以下代码时,我收到有关cookie被禁用的错误,我已经在谷歌上搜索了解决方案,但是唯一解决的情况是cURL方式(cookie jar),我该如何解决cookie问题?我怎样才能找到网站需要的cookie(它有大约10个)?

<?php
$vars = array(
    'email' => "*****",
    'pass'=>"*****"
    );
$content = http_build_query($vars);
$host = 'www.site.com';
$service_uri = '/login.php';
$vars ='login_mode=1';
$header = "Host: $host'r'n";
$header .= "User-Agent: PHP Script'r'n";
$header .= "Content-Type: application/x-www-form-urlencoded'r'n";
$header .= "Referer: http://www.site.com 'r'n";
$header .= "Content-Length: ".strlen($content)."'r'n";
$header .= "Connection: close'r'n'r'n";
$fp = fsockopen("".$host,80, $errno, $errstr);
if (!$fp)
{
    echo "$errstr ($errno)<br/>'n";
    echo $fp;
}
else
{
    fputs($fp, "POST $service_uri  HTTP/1.1'r'n");
    fputs($fp, $header.$content);
    while(!feof($fp))
    {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

您首先必须请求主页URL,这将为您提供cookie标头。解析它们并通过将它们添加到 $header 变量来将它们发送到服务器。

您不想关心网站需要哪个cookie - 只需发送所有cookie,这使它具有前瞻性。

如果您不想自己做这一切,请查看PEAR的HTTP_Request2包 - 它内置了cookie处理功能。