【问题标题】:What's the proper use of php.ini's session.save_path?php.ini 的 session.save_path 的正确用法是什么?
【发布时间】:2010-09-15 21:06:14
【问题描述】:

我在 Windows/IIS 上运行 PHP。

我的会话变量似乎没有逐页保留。

这段代码……

//echos out the session variables in a nice format for inspection
echo "<p><pre>";
print_r($_SESSION);
echo "</pre></p>";

…输出空白值,像这样…

大批 ( [s_firstvar] => [s_var2] => [s_第三] => [s_numberfour] => [s_youget] => [s_thepoint] => [] => )

我在论坛上找到了建议……

我最近遇到了类似的问题(Win2000,IIS),原来是PHP 对会话数据所在的任何目录都没有写访问权限 存储在其中。您可能需要对此进行调查。

你设置了 session.save_path 吗?

php.ini 的 session.save_path 的正确用法是什么?还有,这是我的问题吗?

【问题讨论】:

    标签: php iis session session-variables


    【解决方案1】:

    你能发布更多你的会话代码吗?一些基础知识:

    • 您开始会话了吗? (session_start())
    • 您是否检查过您的保存路径是否具有适当的权限(OP 中未提及)
    • session.save_path 实际上只是将会话保存到的目录。如果您在共享服务上,最好将其设置为与默认临时目录不同的目录(因为您的会话也会与其他应用程序的会话混合,并可能导致更大的会话冲突机会)
    • 如果您要更改会话配置(如 save_path,则必须在调用 session_start() 之前设置这些配置。

    【讨论】:

      【解决方案2】:

      哎呀。我发现我在赋值时没有使用正确的语法:

      不起作用:

      $_SESSION['$s_firstvar'] = 3;
      

      有效:

      $_SESSION['s_firstvar'] = 3;
      

      【讨论】:

      • 只是为了挑剔,你应该养成引用变量的习惯: $_SESSION['s_firstvar'] = 3; (例如)
      • 确实,不引用它们会产生常量和一些开销
      • 还有 ++ 在 engie 头像上! ;-)
      • 编辑:根据欧文的建议引用变量。
      猜你喜欢
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 2013-03-09
      • 2011-04-15
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多