我是一个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>";
}
?>
任何想法都是我做错了吗?它要么留下空白页面,要么留下错误。 我知道这可能是一个新手错误,但对于我的生活,我不知道什么是错的。
非常感谢任何帮助!
答案 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>";
}
?>