PHP 5.6 SESSION处理(写、读)

PHP 5.6 SESSION handling (writing, reading)

我在执行网站上收到此通知:

Notice: Undefined variable: _SESSION in *PATH* on line 25 这是这行代码 $_SESSION["Registration_Error"] = TRUE; 为什么 $_SESSION 变量未知?

他们是否改变了在 Session-Variable/Cookie 中保存数据的方式?

没在 Google 上找到好东西。仅此 http://php.net/manual/de/book.session.php#116217,我认为这没有多大帮助。

想法?

编辑:

完整代码

<?php

session_start();

function __autoload($class_name) {
    include "../backend/classes/$class_name.php";
}

$Connection = new DB_Connect();
$User_Functions = new User_Functions();

$UserName = filter_input(INPUT_POST, "UserName");
$Password = filter_input(INPUT_POST, "Password");
$Mail = filter_input(INPUT_POST, "Mail");
$date = new DateTime();
$Registration_Date = $date->format("Y-m-d H:i:s");

if (!empty($UserName) && !empty($Password) && !empty($Mail)) {
    if (!$User_Functions->User_Exists($UserName)) {
        $Password_hashed = password_hash($Password, PASSWORD_DEFAULT);

        $Query = "INSERT INTO wordsusers (`wordsUserName`, `wordsUserPassword`, `wordsUserMail`, `wordsUserRegDate`) VALUES (:wordsUserName, :wordsUserPassword, :wordsUserMail, :wordsUserRegDate)";
        $Parameter = array(":wordsUserName" => $UserName, ":wordsUserPassword" => $Password_hashed, ":wordsUserMail" => $Mail, ":wordsUserRegDate" => $Registration_Date);
        $Registered = $Connection->Execute_PDO_Command($Query, $Parameter);
    } else {
        $_SESSION["Registration_Error"] = TRUE;
        header("Location: ../index.php");
    }
}

允许所有用户对该目录进行读写。修复所有权和权限,以便 www-data 可以读取和写入 (rwx)。例如:

chgrp www-数据/var/lib/php5/sessions

chmod g+rwx /var/lib/php5/sessions

$_SESSION 的基本特性和用途在版本 4 中弃用 $HTTP_SESSION_VARS 后在 PHP 版本中没有改变,它仍然得到妥善维护,跨页面持续存在并且超级全局变量。 然而,它在 PHP 的较低版本中具有更高的容错性,从 5.4 开始比从 5.5 开始(含 5.6)更高。

一般规则,在调用 session_start() 函数之前不要输出任何内容,这将启动会话变量的创建或现有会话变量的重新启动。

但是,较低版本的 PHP 可以容忍 session_start() 语句之前的黑色间隙,您的脚本仍然 运行 没问题,但较高版本则不行允许这个。 因此,要回答您的问题,请确保您的脚本总是这样开始的。

在任何其他代码之前,使用 @ 来禁止任何警告,以防您在链接到当前脚本的脚本上启动它。