使用PHP curl登录内容

时间:2015-02-10 12:08:16

标签: php curl

我尝试使用以下代码获取已登录页面的内容。我尝试了不同的URL,但对于这个,我不知道为什么它会返回空白结果。我检查了错误日志,没有显示任何内容,我的卷曲已启用。

solved

2 个答案:

答案 0 :(得分:0)

您的卷曲设置中存在一些错误配置,首先:

$login = array(
    'username' => $username,
    'password' => $pass,
    'login' => 'login'
);

这应该只包含您要发布的字段,因此'login' => 'login'无关紧要。 字段名称必须与表单字段名称匹配,否则它们对服务器没有意义。您可以通过Firebug检查他们的名字或检查元素。

第二

$loginUrl = 'https://affiliate.styles.my/index.php/login/page/login';

由于您要发布form,因此您应该发布到action属性中设置的网址,您可以通过在FireFox中触发inspect元素找到这个,并检查form标记,然后查看网址action属性指向的内容。

试试这个:

<?php
$username = 'eldy';
$pass = '1234';

$login = array(
    'user' => $username,
    'password' => $pass
);

$loginUrl = 'https://affiliate.styles.my/index.php/login/dologin';
echo http_build_query($login);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($login));
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$content = curl_exec($ch);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, "https://affiliate.styles.my/index.php/dashboard/page/dashboard");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

$content2 = curl_exec($ch);

echo $content2;
curl_close($ch);
?>

答案 1 :(得分:0)

首先,您的登录帖子网址不正确。实际的表单帖子是

        $loginUrl = 'https://affiliate.styles.my/index.php/login/dologin';

除了表单帖子字段设置不正确外,密码字段应该通过&#39;不是密码&#39;

$login = array(
    'username' => $username,
    'pass' => $pass,
    'login' => 'login'
);

所以正确的方法是这样做 首先加载登录页面 发送帖子数据 然后获取仪表板页面 这是正确的代码

<?php

$username = 'eldy';
$pass = '1234';

$login = array(
    'username' => $username,
    'pass' => $pass,
    'login' => 'login'
);

            $loginUrl = 'https://affiliate.styles.my/index.php/login/dologin';


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://affiliate.styles.my/index.php/login");
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_exec($ch);



curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $login);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
//curl_setopt($ch, CURLOPT_VERBOSE, 1);

var_dump($ch);

$content = curl_exec($ch);
//echo $content;





curl_setopt($ch, CURLOPT_URL, "https://affiliate.styles.my/index.php/dashboard/page/dashboard");
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_VERBOSE, 1);

$content2 = curl_exec($ch);

echo $content2;
curl_close($ch);