Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建php后端以使用验证码填充表单_Php_Curl - Fatal编程技术网

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

创建php后端以使用验证码填充表单,php,curl,Php,Curl,我正在为一个应用程序编写后端,该应用程序允许我所在大学的学生登录到他们的ID并查看信息。但是我无法让验证码生效。。当我尝试使用cURL脚本访问验证码url时,它会返回一个随机字符串(每次都是一样的)。。我该怎么办 显示验证码并允许学生登录 我正在访问大学的网站这里是我的代码 <?php $url = 'https://academics.vit.ac.in/student/captcha.asp'; $ch = curl_init(); curl_setopt($ch,CURLOPT_

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

我正在访问大学的网站这里是我的代码

<?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;
?>

你知道我怎样才能得到这个验证码吗?

你在用什么web服务来获得验证码吗?查看他们的文档,在没有任何更多信息的情况下,我猜随机字符串可能就是图像本身,您需要将其保存到文件中以供服务器使用,或者通过设置文件类型的头并打印内容将其直接发送到客户机

编辑: 因此,是的,它正在返回文件本身,如果您想自己提供,请尝试以下操作:

...
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" />


让curl完全复制您的浏览器在点击相同url时所做的操作。在用户访问之间保留该请求的状态,以便当用户将其内容提交到服务器时,服务器可以将原始请求/cookie重新创建到验证码服务器,等等等等。基本上建立了一个完整的代理。谢谢。。它现在起作用了:)。。但是如果我使用secong选项,我如何将验证码附带的cookie存储到一个文件中,然后通过curl发送回来。。当我向页面发出post请求时,它们将存储在浏览器cookies中。或者还有其他方法吗?哦,如果你必须抓取饼干,那么你只需要抓取图像,然后按照你现在的方式为自己服务。
<img src="https://academics.vit.ac.in/student/captcha.asp" />