curl post 带cookies 提交 本地测试通过 放到服务器上就不行了。。

wky12 2015-04-17 01:15:06
<?php
function post($url) {
//$url = 'http://appsale.plateno.com/lottery/signIn';
$fields = array();
//$post_data = implode('&',$fields);
//open connection
$ch = curl_init() ;
//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL,$url) ;
$header[]= 'Accept:application/json, text/javascript, */*; q=0.01';
$header[]= 'Accept-Language: zh-CN,en-US;q=0.8';
$header[]= 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.4; m1 note Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36';
$header[]= 'Host:appsale.plateno.com';
$header[]= 'Connection: Keep-Alive ';
$header[]= 'Cookie:JSESSIONID=18m3nwr98rabvaw4wkabpsh65; Hm_lvt_9e1723eeb12ee3dcdb34cd37d7417626=1429194251; Hm_lpvt_9e1723eeb12ee3dcdb34cd37d7417626=1429195792';
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_POST,count($fields)) ; // 启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
curl_setopt($ch, CURLOPT_POSTFIELDS,$fields); // 在HTTP中的“POST”操作。如果要传送一个文件,需要一个@开头的文件名
ob_start();
curl_exec($ch);
$result = ob_get_contents() ;
ob_end_clean();
//close connection
curl_close($ch) ;
return $result;
}
$login=post('http://appsale.plateno.com/check_login');
echo $login;
if (strpos($login,'100')!=false) {
$qiaodao=post('http://appsale.plateno.com/lottery/signIn');
if (strpos($qiaodao,'100')!=false){
echo 'yes';
}
else{
if (strpos($qiaodao,'您已经签到过了')!=false){
echo 'yes';
}
else
{
echo 'no';
}
}

}
else{
echo 'no';
}
?>


对cookie不太熟悉 望大牛们解答
...全文
231 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
猪崽儿0o0 2015-04-18
  • 打赏
  • 举报
回复
你看下该目录下你是否有权限进行操作,一般像你这种情况还是先检测下文件夹及文件的权限问题,然后再看。
wky12 2015-04-17
  • 打赏
  • 举报
回复
引用 1 楼 zerolone 的回复:
关键就是3句 $this->cookieFile = SITE_DIR . $this->theFile.'.txt'; curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookieFile); curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookieFile); 你要在服务器上也定义一个文件, 这样才能储存,读取。
我是自己定义的header cookie 直接post过去的啊
Zerolone 2015-04-17
  • 打赏
  • 举报
回复
关键就是3句 $this->cookieFile = SITE_DIR . $this->theFile.'.txt'; curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookieFile); curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookieFile); 你要在服务器上也定义一个文件, 这样才能储存,读取。

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧