我正在尝试使用与客户端浏览器相同的会话(PHPSESSID)发出CURL请求。我尝试了很多东西并寻找答案,却找不到任何答案。这是我到目前为止的代码:
session_start();
$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/';
session_write_close();
$url="http://example.com";
$useragent = $_SERVER['HTTP_USER_AGENT'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . '/login');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIE, $strCookie);
$response = curl_exec($ch);
var_dump($response);
CURLOPT_COOKIE应该使用请求设置PHPSESSID,但是当我调试CURL请求时它似乎只生成一个新的PHPSESSID,因此它不等于我的浏览器的PHPSESSID。
我也尝试过使用CURLOPT_COOKIEJAR和CURLOPT_COOKIEFILE,但它们似乎只是覆盖了现有浏览器的PHPSESSID。
这两个页面都位于同一个域中。