如何将变量传递给会话而不是 URL - PHP


How to pass variables to Sessions rather than to the URL - PHP?

<a class='okok' id='$file' href='" . $_SERVER['PHP_SELF'] . "?file=" . $file . "'>$file</a>

上面的代码是一个链接,它将其名称传递给变量"file",然后在URL中显示为:

http://example.com?file=thefile.html(无论文件是什么(

使用 PHP,我现在可以从 URL 中检索变量,然后处理它(在这种情况下,变量是"thefile.html"。

我将如何使用会话来防止变量传递到 URL 上。所以代替:

http://example.com?file=thefile.html

我会:

http://example.com

变量"thefile.html"将存储在会话中。

如果您需要有关我想问的更多信息,请询问。

您必须创建一个有效的页面来接收您在 url 中传递的查询字符串假设您拥有的链接位于索引上.html并且您的链接目标是 result.php,那么您将在 Result 中编写以下代码.php

<?php
session_start();
if( isset($_GET["filename"]) ){
$fname = $_GET["filename"];
//code to deal with filename 
//save in session variable 
$_SESSION['UploadedFilename'] = $fname;
}
?>
<!-- html -->
<?php
session_write_close();
?>
如果要将

文件名从浏览器(链接所在的位置(传递到没有参数的主机,则需要使用 cookie。会话是主机概念。

因此,作为一个简单的示例,您可以使用:

<a class='okok' id='$file' href='" . $_SERVER['PHP_SELF'] . "' onclick="document.cookie='filename=" . $file . "';">$file</a>

这将创建一个包含文件名的 cookie。

在主机端,使用 $_COOKIES['文件名'] 检索名称。