如何将变量传递给Sessions而不是URL - PHP?

时间:2015-02-14 14:36:02

标签: javascript php jquery ajax session

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

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

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

使用PHP,我现在可以从URL中检索变量,然后对其进行处理(在这种情况下,变量是&#39; thefile.html&#39;。

如何使用Sessions阻止变量传递到URL。所以而不是:

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

我会:

http://example.com

变量&#39; thefile.html&#39;将存储在会话中。

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

2 个答案:

答案 0 :(得分:0)

您必须创建一个有效页面,用于接收您在网址中传递的查询字符串 假设您的链接在index.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();
?>

答案 1 :(得分:0)

如果您想将文件名从浏览器(链接所在的位置)传递给没有参数的主机,则需要使用cookie。会话是主持人的概念。

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

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

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

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