我想让一个脚本以Joomla面板中的管理员身份自动登录。我使用snoopy进行发布查询,并且它的工作正常,但Joomla的响应是安全令牌是错误的。我使用JSession::getFormToken()
来获取令牌,当我回显它时输出一个令牌(但可能不是正确的?)。joomla管理员通过php登录脚本错误的令牌
为什么我需要那个? 我只想制作一个脚本,授予我管理员权限到我的网站(该脚本将受密码保护)并自动创建文章,但问题是Joomla中的安全令牌(当前使用版本3.0),这是管理员登录所需的也用于发布文章。有没有更简单的方法来实现我的想法?
这里是我使用的脚本(BTW剧本的一篇文章中,我使用directPHP绑定在文章PHP):
<?php include "Snoopy.class.php";
$snoopy = new Snoopy;
$x=JSession::getFormToken();
$submit_url = "http://domain.com/administrator/index.php";
$submit_vars["username"] = "admin";
$submit_vars["passwd"] = "mypassword";
$submit_vars["option"] = "com_login";
$submit_vars["task"] = "login";
$submit_vars["return"] = "aW3kDXgucMhw";
$submit_vars[$x] = "1";
if($snoopy->submit($submit_url,$submit_vars))
{
while(list($key,$val) = each($snoopy->headers))
echo $key.": ".$val."<br>\n";
echo "<p>\n";
echo "<PRE>".htmlspecialchars($snoopy->results)."</PRE>\n";
}
else
echo "error fetching document: ".$snoopy->error."\n"; ?>
输出如下:
0: HTTP/1.1 200 OK
1: Date: Sat, 21 Dec 2013 15:02:53 GMT
2: Server: Apache
3: X-Powered-By: PHP/5.3.28
4: Connection: close
5: Content-Type: text/html
Die Anfrage wurdezurückgewiesen,da der Sicherheitstokenungültigist。 Aktualisieren Sie die Seite und versuchen Sie es erneut。 (意味着查询被拒绝,因为安全令牌错误)
那么,如何获得“正确的”安全令牌或者是否有更简单的方法来实现我的想法。 在此先感谢。
我也试过这种方法http://stackoverflow.com/questions/19564730/joomla-login-automatically-performed-by-external-php-script-which-is-called-thro?rq=1没有成功。 – user3125470