请帮助我编写代码,我不知道错误在哪里
$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。