2011-07-28 50 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'并从该单个事件数组中提取数据。

希望澄清一下。

相关问题