PHP新手帮助:否则如果 - 我做错了什么?

时间:2013-04-03 23:26:31

标签: php if-statement

我是一个PHP新手,所以请光临我......

我有以下代码,我与成员脚本一起使用,该脚本显示页面的成员用户名或要求访客登录或注册。

PHP代码:

if ($_SESSION['username'])
{
echo "".$_SESSION['username'].", you are logged in.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
}
else
echo "Welcome Guest!<br><small><a href=\"login.php\">Login</a> or <a href=\"register.php\">Register</a></small>";

它的效果非常好,但现在我想修改它,所以如果有管理员权限的用户登录它,则会识别用户名并提供指向管理页面的链接。

所以这是我修改过的代码:

<? php
$validateadmin = $_SESSION['username'];
if ($validateadmin == "admin1" or $validateadmin == "admin2")
  {
echo "Hello $validateadmin, you have <a href=\"admin.php\">admin</a> privileges.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
  }
else if ($_SESSION['username'])
  {
echo "".$_SESSION['username'].", you are logged in.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
 }
else
  {
echo "Welcome Guest!<br><small><a href=\"login.php\">Login</a> or <a href=\"register.php\">Register</a></small>";
 }
 ?>

任何想法都是我做错了吗?它要么留下空白页面,要么留下错误。 我知道这可能是一个新手错误,但对于我的生活,我不知道什么是错的。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

一般情况下你应该在php中使用elseif而不是“else if”因为php解析器会解释else as else else {if {....}}并且你可能会有一些奇怪的错误。

此外,总是使用带控制语句的大括号来避免悬空条款。

另外,为了避免关于数组索引的注意事项,如果索引可能不存在,则不执行if($ array [$ index])之类的检查。使用array_key_exists,isset,empty等中的任何一个(它们都略有不同)来检查数组是否包含您要查找的键。

答案 1 :(得分:0)

尝试以下

<?php #removed space
session_start(); #you will need this on all pages otherwise remove it if already called
$validateadmin = $_SESSION['username'];

if($validateadmin == "admin1" || $validateadmin == "admin2"){
    echo "Hello $validateadmin, you have <a href=\"admin.php\">admin</a> privileges.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
}elseif(isset($_SESSION['username'])){ #you should use isset to make sure some variable is set
    echo $_SESSION['username'].", you are logged in.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
}else{
    echo "Welcome Guest!<br><small><a href=\"login.php\">Login</a> or <a href=\"register.php\">Register</a></small>";
}
?>