Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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登录到HTTPS页面_Php_Ssl_Curl_Https - Fatal编程技术网

Php 使用Curl登录到HTTPS页面

Php 使用Curl登录到HTTPS页面,php,ssl,curl,https,Php,Ssl,Curl,Https,我正在尝试使用php curl函数登录到https网页“” 但是我已经不知道如何将值发布到这个特定页面(用户名、密码)并“按”登录 $postfields = array('ctl00_MasterContentContentPane_Signin1_userID_txt'=>'email@address.com', 'ctl00_MasterContentContentPane_Signin1_password_txt'=>'somepassword123

我正在尝试使用php curl函数登录到https网页“”

但是我已经不知道如何将值发布到这个特定页面(用户名、密码)并“按”登录

$postfields = array('ctl00_MasterContentContentPane_Signin1_userID_txt'=>'email@address.com', 
            'ctl00_MasterContentContentPane_Signin1_password_txt'=>'somepassword123');

/* LOG IN TO TalkTalk ACCOUNT */
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://portal.opalonline.co.uk/Home/PortalCore/SignIn/SignIn.aspx?");   
curl_setopt($ch, CURLOPT_HEADER, false);
// curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  
// curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
// curl_setopt($ch, CURLOPT_COOKIE, COOKIE_FILE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_POST, 1);  
var_dump($ch);
$string_exec = curl_exec($ch);
var_dump($string_exec);

我甚至无法显示带有var_dump的页面:(.非常感谢您的想法/建议

首先,我不认为您可以做这样的“数组”操作,因为这将使PHP/CURL创建多部分formpost,而这不是这样的表单。请以“name=value&name2=value2”样式提供数据

然后,确保提交表单中的所有隐藏字段。其中至少有四个字段。其中一个字段由HTML设置为需要提取和设置的长值,另外还有一些javascript魔术可以设置其他字段。您可能需要使用浏览器的网络工具来窥探浏览器的具体功能目的是能够完美地模仿这一点

登录页面设置cookies,您可能需要在提交登录表单时传递这些cookies。因此,您需要首先获取登录表单页面以获取cookies,然后提交登录帖子


如果这还不够,请继续比较浏览器的请求和您的请求发送的内容,并确保它们尽可能相似。

首先,我不认为您可以这样做“数组”的事情,因为这将使PHP/CURL创建多部分formpost,而这不是一个简单的方法表单。以“name=value&name2=value2”样式提供数据

然后,确保提交表单中的所有隐藏字段。其中至少有四个字段。其中一个字段由HTML设置为需要提取和设置的长值,另外还有一些javascript魔术可以设置其他字段。您可能需要使用浏览器的网络工具来窥探浏览器的具体功能目的是能够完美地模仿这一点

登录页面设置cookies,您可能需要在提交登录表单时传递这些cookies。因此,您需要首先获取登录表单页面以获取cookies,然后提交登录帖子


如果这还不够,那么继续将浏览器的请求与您的请求发送的内容进行比较,并确保它们尽可能相似。

在google chrome中打开网站,打开控制台,转到“网络”选项卡


登录到网站。你应该在“网络”选项卡中看到请求。右键单击它,选择“复制为卷曲”。它将给你一个命令行,这将帮助你了解你需要什么。

在google chrome中打开网站,打开控制台,转到“网络”选项卡


登录到网站。你应该在“网络”选项卡中看到请求。右键单击它,选择“复制为卷曲”。它会给你一个命令行,帮助你了解你需要什么。

让我们保持文明。如果你否决投票,Maciej Cygan会很感激你的评论。@JeremyStein谢谢你,事实上,如果有人提供他否决的原因,我会很感激。让我们保持文明。Maciej Cygan如果你否决投票,会很感激你的评论。@J埃雷迈斯坦:谢谢你,如果有人能提供一个他为什么投反对票的理由,我将不胜感激