【问题标题】:Not create new session after from curl request params从 curl 请求参数后不创建新会话
【发布时间】:2019-03-17 06:09:45
【问题描述】:

我有 curl 到函数初始化会话 1 与从 curl 传输的元素,但在此函数无法使用从 curl 获得的键和值重新初始化新会话 1。但是,当我在 curl 调用未结束的链接链接上执行 F5 时,仍然初始化会话,请让我

public function createSession(){
$params = $request->all();
        $key = uniqid();
        $request->session()->put($key, $params);
        return response()->json([
            'success' => true,
            'key' => $key,
        ]);
}

卷曲:

$ch = curl_init($url);
        curl_setopt($ch, CURLOPT_POST, count($params));
        curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); // Time out 60s
        curl_setopt($ch, CURLOPT_TIMEOUT, 60); // connect time out 60s

        $result = curl_exec($ch);
        $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        if (curl_error($ch)) {
            return false;
        }

        if ($status != 200) {
            curl_close($ch);
            return false;
        }
        // close curl
        curl_close($ch);
        return json_decode($result);

【问题讨论】:

    标签: php laravel session curl


    【解决方案1】:

    服务器需要 Session ID 来识别来自先前调用的数据。当您使用浏览器时,该会话 ID 存储在自动发送到服务器的 Cookie 中。使用 cURL 时需要手动设置 cookie。

    请参阅此答案以更好地了解会话和 Cookie 的工作原理:How do Cookies and Sessions work?

    有关在 curl 中为 php 使用 cookie 的示例,请参阅此答案:How can I send cookies using PHP curl in addition to CURLOPT_COOKIEFILE?

    【讨论】:

    • $request->session()->put($key, $params); - 调用 curl 到函数 createSession() 时不起作用,$param 是来自请求 curl 发送的值接收,这里的问题是调用 curl 到 createSession() 时缺少 cookie?请
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 2012-11-30
    • 2015-05-18
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多