我是法国人,我需要一些帮助。 所以我想用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);
?>
答案 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);