Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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
如何使用cURL-PHP在网站中导航_Php_Curl - Fatal编程技术网

如何使用cURL-PHP在网站中导航

如何使用cURL-PHP在网站中导航,php,curl,Php,Curl,我需要在网站中导航,以便在web服务中发送数据 首先,我需要登录:http://192.168.1.1/event/users/sign_-in 然后,我将重定向另一个页面:http://192.168.1.1/event 最后,我需要转到另一个页面:http://192.168.1.1/event/management/attendee 在这个页面中,我需要通过方法POST发送数组中的一些数据 我张贴我的代码,但不工作 /* For login */ $userpwd = "root:root

我需要在网站中导航,以便在web服务中发送数据

首先,我需要登录:http://192.168.1.1/event/users/sign_-in 然后,我将重定向另一个页面:http://192.168.1.1/event 最后,我需要转到另一个页面:http://192.168.1.1/event/management/attendee 在这个页面中,我需要通过方法POST发送数组中的一些数据

我张贴我的代码,但不工作

/* For login */
$userpwd = "root:root";
$curl_rsc = curl_init();
curl_setopt($curl_rsc, CURLOPT_URL, $url_login);
curl_setopt($curl_rsc, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl_rsc, CURLOPT_HTTPAUTH, HTTP_AUTH_BASIC);
curl_setopt($curl_rsc, CURLOPT_USERPWD, $userpwd); //Here i have some doubts. Because if i change this variable always have a http_code = 200.
// or i need to send data in a array for login?
curl_setopt($curl_rsc, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($curl_rsc); // Get a http_code = 200

/* For go to the redirect page */
curl_setopt($curl_rsc, CURLOPT_URL, $url_next);
curl_setopt($curl_rsc, CURLOPT_FAILONERROR, TRUE);
curl_setopt($curl_rsc, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($curl_rsc); //Get a http_code = 200

/* For go to the target url when i want to send data */
curl_setopt($curl_rsc, CURLOPT_URL, $url_target);
curl_setopt($curl_rsc, CURLOPT_POST, TRUE);
curl_setopt($curl_rsc, CURLOPT_POSTFIELDS, $attendee); //Send the data in a array
curl_setopt($curl_rsc, CURLOPT_FAILONERROR, TRUE);
curl_setopt($curl_rsc, CURLOPT_TIMEOUT, 50);
curl_exec($curl_rsc); // Get a http_code = 500 Internal Server Error.
谁能告诉我我的错误是什么?谢谢:D

这里我有一些疑问。因为如果我改变这个变量,它总是有一个http_代码=200


您正在使用HTTP身份验证吗?如果不是的话,这是错误的做法。除此之外,您在最后一页上的脚本失败,因此您需要检查服务器错误日志以了解发生了什么;您的代码似乎没有任何问题。

嗯,Web服务没有一些身份验证。。。也许,当我进入网站时,我混淆了我查看的登录名。然而。。有相同的错误(500)。。如果我无法访问web服务中的日志,我可以在哪里查看错误?我所说的HTTP身份验证是指浏览器在您访问页面时显示的框,您必须在其中输入用户名和密码,如屏幕截图。如果情况并非如此,并且您必须通过页面本身登录,那么您需要将您的凭证作为
GET
POST
参数传递到登录页面,然后可能还需要跟踪cookies(我不确定curl是否会自动执行此操作)。如果您没有访问web服务的权限,则无法查看错误。您只需尝试将脚本的功能与浏览器访问页面时的功能相匹配,并希望它能够正常工作。是的,这就是我的情况。。是浏览器在我访问带有登录url的页面时显示的框。所以,我用额外的行更新代码。可以?是否?
CURLAUTH\u ANY
会更好,所以它只使用任何可用的身份验证方法。