以非标准方式传递php会话变量


Passing php session variables non standard way

我使用以下PHP代码和HTML表单将"item_name"值传递到下载页面。

<?php
session_start();
$_SESSION['item_name']="item_name";
?>
...
<form action="download.php" method="post">
<input type="hidden" name="item_name" value="133076">
<input type="submit" value="download">
</form>

我在下载页面上收到并使用"item_name"值,如下所示。

<?php
session_start();
$item_name=$_POST["item_name"];
?>

所有这些都很好,但我有以下问题,我希望在这里解决。初次点击后,我想回到相同的html页面,如下所示:

<form action="" method="post">

然后使用JavaScript做一些事情,生成"download.php"的链接,然后就可以下载文件了。问题是,当我点击新生成的链接进入"download.php"时,

$_SESSION['item_name']="item_name";

已经丢失。那个么,我怎样才能保留这个Session变量以便在下载页面上使用它呢?谢谢

在您的download.php页面上,您需要将变量设置为会话变量:

<?php
session_start();
$_SESSION['item_name'] = $_POST["item_name"];
?>

通过执行以上操作,该变量将存储在PHP会话中,并且在调用session_start()的任何位置都可用。

你现在的方式是:

<?php
session_start();
$item_name = $_POST["item_name"];
?>

这将使该变量仅在您的download.php页面中可用,而在其他任何地方都不可用。