2010-07-26 23 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