2017-03-27 16 views
-4

请帮助我的代码我不明白哪里是事先错误PHP如果{} elseif的{}否则{}语法错误

$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"); } 

日Thnx

+3

'else'不符合条件。另外,单个'='是赋值;如果您想比较两个值是否相等,请使用'=='或'==='。 – Ryan

+0

另请参阅[The 3 different equals](http://stackoverflow.com/questions/2063480/the-3-different-equals) –

+0

你的错误是什么? – chris85

回答

0

替换代码

$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"); } 
+0

thnx我使用==为if语句 –

+0

anser帮助,这样您可以在anser左侧单击(向上箭头),然后单击右侧标记 –

0

您发现了所有新PHP开发人员的根本错误:

  • if($a=$b)分配声明。它将$b设置为任何正确的值。
  • if($a==$b)是比较声明。它比较两个值而不改变任何东西。

将您的对账单更改为($userrole=='…')

0

试试这个

$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或else如果。我是一名C++程序员,但我做了一点PHP。