卷曲和饼干PHP

时间:2017-03-19 09:32:23

标签: php curl cookies

我是法国人,我需要一些帮助。 所以我想用cURL库创建一个php脚本,这个脚本的目标是在网站商店的篮子里添加一篇文章但是在我添加文章的那一刻和我支付它的时候脚本都失败了会话。我试图保存cookie,但这不起作用!我不明白!如果你对我的工作方式有什么了解,请你回答我 我的代码是

<?php

    function login($url,$data){
    $fp = fopen("cookie.txt", "w");
    fclose($fp);
    $login = curl_init();
    curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
    //curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($login, CURLOPT_TIMEOUT, 40000);
    curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($login, CURLOPT_URL, $url);
    curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($login, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($login, CURLOPT_POSTFIELDS, $data);
    ob_start();
    return curl_exec ($login);
    ob_end_clean();
    curl_close ($login);
    unset($login);    
}                  
function grab_page($site){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_TIMEOUT, 40);
    curl_setopt( $ch, CURLOPT_COOKIESESSION, TRUE);
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_URL, $site);
    ob_start();
    return curl_exec ($ch);
    ob_end_clean();
    curl_close ($ch);
}


login('link','data to add in basket');
echo grab_page(the basket);
?>

1 个答案:

答案 0 :(得分:0)

你正在混合卷曲处理程序,

在您的登录功能中使用$ch处理程序

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
//          ^^^

必须是$login

curl_setopt($login, CURLOPT_SSL_VERIFYPEER, FALSE);

相同,在您使用grab_page

$login函数中
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
//          ^^^^^^

必须是:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);