卷曲的登录会话 [英] cURL login session

查看:161
本文介绍了卷曲的登录会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用一个网站作为一个登录的用户。下面的code做这项工作很好,但它有充分的脚本调用时登录。我想登录只有一次,从那时起使用会话cookie。

  $ C = curl_init();
$ URL =HTTP://www.site.com/login/';
$opt=array(CURLOPT_URL=>$url,CURLOPT_COOKIEJAR=>'cookie.txt',CURLOPT_POST=>1,CURLOPT_RETURNTRANSFER=>1,CURLOPT_POSTFIELDS=>'username=usr123&password=pass&submit='); //提交= 1作品太
curl_setopt_array($ C,$选择);
curl_exec($ C);
$ URL =HTTP://www.site.com/next';
$ OPT2 =阵列(CURLOPT_URL => $网址,CURLOPT_RETURNTRANSFER => 1);
curl_setopt_array($ C,$ OPT2);
$ OUT = curl_exec($ C);
回声$出;
curl_close($ C);

我尝试使用会话,但由于某种原因,用户登录不起作用。

  $ C = curl_init();
$ AG ='的Mozilla / 5.0(视窗; U; Windows NT的5.1;如; RV:1.9.0.7)的Gecko / 2009021910火狐/ 3.0.7(.NET CLR 3.5.30729);
如果(!file_exists('cookie.txt')){
  $ URL =HTTP://www.site.com/login/';
  $选择=阵列(CURLOPT_URL => $网址,
  CURLOPT_COOKIEJAR =>'cookie.txt',
  CURLOPT_COOKIEFILE =>'cookie.txt',
  CURLOPT_POST =大于0,
  CURLOPT_RETURNTRANSFER =大于1,
  CURLOPT_FOLLOWLOCATION =大于1,
  CURLOPT_USERPWD =>'usr123:传球,
  CURLOPT_SSL_VERIFYPEER =>假的,
  CURLOPT_SSL_VERIFYHOST =大于0,
  CURLOPT_USERAGENT => $ AG);
  curl_setopt_array($ C,$选择);
  curl_exec($ C);
}$ URL =HTTP://www.site.com/next/';
$ OPT2 =阵列(CURLOPT_URL => $网址,
CURLOPT_COOKIEJAR =>'cookie.txt',
CURLOPT_COOKIEFILE =>'cookie.txt',
CURLOPT_RETURNTRANSFER =大于1,
CURLOPT_FOLLOWLOCATION =大于1,
CURLOPT_SSL_VERIFYPEER =>假的,
CURLOPT_SSL_VERIFYHOST =大于2,
CURLOPT_USERAGENT => $ AG);
curl_setopt_array($ C,$ OPT2);
$ OUT = curl_exec($ C);
回声$出;
curl_close($ C);


解决方案

解决方案:

 如果(!file_exists('cookie.txt')){
  $ URL =HTTP://www.site.com/login/';  $选择=阵列(CURLOPT_URL => $网址,CURLOPT_COOKIEJAR =>'cookie.txt',CURLOPT_POST =大于1,
       CURLOPT_RETURNTRANSFER=>1,CURLOPT_POSTFIELDS=>'username=usr123&password=pass&submit=');
  curl_setopt_array($ C,$选择);
  curl_exec($ C);
}
$ URL =HTTP://www.site.com/next';
$opt2=array(CURLOPT_URL=>$url,CURLOPT_COOKIEJAR=>'cookie.txt',CURLOPT_COOKIEFILE=>'cookie.txt',
      CURLOPT_POST =大于0,CURLOPT_RETURNTRANSFER =大于1,CURLOPT_USERPWD = GT;'usr123:通');
curl_setopt_array($ C,$ OPT2);
$输出= curl_exec($ C);
回声$输出;

I need to use a website as a logged user. The code below does the job well, however it has to log in every time the script is called. I'd like to log in just once and from then on use session cookies.

$c=curl_init();
$url='http://www.site.com/login/';              
$opt=array(CURLOPT_URL=>$url,CURLOPT_COOKIEJAR=>'cookie.txt',CURLOPT_POST=>1,CURLOPT_RETURNTRANSFER=>1,CURLOPT_POSTFIELDS=>'username=usr123&password=pass&submit='); //submit=1 works too
curl_setopt_array($c,$opt);
curl_exec($c);
$url='http://www.site.com/next';
$opt2=array(CURLOPT_URL=>$url,CURLOPT_RETURNTRANSFER=>1);
curl_setopt_array($c,$opt2);
$out=curl_exec($c);
echo $out;
curl_close($c);

I tried using session, but for some reason the user login doesn't work.

$c=curl_init();
$ag='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)';
if(!file_exists('cookie.txt')){
  $url='http://www.site.com/login/';
  $opt=array(CURLOPT_URL=>$url,
  CURLOPT_COOKIEJAR=>'cookie.txt',
  CURLOPT_COOKIEFILE=>'cookie.txt',
  CURLOPT_POST=>0,
  CURLOPT_RETURNTRANSFER=>1,
  CURLOPT_FOLLOWLOCATION=>1,
  CURLOPT_USERPWD=>'usr123:pass,
  CURLOPT_SSL_VERIFYPEER=>false,
  CURLOPT_SSL_VERIFYHOST=>0,
  CURLOPT_USERAGENT=>$ag);
  curl_setopt_array($c,$opt);
  curl_exec($c);
}  

$url='http://www.site.com/next/';
$opt2=array(CURLOPT_URL=>$url,
CURLOPT_COOKIEJAR=>'cookie.txt',
CURLOPT_COOKIEFILE=>'cookie.txt',
CURLOPT_RETURNTRANSFER=>1,
CURLOPT_FOLLOWLOCATION=>1,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_SSL_VERIFYHOST=>2,
CURLOPT_USERAGENT=>$ag);
curl_setopt_array($c,$opt2);
$out=curl_exec($c);
echo $out;
curl_close($c);

解决方案

Solution:

if(!file_exists('cookie.txt')){
  $url='http://www.site.com/login/';                         

  $opt=array(CURLOPT_URL=>$url,CURLOPT_COOKIEJAR=>'cookie.txt',CURLOPT_POST=>1,
       CURLOPT_RETURNTRANSFER=>1,CURLOPT_POSTFIELDS=>'username=usr123&password=pass&submit=');
  curl_setopt_array($c,$opt);
  curl_exec($c);
}
$url='http://www.site.com/next';
$opt2=array(CURLOPT_URL=>$url,CURLOPT_COOKIEJAR=>'cookie.txt',CURLOPT_COOKIEFILE=>'cookie.txt',
      CURLOPT_POST=>0,CURLOPT_RETURNTRANSFER=>1,CURLOPT_USERPWD=>'usr123:pass');
curl_setopt_array($c,$opt2);
$output=curl_exec($c);
echo $output;

这篇关于卷曲的登录会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆