PHP 将变量传递到下一页
这似乎很简单,但我找不到一个好方法来做到这一点。
在第一页中说我创建了一个变量
$myVariable = "Some text";
该页面的表单操作是“Page2.php”。那么在Page2.php中,我该如何访问该变量?我知道我可以用会话来做到这一点,但我认为对于一个简单的字符串来说太多了,我只需要传递一个简单的字符串(文件名)。
我怎样才能做到这一点?
谢谢!
这似乎很简单,但我找不到一个好方法来做到这一点。
在第一页中说我创建了一个变量
$myVariable = "Some text";
该页面的表单操作是“Page2.php”。那么在Page2.php中,我该如何访问该变量?我知道我可以用会话来做到这一点,但我认为对于一个简单的字符串来说太多了,我只需要传递一个简单的字符串(文件名)。
我怎样才能做到这一点?
谢谢!
HTML / HTTP是无状态的,换句话说,您在上一页上所做的/看到的,与当前页面完全无关。除非您使用会话,Cookie或GET / POST变量之类的东西。会话和 Cookie 非常易于使用,会话比 Cookie 安全得多。更安全,但不完全安全。
会期:
//On page 1
$_SESSION['varname'] = $var_value;
//On page 2
$var_value = $_SESSION['varname'];
请记住,在尝试访问数组之前,以及在将任何输出发送到浏览器之前,都要在这两个页面上运行该语句。session_start();
$_SESSION
饼干:
//One page 1
$_COOKIE['varname'] = $var_value;
//On page 2
$var_value = $_COOKIE['varname'];
会话和 Cookie 之间的最大区别在于,如果您使用的是会话,则变量的值将存储在服务器上,如果您使用的是 Cookie,则变量的值将存储在客户端上。我想不出任何好的理由来使用cookie而不是会话,除非你希望数据在会话之间持久存在,但即使这样,最好将其存储在数据库中,并根据用户名或ID检索它。
获取和发布
您可以将链接中的变量添加到下一页:
<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更容易破解。post
事实上,除了会话数据之外,每个新请求都是一个全新的脚本实例,当我第一次开始用PHP编码时,我抓住了这一点。一旦你习惯了它,它就很简单了。
感谢您上面的答案。以下是我是如何做到的,我希望它能帮助那些追随者。我希望将注册号从一个页面传递到另一个页面,因此是regName和regValue:
创建您的第一个页面,称之为set_reg.php:
<?php
session_start();
$_SESSION['regName'] = $regValue;
?>
<form method="get" action="get_reg.php">
<input type="text" name="regName" value="">
<input type="submit">
</form>
创建您的第二个页面,称之为get_reg.php:
<?php
session_start();
$regValue = $_GET['regName'];
echo "Your registration is: ".$regValue.".";
?>
<p><a href="set_reg.php">Back to set_reg.php</a>
虽然不像上面的答案那么全面,但就我而言,这以简单的方式说明了各种元素之间的关系。