1

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

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

他们是否改变了在 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");
    }
}
4

2 回答 2

2

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

chgrp www-data /var/lib/php5/sessions

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

于 2016-02-29T07:27:03.320 回答
1

$_SESSION 的基本特性和用途在 PHP 版本 4 中弃用 $HTTP_SESSION_VARS 后并没有改变,它仍然得到适当的维护,跨页面持久化和超级全局变量。然而,它在较低版本的 PHP 中更容错,从 5.4 向下比从 5.5 向上(包括 5.6)。

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

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

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

于 2018-09-07T14:20:22.323 回答