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

时间:2013-08-13 03:28:18

标签: php forms

我使用以下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变量以在下载页面上使用它? 感谢。

1 个答案:

答案 0 :(得分:0)

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

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

通过执行上述操作,变量将存储在PHP会话中,并且只要您调用session_start(),就可以使用该变量。

你现在的方式是:

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

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