【发布时间】:2014-08-04 02:25:27
【问题描述】:
这是这个问题的后续问题:How to access a variable from one PHP page to another, without a form, link, or button?
场景:-
如第一个问题所述,在名为question_edit_form.php 的文件中定义了一个form。此表单的action 设置为名为@987654326@ 的文件。 所以表单中的所有数据显然都传递给了question.php。
但是我在表单中添加了一个select 元素,我希望将这个元素的数据传递给另一个名为renderer.php 的文件。这个文件负责在测验中向学生展示问题,以便他们写出答案。
第一个提议的解决方案 - 会话变量:-
所以第一个解决方案是使用会话变量。它在一个场景中有效,但在另一个“实用”场景中失败了。
问题是question_edit_form 被老师用来编辑一个问题——这是一个会话。一名学生在另一节课中回答该问题。 很明显,当 renderer.php 向用户显示问题时,会话变量对它不可用(因为它是另一个会话)。
第二个提议的解决方案 - Cookie:-
另一种解决方案是使用 cookie。但是reading up on cookies here tells me那个
cookie 是服务器嵌入在用户计算机上的一个小文件。每次同一台计算机通过浏览器请求页面时,它也会发送 cookie。
所以服务器会将变量放在用户的计算机上。但是学生将在同一会话中尝试许多问题,并且每个问题的变量值都会不同。
问题:-
那么cookies可以用在这个场景中吗?还是有另一种解决方案将变量传递给文件renderer.php?
【问题讨论】:
-
把它放在URL里怎么样?
-
@zerkms 谢谢。是否可以提供给与
question_edit_form.php没有直接链接的renderer.php? -
我不确定你在说什么。但是 URL 及其所有数据可供处理它的脚本使用。
-
要扩展 URL,请使用 get 请求将您的信息从一个页面传递到另一个页面。请注意,它也是客户端重定向,这意味着用户可以修改请求。如果它很敏感,请使用会话
-
@zerkms 问题是表单的
action属性设置为一个名为question.php 的文件(它的URL 类似于localhost/moodle/question/question.php)。我要访问的文件是另一个文件(URL 为localhost/moodle/mod/quiz/attempt.php)。那么我可以将变量添加到尝试.php 文件的 URL 中吗?
标签: php session post cookies get