Php curl不写cookies

Php curl不写cookies,php,curl,login,https,external,Php,Curl,Login,Https,External,我尝试使用json数据登录,服务器响应登录成功,但它不会将会话写入Cookie,我的代码: <?php $json_url = 'https://www.site.com/Login'; $json_string = '{"username":"user","password":"12345"}'; $ch = curl_init( $json_url ); $options = array( CURLOPT_HEADER => true, CURLOPT_RETURNTRANS

我尝试使用json数据登录,服务器响应登录成功,但它不会将会话写入Cookie,我的代码:

<?php
$json_url = 'https://www.site.com/Login';
$json_string = '{"username":"user","password":"12345"}';

$ch = curl_init( $json_url );

$options = array(
CURLOPT_HEADER => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json;  charset=utf-8') ,
CURLOPT_POSTFIELDS => $json_string
);

curl_setopt_array( $ch, $options );

$result =  curl_exec($ch); // Getting jSON result string
echo $result;
?>


我看到需要写入标题的cookie,但它们没有写入我的浏览器。

使用服务器端curl请求创建的cookie无法发送到浏览器。不能为运行脚本的域以外的域设置cookie。e、 g.您不能让PHP代码登录到facebook,并将facebook会话令牌传输回用户,使其在实际的facebook站点上可用。如果您尝试,您会发现浏览器确实使用您设置的名称/值设置了cookie,但它仅限于您的站点,而不是facebook.com

您需要添加cookie文件才能保存和读取它们:

curl_setopt($s,CURLOPT_COOKIEJAR,"ciasteczka.txt"); 
curl_setopt($s,CURLOPT_COOKIEFILE,"ciasteczka.txt");

(ciasteczka是波兰语中的cookies)

对,换句话说,在该数组中,您需要添加两个新键(CURLOPT_COOKIEJAR和CURLOPT_COOKIEFILE),这两个键的值都是具有写入权限的文件的路径on@mark-b是的,我想是这样,但是有什么解决办法吗?如何在客户端发送json数据?我需要类似这样的东西,但是需要json数据POST。你不能,如果你想让饼干起作用就不行。要么用户直接提交到您试图让他们登录的站点,这样Cookie就可以工作,要么您代理他们所做的一切。