PHP 用CURL POST后获取cookis并跳转到另一个页面

初学者,请各位大神帮忙,我要实现的是通过POST登录另一个网站,该网站会保存下来一个cookis,成功后直接打开另该网站的管理界面,下面是参考网上资料改的,cookis总... 初学者,请各位大神帮忙,我要实现的是通过POST登录另一个网站,该网站会保存下来一个cookis,成功后直接打开另该网站的管理界面,下面是参考网上资料改的,cookis总有问题,求大神指点!

$cookie_jar = tempnam('./tmp','JSESSIONID');
$remote_url="http://www.baidu.com";
$post_sj="user=123&password=321";
request_by_curl($remote_url, $post_sj);

header("Location: http://www.baidu.com/123.html");
exit;

function request_by_curl($remote_server, $post_string) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $remote_server);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'mypost=' . $post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
展开
 我来答
newphp
推荐于2018-04-11 · TA获得超过176个赞
知道小有建树答主
回答量:100
采纳率:100%
帮助的人:158万
展开全部
无法实现

php在服务器上用curl取得的cookies是存在于php程序所保存的位置
通过php登陆,php可以用这个cookies来访问管理界面,这个没有问题。

但是如果你用了header("Location: ......"),就不行了。网址转向以后,是访问者浏览器去访问,浏览器并没办法获取到你所保存的cookies,浏览器里没有登陆的cookies,所以不能“直接”打开管理界面,必须要重新登陆才行。

如果你用setcookie,你所设置的cookies对应的域名也不对,不能跨域,所以还是得再次在浏览器内登陆。

除非在“管理界面”端写一个api,通过调用这个api,把cookies写进访问者的浏览器里面。
niqianfuaa
2013-07-02 · TA获得超过973个赞
知道小有建树答主
回答量:2131
采纳率:0%
帮助的人:582万
展开全部
楼主request_by_curl函数少个参数,应该后面再加个$cookie_jar,把你第一行的$cookie_jar传过来应该就行了,这个参数手册上说是包含cookie数据的文件名
更多追问追答
追问
获取到是空的···
追答
楼主函数最后是return,因此在外面调用的时候要输出一下,echo或者print_r什么的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上官元恒zsd
2013-07-02 · TA获得超过1770个赞
知道小有建树答主
回答量:3799
采纳率:28%
帮助的人:1175万
展开全部
,,,,,cookjar没定义
更多追问追答
追问
肿么定义···
追答
function request_by_curl里

没有$cookie_jar
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式