2010-07-26 31 views
0

我越来越 PHP时注意事项:未定义指数:password_clear 当我使用其他任何插件,然后Joomla的登录插件登录用户。 在joomla数据库中,我们没有存储任何用户的数据。所以我有一个自定义插件,它将通过Web服务调用来检查用户的凭证。取得PHP公告:未定义指数:password_clear中使用的Joomla其他插件的Joomla然后登录

凭据检查良好,joomla确实显示用户已经登录,其余的东西也正常工作。但是我的日志充满了上述声明!

任何人都面临这样的问题或任何提示或方向对我?

感谢提前的帮助, Tanmay

回答

0

你可以做两件事情:

  1. 编辑php.ini并设定使用error_reporting到E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
  2. 编辑插件代码和测试password_clear存在在使用之前。

下面是一个例子,如何做的测试部分:

$clear = $_POST['password_clear']; /* old */ 
$clear = empty($_POST['password_clear']) ? '' : $_POST['password_clear']; /* fixed */ 

或:

if ($_POST['password_clear'] == 'x') {...} /* old */ 
if (! empty($_POST['password_clear']) && $_POST['password_clear'] == 'x') {...} /* fixed */ 
+0

的password_clear是被在/plugins/user/joomla.php Joomla!核心代码中使用,作为其核心文件,我相信一切都应该被照顾的。但是,因为我要为登录准备一个插件,所以我不想触及核心文件,因为稍后我会将此插件部署到许多其他joomla实例。 – jtanmay 2010-07-26 18:48:04

+0

所以减少你的error_reporting,就像我在1中建议的一样。 – jmz 2010-07-27 10:34:59

0

@JMZ,您的回复也给了我寻找到的东西的一些想法,和我得到了解决方案。 我不是用户,如果我所做的更改是有效的,但它适用于我。 我基本上抓住了gmail.php登录插件作为创建我自己的插件的基础。

现在,我不得不添加 $ response-> password_clear =“”;到响应对象,至少它有一个引用,并不会给我一个未定义索引的通知。

希望有人会得到帮助。或者如果有人对此有更好的理解,请让我知道。

感谢, Tanmay

+0

隐藏或掩盖这个错误是一回事,但我不禁觉得,如果这个数组索引在核心中未被检查使用,那么它可能是其他东西不可或缺的一部分(如你在上面的评论中提示) - 那么,这实际用于什么? – MrWhite 2010-07-26 19:38:18

+0

@ w3d:似乎password_clear在joomla处理的用户对象中使用。这似乎正在执行级联功能,还有一些还需要清除密码。一个确切的地方,我发现joomla正在使用它在重置密码 – jtanmay 2010-07-26 21:12:20