未定义的变量通知 (PHP)


Undefined variable notice (PHP)

可能的重复项:
PHP:"注意:未定义的变量"和"注意:未定义的索引"

我有一个成员.php页面,其中包含这段代码:

<?php
    if (isset($_SESSION['teacherusername'])) 
    {
        $username = $_SESSION['teacherusername'];
    }
?>

现在在教师登录中.php我使用"包含"来包含来自成员.php页面的代码。我遇到的问题是,如果我打开 teacherlogin.php 页面,它会给我一个未定义的变量错误,指出: Notice: Undefined variable: username in ... on line 25

为什么它说它是未定义的,因为我已经在成员.php页面中定义了它?

以下是教师登录中的代码.php:

<?php
  // PHP code
  session_start(); 
    ini_set('display_errors',1); 
 error_reporting(E_ALL);
// connect to the database
include('connect.php');
include('member.php');
  /* check connection */
  if (mysqli_connect_errno()) {
    printf("Connect failed: %s'n", mysqli_connect_error());
    die();
  }
  // required variables (make them explciit no need for foreach loop)
  $teacherusername = (isset($_POST['teacherusername'])) ? $_POST['teacherusername'] : '';
  $teacherpassword = (isset($_POST['teacherpassword'])) ? $_POST['teacherpassword'] : '';
  $loggedIn = false;
  $active = true;
  if ($username){
      echo "You are already Logged In: <b>{$_SESSION['teacherforename']} {$_SESSION['teachersurname']}</b> | <a href='./teacherlogout.php'>Logout</a>";
  }
  else{
echo "Please Login";
}
?>

它只被定义为 if 块。

$username = "";
if (isset($_SESSION['teacherusername'])) {
    $username = $_SESSION['teacherusername'];
}

变量$username仅由您的成员设置.php当用户登录时。尝试在教师登录.php中使用if(isset($username))而不是if($username)

$username没有

在任何地方定义或使用。

执行与成员相同的操作.php在顶部操作教师登录.php

if (isset($_SESSION['teacherusername'])) {

  $username = $_SESSION['teacherusername']; 
}
$username = null; // ad this line to member.php 
if (isset($_SESSION['teacherusername'])) {
   $username = $_SESSION['teacherusername'];