【问题标题】:Curl doesn't write on file cookieCurl 不会在文件 cookie 上写入
【发布时间】:2014-05-27 16:25:48
【问题描述】:

我正在尝试使用 curl 登录我的网站,一切正常,唯一的问题是当我打开文件 cookie.txt 时,我发现它是空的,这是我尝试过的代码:

<?
$url = "http://security-dz.com/wp-login.php"; // URL
$POSTFIELDS = 'log=testtest&pwd=test1234';
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4)
Gecko/20030624 Netscape/7.1 (ax)";


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$POSTFIELDS);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

?>

我在同一个文件夹中创建了一个名为 cookie.txt 的文件,但是当我运行此代码时,我可以正常访问我的网站,唯一的问题是当我打开文件 cookie.txt 时它是空的,所以我可以做什么关于这个?

【问题讨论】:

  • 其实这是一个很好的问题,即使是我,我也遇到了同样的问题,希望他们尽快回答
  • CURLOPT_COOKIEFILE/CURLOPT_COOKIEJAR 选项必须设置为完整(绝对)路径值。 "cookie.txt" 是相对路径。
  • ...和 ​​cookie.txt 必须可由运行 Web 服务器的用户写入。
  • @hindmost 但我有一些教程他们把它放在相对路径中!!
  • @user3395024 试着听从我的建议,你就会看到结果

标签: php cookies curl login


【解决方案1】:

如果您在本地主机中,请尝试以下操作:

<?
$url = "http://security-dz.com/wp-login.php"; // URL
$POSTFIELDS = 'log=testtest&pwd=test1234';
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4)
Gecko/20030624 Netscape/7.1 (ax)";


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$POSTFIELDS);
curl_setopt($ch, CURLOPT_COOKIEFILE, "C:/wamp/www/cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/wamp/www/cookie.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

?>

【讨论】:

    【解决方案2】:

    CURLOPT_COOKIEFILE/CURLOPT_COOKIEJAR 选项必须设置为 absolute 路径值。 "cookie.txt" 是相对路径。

    【讨论】:

      【解决方案3】:

      如果你想获得完整路径,你可以使用这种方式。

          $cookie=dirname(__FILE__)."\\cookie.txt";
      

      所以你可以使用这种方式。

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

      对我有用

      【讨论】:

        【解决方案4】:

        试试这个:

        <?
        $url = "http://snipercoder.com/wp-login.php"; // URL
        $POSTFIELDS = 'log=testtest&pwd=test1234';
        $agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4)
        Gecko/20030624 Netscape/7.1 (ax)";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_USERAGENT, $agent);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$POSTFIELDS);
        curl_setopt($ch, CURLOPT_COOKIEFILE, "C:/yourfolderserver/www/cookie.txt");
        curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/yourfolderserver/www/cookie.txt");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        $result = curl_exec($ch);
        curl_close($ch);
        echo $result;
        
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-10
          • 1970-01-01
          • 2015-08-05
          • 2019-10-02
          • 2015-07-12
          • 2016-11-03
          • 2013-01-16
          • 1970-01-01
          相关资源
          最近更新 更多