Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/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 请登录网站_Php_Curl_Login - Fatal编程技术网

Php 请登录网站

Php 请登录网站,php,curl,login,Php,Curl,Login,这是我的问题: 我正在尝试获取一个首先需要登录的网站的内容。我想通过旋度来解决这个问题。 首先,我连接到登录页面,而不是需要登录的页面。 我在我的cookie文件中得到了一些cookie,但是当我试图查看之前需要登录的页面内容时,我只会被重定向到(获取)登录页面的内容。 似乎解析我的登录cookie或任何东西失败了,所以网站不记得我登录过 以下是我到目前为止的php代码: <?php $loginUrl = 'https://www.****./login.html'; $login

这是我的问题:

我正在尝试获取一个首先需要登录的网站的内容。我想通过旋度来解决这个问题。 首先,我连接到登录页面,而不是需要登录的页面。 我在我的cookie文件中得到了一些cookie,但是当我试图查看之前需要登录的页面内容时,我只会被重定向到(获取)登录页面的内容。
似乎解析我的登录cookie或任何东西失败了,所以网站不记得我登录过

以下是我到目前为止的php代码:

<?php
$loginUrl = 'https://www.****./login.html';



$loginFields = array('j_username'=>'***', 'j_password'=>'**'); //login form field names and values
$remotePageUrl = 'https://www.***/myPage/index.html'; //url of the page I want the content  

$login = getUrl($loginUrl, 'post', $loginFields); //login to the site

echo $remotePage = getUrl($remotePageUrl); //get the remote page

function getUrl($url, $method='', $vars='') {
    $ch = curl_init();

if ($method == 'post') {
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
}
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'C:\\xampp\htdocs\***\cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'C:\\xampp\htdocs\****\cookies.txt');

 $buffer = curl_exec($ch);

 if (curl_error($ch)) echo curl_error($ch);

curl_close($ch);

return $buffer;
}

?>

有什么想法吗?现在在网上搜索了几个小时,但还没有找到解决方案。

谢谢

我没有找到任何解决办法。尽管如此,我还是手工完成了所有的工作,不再需要程序,不管怎样,谢谢你的评论:)

任何隐藏的输入字段呢?确保除了用户名和密码外,还传递了这些信息谢谢你的提示,我已经检查了网站,没有找到任何其他输入字段。使用我唯一的凭据名称和密码在页面上正常登录有效。您是否验证了实际上有值写入cookiejar?而且权限是正确的…?在cURL请求之后,我的cookies文本文件中有两个cookies。我真的不知道这个和cookiejar之间是否有区别?在其中一个cookie中有一个会话id等等。你说的许可是什么意思?我必须设置特殊权限吗,还是说不允许我在外部网站上登录?无论如何,谢谢你的评论:)