【问题标题】:How to pass variables to Sessions rather than to the URL - PHP?如何将变量传递给 Sessions 而不是 URL - PHP?
【发布时间】:2015-02-14 14:36:02
【问题描述】:
<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”将存储在一个会话中。

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

【问题讨论】:

    标签: javascript php jquery ajax session


    【解决方案1】:

    您必须创建一个有效页面来接收您在 url 中传递的查询字符串 假设您拥有的链接在 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();
    ?>
    

    【讨论】:

      【解决方案2】:

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

      所以,作为一个简单的例子,你可以使用:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-17
        • 1970-01-01
        • 2019-07-07
        • 2016-11-27
        • 1970-01-01
        相关资源
        最近更新 更多