簡體   English   中英

TYPO3擴展:從javascript訪問TYPO3會話變量?

[英]TYPO3 extension: Accessing the TYPO3 session variable from javascript?

這聽起來可能有些不准確,但是可以更改TYPO3會話變量

$GLOBALS["TSFE"]->fe_user->setKey('ses', 't_minus', 0);

從JavaScript以某種方式在listAction內處理變量以指定要顯示或不顯示某些記錄?

更詳細地說:我正在研究日歷的擴展名。 日歷是用JavaScript生成的(這是我不負責的部分)。 listAction基本上會生成一個JSON對象或記錄,該對象或記錄在特定間隔(過去2周,將來3周)內具有unix時間戳。 javascript有一個按鈕“前進一周” /“前進一周”。 向后一周應從會話變量中減去604800(1周),向前一周應向會話變量中添加604800(1周)。

在listAction中,會話變量調整時間戳記間隔(向前/向后n周),或者將哪些記錄放入JSON對象。

是否可以從javascript訪問會話變量,否則是否違反安全要求?

我將創建一個PHP函數來更改此會話變量(例如,具有eID功能),然后通過JavaScript中的AJAX調用該函數。 更多信息請參見: https//seethroughweb.com/ajax-with-typo3/

(對不起,找不到英文更好的手冊,您需要使用新的類名)

無法直接通過javascript更改TYPO3會話內容。 可能您可以通過javascript訪問PHP會話cookie-我不太確定,但是會話變量存儲在TYPO3 DB中。 它們通過PHP進行了序列化和加密,您將無法通過Javascript訪問它們。 這只能通過PHP實現。

您可以執行的操作:在控制器中創建oneWeekForwardActiononeWeekBackAction 閱讀您的會話cookie並根據您的需要進行修改。 這些動作可以通過Ajax激活。 為此,您必須在Fluid模板中預先使用f:uri.action創建適當的鏈接! 將這些字符串放在JSON對象中的某個位置。 然后,您可以將這些鏈接連接到單擊事件。

不要忘記使用page.config.disableAllHeaderCode生成特殊的AJAX頁面類型。 如果您搜索此內容並且使用Ajax ,則會找到示例,例如:

[ http://www.sklein-medien.de/tutorials/detail/erstellung-einer-typo3-extension-mit-ajax-aufruf/]

從2016年開始使用Extbase / Fluid。

這不是安全問題。 會話的思想是通過一系列多個HTTP請求將其綁定到服務器上的相同數據。 Javascript位於瀏覽器中。 JavaScript無法直接訪問服務器上的數據。

如果您僅負責JS,則另一個人的工作就是為您提供會話數據的接口。

是的,我認為將瀏覽器中的計算結果與服務器中的數據同步是個好主意,否則日歷數據很快就會不同步。 我什至會走得更遠,因為服務器比JS更可靠,服務器應該負責這種計算。 因此,負責PHP的人應該做主要工作並通過AJAX向您提供結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM