2012-05-25 91 views
1

我在我能一個foreach()循環中使用的陣列,以從一個頁面傳遞到另一個使用在發送頁的鏈接:傳遞數組變量從一個頁面到另一個在PHP和Joomla

$annoncenumber = $book[7]; 
<a href="index.php?annoncenumber=' . $annoncenumber . '&option=com_aicontactsafe&view=message&layout=message&pf=4&redirect_on_success="> 

並在接收者頁面中: $ annoncenumber = $ _GET ['annoncenumber'];

這工作正常,但由於鏈接中的$ annoncenumber我不能使用joomla菜單鏈接系統添加模塊到接收器頁面(菜單,頁腳)。我試圖用$ _SESSION代替:

$annoncenumber = $book[7]; 
$_SESSION['lginumero'] = $annoncenumber; 

但是用這種方法,並使用搜索引擎優化鏈接:

的會議結果不正確時,人點擊的鏈接。它只檢索數組的最後一個值。所以我的問題是如何讓joomla模塊顯示使用變量的鏈接,或者當用戶單擊鏈接時如何使用$ _SESSION正確地將數組變量傳遞到接收者頁面。謝謝。

+0

通過禁用搜索引擎優化是最簡單的解決方案 – HamZa

+0

我並不真的需要搜索引擎優化,但我確實需要joomla模塊出現。這就是爲什麼我試圖使用joomla菜單鏈接功能。我很抱歉混淆 – Rich

+0

我不明白這一點,爲什麼你不能使用「announcenumber」當你做什麼時會發生什麼......我們使用模塊中的組件鏈接隨附參數... – Craig

回答

0

您應該使用joomla類的JSession而不是本地PHP $ _SESSION,因爲Joomla有時會清除$ _SESSION變量。

http://docs.joomla.org/JSession/11.1

你不應該使用unsanitized $ _GET要檢索的變量,因爲這是一個很大的安全隱患。使用Joomla JRequest :: getInt('announcenumber');而是恰當地清理變量。

http://docs.joomla.org/JRequest/11.1

如果您使用捕捉請求的PHP文件的Joomla之外的外部文件,那麼你就不能使用核心的Joomla類。在這種情況下,我建議您重寫您的擴展以符合MVC標準。

+0

謝謝。我將嘗試實現這一點。我必須查找我未曾聽說過的'unsanitized'$ _GET和MVC標準。我還發現,我可以在電子郵件鏈接中包含joomla菜單的「Itemid」,從而爲我提供了我一直在尋找的必要模塊 – Rich

相關問題