php CURL - 多个独立 session - 需要帮助!

标签 php session cookies curl

这是我的困境... 我基本上有一个脚本,它通过 CURL 发布到第 3 方网站以执行登录,然后发布另一个帖子以根据该登录 session 更新用户详细信息。现在,随着我的网站越来越忙,我有多个用户在做同样的事情,似乎 curl 有时会变得困惑,并用不同的用户信息更新一个用户的详细信息。这导致了真正的问题。 似乎是用户在一次登录后使用的 cookie 被其他用户共享,他们最终使用相同的 cookie 登录 - 混淆了第 3 方系统。我的代码发布在下面,我需要使用 cookiefile 和 cookiejar 来维护 php session 以允许我做我需要做的事情。但似乎所有用户都在重复使用同一个 cookie…… 那有意义吗?有什么我可以做的来改变这个吗?请指教.... 非常感谢!

下面是我用来登录和发布用户更新的代码

function hitForm($postURL, $postFields, $referer="", $showerr = FALSE, $ispost = TRUE) {
    global $islocal, $path_escape;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");

    curl_setopt($ch, CURLOPT_URL, $postURL);
    if ($ispost)
        curl_setopt($ch, CURLOPT_POST, 1);
    else
        curl_setopt($ch, CURLOPT_HTTPGET, 1);
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    $ret = curl_exec($ch);
    if ($error = curl_error($ch)) {
        if ($showerr)
            echo 'ERROR: ' . $error;
        return -1;
        exit;
    }
    $CU_header = curl_getinfo($ch);
    $CU_header["err"] = curl_errno($ch);
    $CU_header["errmsg"] = curl_error($ch);
    curl_close($ch);

    $returnout = $ret;

    //for debugging purposes for now we are logging all form posts
    SaveLog("hitform", "F[".$this->curruserid." - ".$this->currfunc." - ".date("d-m-y h:i:s")."]".$postFields);

    return $ret;
}

最佳答案

您为每个 session 使用相同的 cookies.txt 文件,因此这就是共享 cookie 问题的来源。您需要为要运行的每个并行 session 指定一个单独的文件。

关于php CURL - 多个独立 session - 需要帮助!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4547776/

相关文章:

php - 从病毒中清除 php 文件

php - 正则表达式 + preg_match_all - 获取属性的值

php - 登录页面 session 信息防止双重登录

java - 使用 Spring 和 Angular 2 进行 CSRF

javascript - 为 .example.com 设置的 cookie 是否适用于所有子域或仅适用于第三级域?

php - 我怎样才能让记住我更安全

php - {Carbon} 将时间转换为 HH :MM:SS format into seconds in Laravel?

php - 从 CodeIgniter 中的 URL 捕获哈希值 (#)

php - session ['username'] 未设置

session - 如何向 session 表添加自定义字段