网站 126 http://www.126z.net/
账号zardblend
面膜zardblend
1.php 代码 
<?php 
header ("content-Type: text/html; charset=utf-8"); 
$cookie_file = './cookie.txt'; 
//这是验证码地址 
$verify_code_url = 'http://www.126z.net/js/yz.php'; 
$curl = curl_init (); 
curl_setopt ($curl,CURLOPT_URL,$verify_code_url ); 
curl_setopt ($curl,CURLOPT_COOKIEJAR,$cookie_file ); 
curl_setopt ($curl, CURLOPT_HEADER,false ); 
curl_setopt ($curl,CURLOPT_RETURNTRANSFER,true ); 
$img = curl_exec ($curl ); 
curl_close ($curl ); 
//保存验证码 
file_put_contents ("verifyCode.jpg",$img ); 
echo<<<HTML 
<form action="2.php" method="post"> 
<p>帐号<input type="text" name="name"></p> 
<p>密码<input type="password" name="password"></p> <p>验证<input type="text" name="var"><img src="verifyCode.jpg"/></p> 
<p><input name="submit" type="submit" value="登录"></p> 
</form> 
HTML; 
?> 
2.php 代码 <?php 
if ($_POST['submit']){ 
print_r ($_POST ); 
//POST 登录地址 
$login_url='http://www.126z.net/user/join.php'; 
//POST 参数 
$str_data="userid={$_POST['name']}&pwd={$_POST['password']}&vdcode={$_POST['var']}"; 
$cookie_file = './cookie.txt'; 
$ch=curl_init (); 
curl_setopt ($ch,CURLOPT_URL,$login_url ); 
curl_setopt ($ch,CURLOPT_HEADER,true ); 
curl_setopt ($ch,CURLOPT_TIMEOUT,5 ); 
curl_setopt ($ch,CURLOPT_POST,true ); 
curl_setopt ($ch,CURLOPT_POSTFIELDS,$str_data ); 
//curl_setopt ($ch,CURLOPT_HTTPHEADER,$header ); 
curl_setopt ($ch,CURLOPT_COOKIEFILE,$cookie_file ); 
//curl_setopt ($ch,CURLOPT_PROXY,"202.194.101.150:80"); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER,false ); 
curl_exec ($ch ); 
}
是可以暂时登录的
但是二次访问就得重新输入验证码 
如何根据$cookie_file = './cookie.txt';直径访问登录页面呢  不说长时间访问,可以在一定时间内直径访问呢?按原理是可以的啊
自己写的3.php 代码 行不通 问题在哪里呢  请高手指定万分感谢
<?php 
$login_url='http://www.126z.net/user/'; 
//POST 参数 
$ch=curl_init(); 
$cookie_file = dirname(__FILE__).'/cookie.txt';
curl_setopt ($ch,CURLOPT_URL,$login_url); 
curl_setopt ($ch,CURLOPT_HEADER,true ); 
curl_setopt ($ch,CURLOPT_TIMEOUT,5 ); 
curl_setopt ($ch,CURLOPT_FOLLOWLOCATION, 1);      
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file);  //之前验证过的cookie.txt直径访问登录页面
curl_setopt($ch, CURLOPT_RETURNTRANSFER,false ); 
curl_exec ($ch ); 

解决方案 »

  1.   

    都要有 curl_setopt ($curl,CURLOPT_COOKIEJAR,$cookie_file ); 
    在 curl_setopt ($ch,CURLOPT_COOKIEFILE,$cookie_file );  之后
      

  2.   

    这样就从新生成了cookie之前登录过的就失效了啊
      

  3.   

    curl_setopt ($curl,CURLOPT_COOKIEJAR,$cookie_file ); 是保存服务端的 cookie 设置到文件
    curl_setopt ($ch,CURLOPT_COOKIEFILE,$cookie_file ); 是发送上次保存的 cookie 到服务端
    服务端可在任意页面中设置 cookie,由于目标网站不是你的,你不能预知他在何时设置 cookie,所以总是需要随时准备接收 cookie如果 cookie 中存在过期标志,你可现行从保存的 cookie 中解析出来,并通过 CURLOPT_COOKIE 发送欺骗性数据