2011-07-28 216 views
0

我有一個有問題的網站的事件頁面,其中每個事件的日期,時間,位置等在表格行中列出。見here將Movable Type變量從一個頁面傳遞到另一個頁面

每個事件實際上都是Movable Type中的「入口」,時間,地點等都是自定義字段。到目前爲止,一切正常。現在,當用戶點擊rsvp時,我想讓用戶使用簡單的rsvp表單。目前,我有一個rsvp.php?eid=..安排,其中事件ID在URL中傳遞。這是一種使用PHP將事件ID從一個頁面(events.php)傳遞到另一個頁面(rsvp.php)的方法。當我嘗試通過Movable Type訪問此值時,會出現問題。由於Movable Type是在PHP服務器端首先處理的,因此在查詢Movable Type並輸出事件信息(在rsvp.php中)時,遇到了URL中列出事件的ID時遇到問題。

本質上,我需要一種方式來跟蹤存儲在Movable Type中的事件,當我從一個頁面移動到另一個頁面時。

回答

0

你也可以用MT發佈rsvp.php,並讓它直接在PHP代碼中發佈一個包含所有事件信息的PHP數組,然後在數組中使用ID來查找事件,並使用來自那裏的數據。請注意,如果您計劃同時發送大量可以同時發送的事件(數百個或更多)的事件,則此解決方案不可行,因爲列表會變得太大,並且可能會降低rsvp.php的速度。

或者您可以爲每個事件發佈第二個條目歸檔,並且包含事件ID的可預測文件名。這第二個條目歸檔將包含一些PHP代碼,這些代碼將設置事件信息的一些變量。在rsvp.php中,你可以看看你傳遞的id,並基於該php-包含正確的文件。這樣,rsvp.php將保持相同的大小。 (儘管如此,請小心檢查通過的ID的值,確保它是數值型的,所有這些都不會被通過您的「有趣」ID的黑客攻擊,這會導致您的腳本包含惡意文件。)

披露:我是movabletips.com博客的作者。

+0

感謝您的回覆。對於第一種替代方案,我是否需要多個陣列來說明位置,時間,日期等?例如,有一個數組用於時間,另一個用於位置,等等。還是你有其他想法?至於第二種選擇,我對存檔模板還不是很熟悉。如何區分我現在擁有的Entry檔案模板和我創建的第二個檔案模板?換句話說,根據具體情況,我會如何告訴MT使用哪一種?非常感謝。 –

+0

經過闡述,我願意將這個答案標記爲正確的... –

0

如果您爲每個事件創建一個數組包含給定的事件詳細信息,則上述Maarten提到的第一種方法可以工作。

Maarten提到的第二種方法是,您可以爲每個事件發佈額外的'Entry'存檔,假設您將每個事件創建爲名爲say'Events'的部分內的條目。

當我看着你的網站,我會假設你有一個「活動」部分中,您創建的每個事件爲一個條目,然後你產生:

1)指數在模板: http://www.weillcornell.org/prc/events.php

2)在公佈說個別模板: http://www.weillcornell.org/prc/events/caring-for-our-feet.php

但是你可以創建一個額外的條目模板,仍然發佈一個文件名,如「10006.php」爲我上面並調用事件樣本這個文件將包含前夕nt數據作爲數組。

然後,當你從調用事件預訂: http://www.weillcornell.org/prc/rsvp.php?eid=10006

在現實中,而不是具有「rvsp.php」文件中的所有事件排列,從而產生了大量「rsvp.php」文件,您可以將'rsvp.php'文件設置爲只包含文件'10006。php'並從該單個事件數組中提取數據。

希望澄清一下。

相關問題