获取使用基于表单的身份验证的页面的页面内容

时间:2013-08-19 16:22:42

标签: php plugins

最近,我已成功使用JSON插件获取维基页面的内容:

        $username = '****';
        $password = '****';
        $sc = new Serverclient_helper();
        $login = "http://********/api.php?action=login&lgname=$username&lgpassword=$password";
        $content = $sc->getContent($login,array(),false);   

        $host = "http://******/api.php?action=parse&format=json&page=Main";
        $content = $sc->getContent($host);
        $content = json_decode($content);

今天我尝试过这样做,但是另一个页面也需要登录,比如维基页面。它没有成功。我认为这是因为这个页面没有维基页面的结构。 Here something to wiki pages.我已经阅读了很多内容,并且我了解到我的页面正在使用基于表单的身份验证。但我仍然想知道如何访问页面的整个内容。

我也使用了curl_setopt,但它没有帮助我获取内容。只有登录页面被显示,但我没有登录。

这是我的代码:

$username='*****';
$password='*****';
$location='http://*****/startphp';


$mycurl = curl_init ();
curl_setopt($mycurl,CURLOPT_URL,$location);
curl_setopt($mycurl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($mycurl,CURLOPT_USERPWD,"$username:$password");
curl_setopt($mycurl, CURLOPT_TIMEOUT, 10);

$result = curl_exec ($mycurl); 
var_dump($result);

提前致谢!

1 个答案:

答案 0 :(得分:0)

CURLOPT_USERPWD仅适用于基本HTTP身份验证。

您需要使用与服务匹配的POST命令。

$data = array('username' => 'User', 'password' => 'Pass');

curl_setopt($ch, CURLOPT_POST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

您还需要考虑存储网站提供的SESSION

使用CURLOPT_COOKIE CURLOPT_COOKIEFILE CURLOPT_COOKIEJAR个选项