PHP如何将变量传递到下一页?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

这看起来很简单,但我找不到一个好办法。

比如说在第一页我创建了一个变量

$myVariable = "Some text";

该页面的表单操作是“Page2.php”。因此,在Page2.php中,如何访问该变量?

我怎样才能做到这一点?

谢谢

提问于
用户回答回答于

我是这样做的,通过一个注册号码从一个页面到另一个,因此regNameregValue

创建你的第一页,称之为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>

虽然没有上面的答案那么全面,但是,这简单地说明了各种元素之间的关系。

用户回答回答于

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而不是会话,除非您希望数据在会话之间持久存在,但即使这样,最好还是将其存储在DB中,并根据用户名或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更容易被破解。

当我第一次开始用PHP编写代码时,除了会话数据之外,每个新的请求都是脚本的一个全新实例,这一事实使我感到意外。不过,一旦你习惯了,就会很简单。

扫码关注云+社区

领取腾讯云代金券