【问题标题】:PHP not creating sessionPHP没有创建会话
【发布时间】:2014-10-27 08:31:32
【问题描述】:

我能够在 3 天前创建会话。代码保持不变。但现在我无法创建会话。错误信息:Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (c:\web\dev\session) in Unknown on line 0

如果我将路径 c:\web\dev\session 复制到 Windows 运行命令中,它会打开路径,因此我已验证该路径存在。我也收到错误:Warning: session_start(): The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in C:\Web\dev\backdoor\request.php on line 10 但我没有指定 PHP ID。

我的代码如下所示:

$user_row 是一个数组,其中包含会话的所有用户数据。

session_save_path('c:\web\dev\session');
session_start();

$_SESSION['user'] = $user_row;
$_SESSION['security']['ip'] = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   $_SESSION['forwarded_for'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
       $_SESSION['security']['forwarded_for'] = false;
    }

我使用的是 Apache 2.4 和 PHP 5.6

我见过this link,但它似乎只有在您使用 IIS 时才能解决问题。我似乎找不到 Apache 的解决方案。

我还尝试从我的根目录中删除 .htaccess 文件。

【问题讨论】:

  • 您使用哪个 Windows 版本?使 shure php 可以写入目录 .. 也许一个技巧可能是将 webroot 设置不在 c: root-dir
  • 一般情况下不需要指定session_save_path()。确保 Apache 服务用户有权写入该文件夹。
  • 您是否尝试过清除浏览器缓存和活动会话?此外,检查 Apache 是否有权写入该文件夹。此外,session_save_path() 听起来有点矫枉过正。
  • 我使用的是 Windows 7 Ultimate。我曾经能够在星期五创建会话。而今天早上它只是无缘无故地失败了。我的操作系统或 PHP 没有任何改变。为了开发,我允许计算机和网络上的每个用户和组完全访问我的 web 文件夹,以确保我的代码完全兼容

标签: php apache session


【解决方案1】:

尝试将您的 php 会话 ID 设置为某个值,看看是否可行。

我遇到了同样的问题,当我将 php id 设置为它工作的东西时。我认为这是需要解决的新 php 版本中的错误或故障

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-21
    • 2015-10-04
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多