php if{} elseif{} else{} syntax error



请帮助我编写代码,我不知道错误在哪里

$userrole = $row['type'];
if ($userrole = "admin") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../index.php"); 
} elseif ($userrole = "encoder") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../mencode.php"); 
} elseif ($userrole = "verifier") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../mverify.php"); 
} else ($userrole = "approver") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../mapproved.php"); } 

提前感谢

在代码中替换

   $userrole = $row['type'];
if ($userrole == "admin") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../index.php"); 
} elseif ($userrole == "encoder") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../mencode.php"); 
} elseif ($userrole == "verifier") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../mverify.php"); 
} elseif ($userrole == "approver") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../mapproved.php"); } 

你犯了所有新PHP开发人员的根本错误:

  • if($a=$b)是一个赋值语句。它将$b设置为右侧的任何内容。
  • if($a==$b)是一个比较语句。它比较两个值而不更改任何内容。

将您的语句更改为 ($userrole=='…')

试试这个

$userrole = $row['type'];
if ($userrole == "admin") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../index.php"); 
} elseif ($userrole == "encoder") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../mencode.php"); 
} elseif ($userrole == "verifier") {
        $_SESSION['name'] = $row['name'];
        header("Location: ../mverify.php"); 
} else {
        $_SESSION['name'] = $row['name'];
        header("Location: ../mapproved.php"); } 

您的 if 语句必须是比较运算符==而不是赋值运算符=

此外,else是一个包罗万象的,因此您不会像使用 if 或 if 那样为其提供比较值。我是一名 c++ 程序员,但我做了一点 PHP。

相关内容

最新更新