创建php后端以使用验证码填充表单

时间:2014-05-07 18:39:53

标签: php curl

我正在编写一个应用程序的后端,该应用程序允许我大学的学生登录他们的ID并查看信息。但我无法让验证码工作..当我尝试使用cURL脚本访问验证码网址时,它返回一个随机字符串(每次都相同)..我该怎么办 显示验证码并允许学生登录?

我只是访问大学的网站,这是我的代码

<?php
$url   = 'https://academics.vit.ac.in/student/captcha.asp';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
$open = curl_exec($ch);
$er = curl_errno($ch);
echo $er;
?>

我得到的标题输出是

HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Type: image/bmp Expires: Thu, 08            May 2014 14:00:31 GMT Server: Microsoft-IIS/7.0 Content-Disposition: inline; filename=captcha.bmp         Set-Cookie: ASPSESSIONIDCAWSBBSA=LNEPDIEBDCJINKGOAHOGLFCE; secure; path=/ X-Powered-By: ASP.NET Date:    Thu, 08 May 2014 14:01:30 GMT Connection: close BM" >(‚äßþÿ…0    

BM" >(‚äßþÿ…0      // this is the  output content .. the content type is already set to image/bmp 

任何想法如何才能获得此验证码?

1 个答案:

答案 0 :(得分:0)

您是否正在使用某些网络服务进行验证码?检查他们的文档,没有任何更多的信息我可以猜测随机字符串可能是您需要保存到文件服务器或通过设置文件类型的标头和打印内容直接发送到客户端的图像本身。

修改 所以,是的,它正在返回文件本身,如果你想自己服务,请尝试这样的事情:

...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
header("Content-type: image/bmp");
echo $content;

但是,你确定这是你想做的吗?你可以直接使用你的html中的url来提供图像:

<img src="https://academics.vit.ac.in/student/captcha.asp" />