【问题标题】:PHP session variables and jQueryPHP 会话变量和 jQuery
【发布时间】:2012-04-30 12:18:25
【问题描述】:

所以,我在处理 PHP 会话变量时遇到了一些问题。我有一个 jQuery 函数可以将变量发布到 PHP 文件(工作,请参见此处的代码):

   $('#practiceid').blur(function() {
    var practiceid = $(this).val();
    $.post("delicious.php", {"pid": practiceid});
   });

感谢Firebug,我可以看到delicious.php 接收了变量。现在,该 PHP 文件中的代码是:

$_SESSION['uploaddir'] = $_POST['pid'];

现在的问题是,当我尝试在其他 PHP 文件中使用会话变量时,它似乎不存在。我已经在 index.php 文件中声明了session_start();

有什么想法吗?

非常感谢。

【问题讨论】:

  • session_start() 不只是启动一个会话。它在使用它的任何页面上创建对会话的访问,并且必须在 每个 读取或写入 $_SESSION 的脚本上调用。

标签: php jquery session variables


【解决方案1】:

您是否确保在需要使用 $_SESSION 成员的每个页面上调用 session_start()?

【讨论】:

  • 我试过了,好像没用。会话是否应该启动那么多次?
  • @user1342734:会话不是通过调用session_start() 来“启动”的。无论如何,会话都处于活动状态。 session_start() 所做的是允许脚本的其余部分访问会话。所以,是的,如果您在整个应用程序中依赖会话状态,则应该在每个请求开始时调用它。
【解决方案2】:

session_start() 需要写在您使用会话值的每个页面上。

另外,不要直接为 SESSION 变量赋值。使用这个:-

if(isset($SESSION['uploaddir'])){
 unset($_SESSION['uploaddir']); 
} 
$_SESSION['uploaddir'] = $_POST['pid'];

您使用的分配可能会导致警告

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-07
    • 2013-10-25
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 2013-05-01
    相关资源
    最近更新 更多