卷曲登录Joomla 1.6 / 3.0

时间:2013-03-23 03:53:42

标签: php curl joomla

我试图在PHP中通过curl登录Joomla 1.6 / 3.0但不成功。

我从joomla 1.5尝试了方法

$uname = "id";
$upswd = "pswd";
$url = "http://www.somewebpage.com";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt($ch, CURLOPT_COOKIEJAR, './cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, './cookie.txt');
curl_setopt($ch, CURLOPT_HEADER, FALSE );
$ret = curl_exec($ch);
if (!preg_match('/name="([a-zA-z0-9]{32})"/', $ret, $spoof)) {
    preg_match("/name='([a-zA-z0-9]{32})'/", $ret, $spoof);
}

// POST fields
$postfields = array();
$postfields['username'] = urlencode($uname);
$postfields['passwd'] = urlencode($upswd);
$postfields['lang'] = '';
$postfields['option'] = 'com_login';
$postfields['task'] = 'login';
$postfields[$spoof[1]] = '1';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
$ret = curl_exec($ch);

但它被禁止显示

1 个答案:

答案 0 :(得分:1)

的Joomla!通常从网络浏览器发送一个令牌,以确保表格是从浏览器发布的(而不是从外面的某个地方发布,就像你想要的那样)。

如果没有从浏览器发布,则会出现“最近的请求被拒绝,因为它包含无效的安全令牌”之类的错误。请刷新页面然后重试。'

您可能希望查找支持您尝试执行的操作的autentication插件。例如Autologin plugin