所以我研究了這個問題,但它似乎沒有在Joomla論壇中的解決方案。如果ID不在URL中,Joomla/PHP註銷
我得到的問題縮小到URL。如果在URL中設置了變量&ID=
,那麼可以,如果不是,則退出。在這兩種情況下,我都在執行$_SESSION
轉儲,並確認$ user-> id設置爲0.不知道它爲什麼會註銷。
歡迎任何解決方案,這是一段時間以來一直避免的問題。
所以我研究了這個問題,但它似乎沒有在Joomla論壇中的解決方案。如果ID不在URL中,Joomla/PHP註銷
我得到的問題縮小到URL。如果在URL中設置了變量&ID=
,那麼可以,如果不是,則退出。在這兩種情況下,我都在執行$_SESSION
轉儲,並確認$ user-> id設置爲0.不知道它爲什麼會註銷。
歡迎任何解決方案,這是一段時間以來一直避免的問題。
解決方法。我只能肯定地說這是可能的解決方案,但對於看這篇文章的人來說應該是有幫助的。
Joomla 1.5.x中的傳統模板(1.0)和JUtility方法getToken()之間存在兼容性問題。
顯然,這在登錄表單中使用。因此,發現它在文件中並替換:
<input type="hidden" name="<?php echo JUtility::getToken(); ?>" value="1" />
有:
<input type="hidden" name="<?php echo JHTML::_('form.token'); ?>" value="1" />
這不是我所看到的問題,我的問題爲與登錄,但註冊組件,使大量使用JUtility :: getToken()Class ::方法。我知道這是因爲卸載組件可以解決問題。然而,由於我沒有在組件內測試任何解決方案,我不會絕對說這是解決方案。
希望這篇文章有所幫助。
感謝那些回答。
我的最終解決方案不是編輯我自己編寫的複雜組件的十幾個或更多部分,而是編輯菜單元素以在菜單標籤後面發送並添加「&ID = 1」。這在Joomla內並不完美,但花了好幾個小時後,又看到了更多的地平線,這是我選擇的解決方案。 – user1663378
只是利用joomla的能力來設置具有訪問級別的菜單項不是更好嗎?只需將級別設置爲「註冊」並完成即可。否則,如果您正在尋找自定義的編程解決方案,請進入控制器,檢查用戶是否已登錄,然後添加一行以驗證ID是否在URL中。
有一件事是,你可能看起來像你正在註銷,但實際上並沒有被註銷。因此,如果您輸入的網址只應該對登錄用戶可見,您仍然可以看到它。 在您的會話轉儲中,還會設置分配給您的用戶組。他們是否包括客人?如果是這樣,這可能是問題的根源;這是該平臺最近修復的主題。
正確。這絕對是註銷。 $ user-> id = 0.(感謝你的回答,它確實讓我做了一些進一步的代碼檢查)。 – user1663378
您是否更改過任何會話變量? –