我在godaddy上有一个共享主机。
我尝试使用此行更改php.ini文件中的会话保存路径,
sessions.save_path = "/session"
我用sessions.save_path()函数控制了会话保存路径。它在更改/tmp
之前和之后返回php.ini
是否可以在共享主机上更改会话保存路径? 我哪里错了?
您可以通过创建自定义php.ini来修改共享主机上的会话保存路径。
将其包含在您的文件中:session.save_path = "/path/to/your/folder"
否则,您可以使用:
ini_set('session.save_path', '/path/to/your/folder')
您使用的文件夹应位于您的域/帐户下,但无法通过Web浏览器访问。它还需要具有世界可写权限。每个使用会话的页面都必须包含该行。
这是session.save_path
而不是sessions.save_path
(它可能已被重命名或其他东西,我不知道,但sessions.save_path
不适合我)
session.save_path = "/path/to/your/folder"
工作良好
同样重要的是要注意session.save_path
必须在session_start()
之前调用
在C:\session.
中创建一个名为session的文件夹
将session.save_path();
目录更改为新创建的路径:(C:\session
)tmp
文件夹中的任何位置。
以下是我在这个帖子的帮助下让会话工作的方式。我在IIS中运行PHP。
在php.ini中设置会话文件夹。
session.save_path = "C:/inetpub/temp/php_session"
(我还不确定这个会话文件夹是否适用于我的环境......安全性方面。我需要对此进行更多阅读。)
设置会话路径是不够的。首先,我将session_start()放在我需要设置会话变量的函数中,但即使会话文件是在我的路径中创建的(sess_d9eeeb305928f2f39a25f296773b09eb),$ _SESSION值在ajax发布到我的PHP页面时丢失了。有人在stack \ o上说将session_start()作为第一行,所以我试过了,我的会话值正在运行。我还没弄清楚在哪里销毁它。
<?php
session_start();
...