PHP 将变量传递到下一页

标签 php variables session

看起来很简单,但我找不到好方法。

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

$myVariable = "Some text";

该页面的表单操作是“Page2.php”。那么在 Page2.php 中,我如何才能访问该变量?我知道我可以通过 session 来做到这一点,但我认为这对于一个简单的字符串来说太过分了,我只需要传递一个简单的字符串(一个文件名)。

我怎样才能做到这一点?

谢谢!

最佳答案

HTML/HTTP 是无状态的,换句话说,您在上一页所做/所见,与当前页面完全无关。 除了如果您使用 session 、cookie 或 GET/POST 变量之类的东西。 session 和 cookie 非常易于使用, session 比 cookie 安全得多。更安全,但并非完全安全。

session :

//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'];

session 和 cookie 之间的最大区别在于,如果您使用 session ,变量的值将存储在服务器上,如果您使用 cookie,则存储在客户端。我想不出使用 cookie 代替 session 的任何充分理由,除非您希望数据在 session 之间持久存在,但即便如此,最好将其存储在数据库中,并根据用户名或 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 完成,只需将表单的方法更改为 post。两者同样不安全,尽管 GET 更容易破解。

当我第一次开始使用 PHP 编码时,每个新请求都是一个全新的脚本实例,除了 session 数据之外。一旦你习惯了它,它就很简单了。

关于PHP 将变量传递到下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/871858/

相关文章:

python - 这是获取输入数字平均值的好方法吗?

perl - Mojolicious、重定向、 session 并尝试创建身份验证系统

php - 如果不存在 PHP session ,则禁用页面上的所有输入按钮

php - 我可以使用 Laravel 的 `call` 方法在单元测试中发送原始 JSON 数据吗?

php - 使用 php mysql 针对 upwork 等旅行的审查系统的数据库设计

variables - 如何读取 SAS 数据集中的变量名称?

c++ - 存储在全局变量中的数据和存储在堆中的数据有什么区别?

java - 使用 Actors/AKKA 的面向 session 的异步架构

php - Laravel form::date 函数格式

php - 允许 PHP date() 函数识别 dd-mm-yy 格式