3

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);

しかし、それはショー禁止です

4

1 に答える 1

1

ジュムラ!通常、Web ブラウザーからはトークンを送信して、フォームがブラウザーから投稿されたことを確認します (実行しようとしているように、外部のどこかからではありません)。

ブラウザから投稿されていない場合、「無効なセキュリティ トークンが含まれていたため、最新のリクエストは拒否されました。ページを更新して、もう一度お試しください。

あなたがしようとしていることをサポートする認証プラグインを探したいと思うかもしれません。たとえば、Autologin プラグイン

于 2013-03-23T08:37:47.953 に答える