有没有一种方法可以在HTML文档(或PHP脚本)中携带一个变量?
这可能更像是一个'编程技术'问题,但我不确定应该去哪个部分。有没有一种方法可以在HTML文档(或PHP脚本)中携带一个变量?
我想制作一个“引导问题和(可用)答案”的网站 - 可能很容易在结构上描述为“选择你自己的冒险”类型的方法。
我没有着手创建一个概括每个“故事情节分支”,然后硬编码(a href)匹配的错综复杂的树,我想到了一个更加动态的“旅程”,它以一个数组变量概述了将要问的问题的顺序。
例如, 如果用户选择序列A; $ questionarray = [Q1,Q3,Q2,Q5,Q6] 如果用户选择序列B; $ questionarray = [Q1,Q2,Q4,Q3,Q7] 等等。我的第一个尝试就是尝试一些简单的东西,就像[Q1,Q2,Q3,Q4,Q5]一样,在这种情况下我不需要一个数组,而是一个简单的递增变量,比如说$ qnum,并且每个后续文件都会调用下一个文件,如下所示 - Q1.htm调用Q2.htm,Q2.htm调用Q3.htm,但不是因为它已在每个文件中进行了硬编码,而是由递增的“统一变量” $ qnum。 (这个想法是,如果成功了,那么将会是一个简单的例子,用上面提到的数组变量'$ questionarray'替换$ qnum)。
然后问题出现在几个文档,HTML甚至PHP,$ qnum不能被“传送”到下一个文件 - 没有写入服务器端的文本文件以跟踪。我甚至试图将上面的“兄弟调用兄弟”结构更改为“父调用子”(通过“包含Q”。$ qnum。“。php”),但$ _POST/document.reload也会结束重置$ qnum返回声明的值。
有没有另一种方法我可以使用,我不知道 - 除了从服务器端文本文件写入/读取,这将是相当低效,对不对?
在Php中,您可以使用Sessions
来跟踪从一个请求到下一个请求的数据。
您需要先开始会话,然后才能在$_SESSION
数组中获取/设置数据。
例如:
在第一页
<?php
session_start();
$_SESSION['questions'] = array(1,2,4,3,7);
?>
在二级页面
<?php
session_start();
//Replace with whatever logic is needed
foreach($_SESSION['questions'] as $q){
echo $q
}
注意,您只能每个请求启动一个会话一次。要检查是否会话已启动,建议您做到以下几点:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
如果你需要从你可以去它在两个方面会删除数据:
要删除索引所述$_SESSION
阵列
unset($_SESSION['questions']);
摧毁整个会话
session_destroy();
啊,SESSIONS!对于如何开始使用会话变量的“入门套件”非常感谢。现在需要更多的东西来学习,这看起来也需要跟踪用户。再一次,非常感谢新手的简单解释。 –
没问题,'sessions'的基本用法很简单,但有很多功能和配置。如果你需要深入了解php手册。有一件事需要注意,如果你有'Objects'或'Classes',你试图存储在'session'中,我相信你需要''序列化'它们,然后'unserialze'在下一页检索时。不完全确定目前的细节,但如果遇到未按预期保存的事情,这可能是原因。当我开始使用会话时,我努力地解决了这个问题。 –
的SE想起SSION [这里是PHP手册](http://php.net/manual/en/book.session.php) – RiggsFolly
如何使用localstorage?它很容易使用,并将完成您的工作。 –
或者,你可以加密数据并发送GET请求 –