Php 致命错误:无法对第9行中的表达式结果使用isset()(可以改为使用“null!==expression”)

Php 致命错误:无法对第9行中的表达式结果使用isset()(可以改为使用“null!==expression”),php,Php,我真的是个编程新手…我不知道问题出在哪里…有人能帮我吗?TIA <?php $_SESSION['username']= $_POST['username']; $_SESSION['password']= $_POST['password']; //here it comes the line 9 if (isset($_SESSION['username']== "magister") && isset($_SESSION['password']== "signum")

我真的是个编程新手…我不知道问题出在哪里…有人能帮我吗?TIA

<?php
$_SESSION['username']= $_POST['username'];
$_SESSION['password']= $_POST['password'];
//here it comes the line 9
if (isset($_SESSION['username']== "magister") && isset($_SESSION['password']== "signum"))
{
    header("location:teacher.php");
}
else
{
   if(isset($_SESSION['username']) && isset($_SESSION['password']))
   {
      header("location:student.php"); 
   }
}

您不需要使用isset()函数两次。因为isset()函数用于检查是否设置了变量。所以只需删除另一个isset()函数

    <?php
      $_SESSION['username']= $_POST['username'];
      $_SESSION['password']= $_POST['password'];
      //here it comes the line 9
      if ($_SESSION['username'] == "magister" && $_SESSION['password']== "signum")
      {
           header("location:teacher.php");
      }
      else
      {
          header("location:student.php"); 
      }

您首先需要了解
isset()的作用。它是这样做的:它检查提供给它的参数是否是set。如果未定义参数,它将返回
false

在您的情况下,我认为您需要检查post数据是否已设置。为此,您需要首先检查以下内容:

if(isset($_POST['username']) && isset($_POST['password'])) {
    // rest of the code
}
之后,您将比较用户名和密码是否匹配,然后将用户重定向到特定页面

这是密码

<?php 
if (isset($_POST['username']) && isset($_POST['password'])) { 
    $_SESSION['username'] = $_POST['username'];
    $_SESSION['password'] = $_POST['password']; 
    if ($_SESSION['username'] == "magister" && $_SESSION['password'] == "signum") { 
        header("location: teacher.php"); 
    } else if($_SESSION['username'] == "something" && $_SESSION['password'] == "somethingElse") {
        header("location: student.php"); 
    } else {
          // redirect somewhere else like to login.php
    }
}

您可能想在PHP手册网站上阅读关于
isset
的用途以及里面的内容。您有一个表达式,这是不允许的。您只需检查
isset($\u SESSION['username'])&&$\u SESSION['username']=='magister'
您必须拥有
SESSION\u start()在所有使用会话的页面顶部。我忘了粘贴它,但我在顶部有一个会话\ u start()!!!tks!!你为什么要检查它是否设置好了?您刚刚在前面的几行中分配了变量。在这种情况下,isset并没有真正的帮助,因为您已经在第2行和第3行中设置了变量。缺少括号,或者是您想要的?(isset($会话['username']==“magister”&&&$会话['password']==“signum”)?您期望它如何工作isset($会话['username']==“magister”&&$会话['password']==“signum”)TechGenz托管,我尝试过这样做,但我仍然有一条消息:致命错误:无法对表达式的结果使用isset()(您可以使用“null!==expression”改为“…”:(只需删除isset()函数,您不需要该函数。非常感谢您,正如我所说,我仍在学习(自己学习),一点也不容易。我会尽力去做的,!!!。是的,我明白。提问没有问题。无论如何,如果你认为你的问题已经解决,请将这个答案标记为已接受。:)