Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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 CURL登录到远程网站_Php_Curl - Fatal编程技术网

使用PHP CURL登录到远程网站

使用PHP CURL登录到远程网站,php,curl,Php,Curl,我正在尝试使用CURL登录远程网站,但似乎无法使其正常工作 我尝试登录的页面是: 到目前为止,我已经尝试了以下方法: $username="username"; $password="password"; $url="https://vp1-voiceportal.megapath.com/Login/servlet/com.broadsoft.clients.oam.servlets.Login"; $cookie="cookie.txt"; $postdata = "Entered

我正在尝试使用CURL登录远程网站,但似乎无法使其正常工作

我尝试登录的页面是:

到目前为止,我已经尝试了以下方法:

$username="username"; 
$password="password"; 
$url="https://vp1-voiceportal.megapath.com/Login/servlet/com.broadsoft.clients.oam.servlets.Login"; 
$cookie="cookie.txt"; 

$postdata = "EnteredUserID=".$username."&password=".$password."&domain=&UserID=&rememberPass="; 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

echo $result;  
curl_close($ch);

编辑:指定的URL错误,应为:

https://vp1-voiceportal.megapath.com/servlet/com.broadsoft.clients.oam.servlets.Login
而不是:

https://vp1-voiceportal.megapath.com/Login/servlet/com.broadsoft.clients.oam.servlets.Login

看起来您需要遵循重定向并指定cookie文件(用于读取),请尝试:


这也是一种很好的做法,因此请指定cookie文件的绝对(且可写)路径。

我得到以下响应,这会将我重新路由到登录页面:302发现文档已移动。1。你是怎么得到你的cookie文件的?也许饼干过期了。2.结果如何?curl到底返回了什么?我可能丢失了有关cookie文件的某些信息,我应该如何获取它?谢谢,我已经做了您建议的更改,但仍然遇到相同的问题。@jeffo:
cookie.txt
文件是空的吗?它存在吗?@jeffo:而且,在我看来,URL是错误的。。。不应该是
https://vp1-voiceportal.megapath.com/servlet/com.broadsoft.clients.oam.servlets.Login
?我尝试了您建议的URL,但无效。cookie文件存在并且不是空的。@Jeff:URL显然是错误的,但是如果没有凭据或没有看到响应,我就无法为您提供更多帮助,抱歉。
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

echo $result;  

curl_close($ch);