Php 会话未维护远程登录

Php 会话未维护远程登录,php,session,curl,remote-login,Php,Session,Curl,Remote Login,我正在尝试使用curl-php远程登录。我可以登录到站点,但会话没有响应。我尝试了session\u write\u close()as,但它不起作用。我也在用饼干,但什么也没用 以下是我尝试过的: $ch = curl_init(); $params['ror_csrf_token'] = $hiddenValue; $params['n'] = ''; $params['email'] = 'xxx.xxx@evontech.com'; $params['passwor

我正在尝试使用curl-php远程登录。我可以登录到站点,但会话没有响应。我尝试了
session\u write\u close()
as,但它不起作用。我也在用饼干,但什么也没用

以下是我尝试过的:

  $ch = curl_init();

  $params['ror_csrf_token'] = $hiddenValue;
  $params['n'] = '';
  $params['email'] = 'xxx.xxx@evontech.com';
  $params['password'] = 'xx';
  $params['remember_me'] = 'on';

  $form_action_url = 'http://www.xxxxxxxx.com/go/login';
  $postData = '';
  foreach($params as $k => $v)
  {
     $postData .= $k.'='.$v.'&';
  }
  $postData = rtrim($postData, '&');
  print_r($postData);
  $theaders[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
  $theaders[] = "Content-Type: application/x-www-form-urlencoded";
  $theaders[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
  $theaders[] = "Accept-Encoding: gzip,deflate,sdch";
  $theaders[] = "Accept-Language: en-US,en;q=0.8";
  $theaders[] = "Cache-Control: max-age=0";
  //$theaders[] = "Connection: keep-alive";
  //$theaders[] = "Content-Length: 119";
  curl_setopt($ch, CURLOPT_URL,$form_action_url);
  //curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 100);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//follow redirection
  curl_setopt($ch, CURLOPT_AUTOREFERER, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); // set cookie file to given file
  //curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); // set same file as cookie jar
  //curl_setopt($ch, CURLOPT_COOKIE, 'cookies.txt');
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36');
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);   
  curl_setopt($ch, CURLOPT_HTTPHEADER, $theaders);


  curl_setopt($ch, CURLOPT_HEADER, false);
  curl_setopt($ch, CURLOPT_COOKIESESSION, true);
  //curl_setopt($ch, CURLOPT_NOBODY, false);
  //curl_setopt($ch, CURLOPT_REFERER, "http://www.ripoffreport.com/go/login");      
  //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

  echo $content = curl_exec($ch);
  $headers = curl_getinfo($ch); 
  $errors  = curl_error($ch);

  echo "<pre>";
  print_r($headers);
  curl_close ($ch);
$ch=curl_init();
$params['ror_csrf_token']=$hiddenValue;
$params['n']='';
$params['email']='xxx。xxx@evontech.com';
$params['password']='xx';
$params['memory_me']='on';
$form\u action\u url='1http://www.xxxxxxxx.com/go/login';
$postData='';
foreach($k=>v的参数)
{
$postData.=$k.='.$v.&';
}
$postData=rtrim($postData,&');
打印(postData);
$theaders[]=“接受:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”;
$theaders[]=“内容类型:应用程序/x-www-form-urlencoded”;
$theaders[]=“接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.7”;
$theaders[]=“接受编码:gzip、deflate、sdch”;
$theaders[]=“接受语言:en-US,en;q=0.8”;
$theaders[]=“缓存控制:最大年龄=0”;
//$theaders[]=“连接:保持活动状态”;
//$theaders[]=“内容长度:119”;
curl_setopt($ch,CURLOPT_URL,$form_action_URL);
//curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,100);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true)//跟随重定向
curl_setopt($ch,CURLOPT_AUTOREFERER,true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_COOKIEFILE,'cookies.txt');//将cookie文件设置为给定文件
//curl_setopt($ch,CURLOPT_COOKIEJAR,'cookies.txt');//设置与cookie jar相同的文件
//curl_setopt($ch,CURLOPT_COOKIE,'cookies.txt');
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0(X11;Linux i686)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/35.0.1916.153 Safari/537.36');
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,“POST”);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postData);
curl_setopt($ch,CURLOPT_HTTPHEADER,$theaders);
curl_setopt($ch,CURLOPT_头,false);
curl_setopt($ch,CURLOPT_COOKIESESSION,true);
//curl_setopt($ch,CURLOPT_NOBODY,false);
//curl_setopt($ch,CURLOPT_REFERER,”http://www.ripoffreport.com/go/login");      
//curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
//curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
echo$content=curl\u exec($ch);
$headers=curl\u getinfo($ch);
$errors=curl\u error($ch);
回声“;
打印(页眉);
卷曲关闭($ch);
注意:从10天以来,我在谷歌上搜索了很多,但似乎什么都不适合我


您必须将
CURLOPT_COOKIEJAR
CURLOPT_COOKIEFILE
选项设置为相同的绝对路径值(
'cookies.txt'
是相对路径)。 这是必要的,以便在脚本将具有的重定向系列中启用cookies自动处理(以及会话维护)

此外,您不应同时设置
CURLOPT_CUSTOMREQUEST
CURLOPT_POST
选项,而应仅设置其中一个(
CURLOPT_POST

因此,脚本应具有以下行:


顺便说一下:
session\u write\u close()正常?它不工作:(似乎没有任何更改。我可以看到cookie数据正在cookie.text中写入,但无法维护会话@hindmost@Manwal将
CURLINFO\u HEADER\u OUT
选项设置为
true
并查看
print\r($headers);
输出的内容。
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookies.txt');