php snoopy cookie,php的模拟登录还是一直习惯snoopy,本文描述有验证码的cookies的保存...

网上之前有代码,最开始的时候,也是能用的,不过后来一个系统登录的cookies有两个,是一个数组,于是网上的代码不能用了

下面贴上改造过的

登录Html页面

require './libs/Snoopy.class.php';

$snoopy=new Snoopy();

$snoopy->fetch("http://www.***.com/yanzhengma.php?do=seccode&i=".time());

preg_match('/iCMS_admincp_seccode=([^;]+);/', implode('',$snoopy->headers),$sessionid);

$jsessionid=$sessionid[1];

$imgcode=base64_encode($snoopy->results);

$smarty->assign('imgcode',$imgcode);

$smarty->assign('jsessionid',$jsessionid);

$smarty->display('zhaowozi_login.html');

这个页面主要负责显示登录框,便于用户录入信息。

下面是处理登录并保存cookie的页面

//登录验证

require './libs/Snoopy.class.php';

$snoopy=new Snoopy();

$submit['username']=$_POST['username'];

$submit['password']=$_POST['password'];

$submit['code']=$_POST['verify_code'];

$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.2; MAXTHON 2.0)";

$add_url="http://www.zhaowozi.com/登录提交页面";

$referer="http://www.zhaowozi.com";

$snoopy->referer=$referer;

$snoopy->cookies['iCMS_admincp_seccode']=$_POST['sessionid'];

if ($snoopy->submit($add_url,$submit))

{

//var_dump(json_decode($snoopy->results));

$res=json_decode($snoopy->results);

if($res->code==true)

{

//登陆成功,获取发布页

//var_dump($snoopy->headers);

//这个cookies是个数组

$snoopy->setcookies();

$cookies = $snoopy->cookies;

$snoopy->fetch("http://www.zhaowozi.com/后台页面");

//var_dump($snoopy->results);

$snoopy->setcookies();

$cookies = $snoopy->cookies;

//cookies是数组,因此要序列化

file_put_contents('./tmp.tmp',serialize($cookies));

exit('登陆成功,点击开始发布内容');

}

else

{

exit('登录失败');

}

}

else

{

exit('登陆失败,'.$snoopy->error);

}

下次再使用cookie读出来,反序列化即可

$cookies=unserialize(file_get_contents('./tmp.tmp'));

$snoopy->cookies=$cookies;

------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值