有没有一种方法可以在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返回声明的值。

有没有另一种方法我可以使用,我不知道 - 除了从服务器端文本文件写入/读取,这将是相当低效,对不对?

+0

的SE想起SSION [这里是PHP手册](http://php.net/manual/en/book.session.php) – RiggsFolly

+0

如何使用localstorage?它很容易使用,并将完成您的工作。 –

+0

或者,你可以加密数据并发送GET请求 –

在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(); 
+0

啊,SESSIONS!对于如何开始使用会话变量的“入门套件”非常感谢。现在需要更多的东西来学习,这看起来也需要跟踪用户。再一次,非常感谢新手的简单解释。 –

+0

没问题,'sessions'的基本用法很简单,但有很多功能和配置。如果你需要深入了解php手册。有一件事需要注意,如果你有'Objects'或'Classes',你试图存储在'session'中,我相信你需要''序列化'它们,然后'unserialze'在下一页检索时。不完全确定目前的细节,但如果遇到未按预期保存的事情,这可能是原因。当我开始使用会话时,我努力地解决了这个问题。 –

如果你需要在网页中携带变量,Sessions是最好的选择。会话允许您跨多个页面传递变量,数组等。检查here进入会话。