PHP CURL模拟登录问题求救,欢迎围观,即使不会解答也一定会有收获
$post_fields['zjh']=$this->username;<br />
$post_fields['mm']=$this->password;<br />
<br />
$ch = curl_init($this->login_url);<br />
curl_setopt($ch, CURLOPT_HEADER, 0);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt($ch, CURLOPT_POST, 1);<br />
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);<br />
curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie_file);<br />
$str=curl_exec($ch);<br />
curl_close($ch);
这是一个类中的代码片断,作用是模拟登录,但发现一个问题,那就如果提交的密码以@开头,那CURLOPT_POSTFIELDS部分就认为提交了一个文件,这样导致登录失败。如何解决这个问题?
CURL的说明在 http://cn2.php.net/curl_setopt
如果你不会解答,没关系,想一想从这里是不是得到了一个启发?为了防止自己的网站被CURL登录抓取,可以想办法弄个以@开头的必需提交的表单项,这样我这种模拟登录就失效了。。。
谁会解答啊。。谢谢
------解决方案--------------------本帖最后由 xuzuning 于 2013-01-25 09:26:17 编辑
历史会说明一切
php-curl封装[避免上传文件二义性Bug]
------解决方案--------------------用httpclient.class.php这个类,试试
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn