HTML / HTTP 是无状态的,换句话说,您在前一页所做/所见,与当前页面完全无关。 除了如果您使用会话、cookie 或 GET / POST 变量之类的东西。会话和 cookie 非常易于使用,会话比 cookie 安全得多。更安全,但并非完全安全。
会话:
//On page 1
$_SESSION['varname'] = $var_value;
//On page 2
$var_value = $_SESSION['varname'];
请记住在尝试访问 $_SESSION 数组之前以及在任何输出发送到浏览器之前在这两个页面上运行 session_start(); 语句。
Cookie:
//One page 1
$_COOKIE['varname'] = $var_value;
//On page 2
$var_value = $_COOKIE['varname'];
会话和 cookie 之间的最大区别在于,如果您使用会话,变量的值将存储在服务器上,如果您使用 cookie,则存储在客户端。我想不出使用 cookie 代替会话的任何充分理由,除非您希望数据在会话之间持久存在,但即便如此,最好将其存储在数据库中,并根据用户名或 id 检索它。
GET 和 POST
您可以将链接中的变量添加到下一页:
<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>
这将创建一个 GET 变量。
另一种方法是在提交到第二页的表单中包含一个隐藏字段:
<form method="get" action="page2.php">
<input type="hidden" name="varname" value="var_value">
<input type="submit">
</form>
然后在第二页:
//Using GET
$var_value = $_GET['varname'];
//Using POST
$var_value = $_POST['varname'];
//Using GET, POST or COOKIE.
$var_value = $_REQUEST['varname'];
如果您想通过邮寄方式进行,只需将表单的方法更改为post。两者同样不安全,尽管 GET 更容易被破解。
当我第一次开始使用 PHP 编码时,每个新请求都是一个全新的脚本实例,除了会话数据之外。不过一旦习惯了,就很简单了。