要做外挂程序
需要curl模拟登陆
请知道的朋友帮忙一定帮帮忙
我写了个,只能实现把cookie,写入到本地的一个文件中,但是这样如果很多客户机连接服务器的话,那样就不能实现了
目的就是要大家在我外挂程序上运行代码,所以需要把cookie放在他的客户端上面去
请大家帮帮忙我写的代码,始终不能设置cookie。
要抓取的网站是 
<?php $login_url = "http://www.websanguo.com/game_login.php";// 登陆空间
$game_url = "http://www.websanguo.com/link.php?url=http://yx1.websanguo.com";
$game1_url = "http://yx1.websanguo.com"; //登陆游戏
//我要取得的信息地址是  http://yx1.websanguo.com/getMyValley.do class sanguo{
function getContent($url,$iscookie=false,$param=''){
global $cookie_file;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

if($param)
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
if($iscookie){
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
//curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch,CURLOPT_COOKIE,@$_COOKIE['sanguo']);
}
curl_setopt($ch, CURLOPT_NOBODY, 0);
$_source = curl_exec($ch);
curl_close($ch);
//获取cookie保存到本机
if($iscookie==false){ //获取cookie存入本机cookie
preg_match_all('|Set-Cookie: (.*);|U', $_source, $results); 
$cookies = implode('&', $results[1]);
setcookie("sanguo",$cookies,time()+3600*24);
curl_setopt($ch,CURLOPT_COOKIE,$cookies);

}
return $_source;
}
//登陆
function login($url,$pst){
global $game_url;
$this->getContent($url,false,$pst);
$_source = $this->getContent($game_url,$iscookie=true);
preg_match('~<iframe id="url_mainframe" frameborder="0" scrolling="yes" name="main" src="(.*)" style="height: 100%; visibility: inherit; width: 100%; z-index: 1;overflow: visible;"></iframe>~',$_source,$m);
$gameurl = str_replace("&amp;","&",urldecode($m[1]));
$_source = $this->getContent($gameurl,$iscookie=false);
}
//取得个人账户信息
function getAccount($url){
$_source = $this->getContent($url);
preg_match_all('~{"jaGoods"(.*)}~',$_source,$temp);
$json = trim($temp[0]);
// return $json;
  print_r($_source);
}

function test(){
echo   "ddd";
}
}
$sanguo = new sanguo();
$sanguo->login($login_url,$postfield);//){
$sanguo->getAccount('http://yx1.websanguo.com/getMyValley.do'); //请帮忙
?>
帮忙看看 吧,要不就被解雇了

解决方案 »

  1.   

    不要把cookie写来放到服务器的一个文件中,那样会有问题的
      

  2.   

    你可以把不同的客户端的cookie信息存储到不同的cookie文件中,在发送时也针对不同的客户端发送不同的cookie。就是这个变量,在每次有客户端请求你的脚本时,$cookie_file的值都是变化的,文件名可以连上用户id等信息,比如cookie_id_usr1,cookie_id_usr2...每次它的文件名都不同,就不会发送相同的cookie信息或互相覆盖了。