加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – cURL cookiejar line用#HttpOnly_注释掉?

发布时间:2020-12-13 13:04:09 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用cURL从同一域上的其他页面登录PunBB论坛. 登录时,cURL会被执行,其初始响应是论坛的“成功登录”页面.但是,当点击该论坛中的任何链接时,没有设置cookie,我已经注销了. 经过一番调查后,我的cookiejar文件提到了登录所需的cookie.如果我在浏览器
我正在尝试使用cURL从同一域上的其他页面登录PunBB论坛.

登录时,cURL会被执行,其初始响应是论坛的“成功登录”页面.但是,当点击该论坛中的任何链接时,没有设置cookie,我已经注销了.

经过一番调查后,我的cookiejar文件提到了登录所需的cookie.如果我在浏览器中手动创建此cookie及其值,我已成功登录并且一切正常.因此存储的cookie值是正确的.

然而,在cookiejar中包含我的cookie名称/值的行被注释掉了.

第一个问题:为什么?
第二:如何防止这种行为?

这是我的饼干:

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

www.example.com FALSE   /   FALSE   0   PHPSESSID   3d7oe6vt3blv3vs3ea94nljcs7
#HttpOnly_www.example.com   FALSE   /   FALSE   1340974408  forum_cookie_e19209 MnwyYWQ4OGViNDI2NjE5MWEwMGZiNGZkNDFmZDY5ZDZhYjM5OTA5NDVjfDEzNDA5NzQ0MDh8OTU0NTExOGZhNWNlNGY5OGMzZDk3MmE0NDlmMWRjNzM3ZjI1NzMxOA%3D%3D

这是我的卷毛电话:

function forumLogin() {
    $loginFields = array('req_username' => $_REQUEST['username'],'req_password' => $_REQUEST['password'],'form_sent' => "1"
                    ); //and so on
    $login = getUrl('http://www.example.com/manager/forum/login.php','post',$loginFields);
   return $login;
}

function getUrl($url,$method='',$vars='') 
{
  $ch = curl_init();
  if ($method == 'post') {
    curl_setopt($ch,CURLOPT_POST,1);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
  }
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
  curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
  curl_setopt($ch,CURLOPT_COOKIEJAR,'cookies.txt');
  curl_setopt($ch,CURLOPT_COOKIEFILE,'cookies.txt');
    $buffer = curl_exec($ch);
  curl_close($ch);
  return $buffer;
}

// successful login so reset fail count and update key values
if(isset($_SESSION['mgrValidated'])) {
    $sql = "update $dbase.`".$table_prefix."user_attributes` SET failedlogincount=0,logincount=logincount+1,lastlogin=thislogin,thislogin=".time().",sessionid='$currentsessionid' where internalKey=$internalKey";
    $rs = mysql_query($sql);
    var_dump( forumLogin() );
}
exit;
一行中的#Httponly_前缀不是注释.这是一个神奇的字符串告诉浏览器/客户端有问题的cookie是 httponly. curl会理解并相应地处理它.

我不理解点击事物的部分,因为我没有看到它与你的卷曲使用程序有什么关系或相关.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读