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

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

WBOY
WBOYOriginal
2016-06-13 12:55:04859Durchsuche

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这个类,试试
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn