php.ini 的 session.save_path 的正确用法是啥?
Posted
技术标签:
【中文标题】php.ini 的 session.save_path 的正确用法是啥?【英文标题】: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 的正确用法是什么?还有,这是我的问题吗?
【问题讨论】:
【参考方案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 头像上! ;-) 编辑:根据欧文的建议引用变量。以上是关于php.ini 的 session.save_path 的正确用法是啥?的主要内容,如果未能解决你的问题,请参考以下文章