gpt4 book ai didi

php - 如何在 curl 请求中传递 PHP_session_id

转载 作者:行者123 更新时间:2023-12-02 03:11:18 26 4
gpt4 key购买 nike

我正在学习 PHP 并尝试自动化网站登录,然后在登录后将一些数据发布到另一个页面。我设法登录到该网站,当我尝试发布数据时,我得到了“文档已移动”。

然后我分析了 firebug 中的 header 并意识到有一个 PHP_session_id,所以当我尝试手动传递这个 PHP_session_id 时它起作用了。

所以我的问题是,如何在登录时自动获取 sessionid,然后将其传递给我的第二个请求?

我的代码是这样的:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/login-main.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"loginType=company&username=johndoe%40gmail.com&password=1234&company=test");

ob_start();
curl_exec ($ch);
ob_end_clean();
curl_close ($ch);
unset($ch);

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'Host:www.example.com',
'Origin:http://www.example.com',
'Cookie:PHPSESSID=na6ivnsdfab206ktb453o2au07',
'Referer:http://www.example.com/bookings/'

));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/bookings.php");
curl_setopt($ch, CURLOPT_POSTFIELDS,
"start_date=&end_date=&type=instructor&b_type=&id=41");
$buf2 = curl_exec ($ch);
curl_close ($ch);
echo "<PRE>".htmlentities($buf2);
?>

最佳答案

在所有 curl 请求中添加到您的代码

 curl_setopt($ch, CURLOPT_COOKIEJAR, $full_path_to_cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $full_path_to_cookie_file);

例如

$full_path_to_cookie_file= __DIR__.'/cookie.txt';

关于php - 如何在 curl 请求中传递 PHP_session_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39827642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com