Maison >développement back-end >tutoriel php > PHP CURL模拟登录有关问题,欢迎围观,即使不会解答也一定会有收获

PHP CURL模拟登录有关问题,欢迎围观,即使不会解答也一定会有收获

WBOY
WBOYoriginal
2016-06-13 12:55:04859parcourir

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