【问题标题】:PHP cUrl and cookie GX_SESSION_IDPHP cUrl 和 cookie GX_SESSION_ID
【发布时间】:2020-04-16 09:03:35
【问题描述】:

我被这件事困住了。

我正在尝试自动化网站表单中的查询并使用 PHP 处理返回响应。我的代码实际上有效,但只有当我添加以下标题时:

$headers = [
    'Cookie: GX_SESSION_ID=zWfdnmlQgtodK0ax97epfsbma9J0tvVI%2B%2BelShsOIZo%3D; JSESSIONID=E1378A4864FFF03AF4B8BAA0CBB88D89;',
];
curl_setopt($cURLConnection, CURLOPT_HTTPHEADER, $headers);

JSESSIONID 变量没有问题,没有它脚本运行良好。但是,如果我不使用有效的 gx 会话 id(我从浏览网站的 google chrome 获取)声明 GX_SESSION_ID var,则脚本不起作用。

当我使用谷歌浏览器浏览网站时,一进入网站。 cookie 在请求标头中发送。

我不明白这个 var 是如何创建的。

你能帮我把它重新创建到我的 cURL PHP 代码中吗?无需从浏览器手动获取即可创建 calid GX_SESSION_ID?

谢谢大家

【问题讨论】:

    标签: php curl cookies genexus


    【解决方案1】:

    使用 curl 获取 cookie 变量作为数组:

    $ch = curl_init('http://www.google.com/');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // get headers too with this line
    curl_setopt($ch, CURLOPT_HEADER, 1);
    $result = curl_exec($ch);
    // get cookie
    // multi-cookie variant contributed by @Combuster in comments
    preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches);
    $cookies = array();
    foreach($matches[1] as $item) {
        parse_str($item, $cookie);
        $cookies = array_merge($cookies, $cookie);
    }
    var_dump($cookies);
    

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 1970-01-01
      • 2011-12-19
      • 2011-10-08
      • 2011-11-23
      • 2015-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多