2013-04-03 70 views
0

我是一個PHP新手,所以請裸露在我身邊...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

你看到什麼錯誤? – Tchoupi 2013-04-03 23:27:30

+2

你的開放php標籤有一個空格'<? php'。這是一個錯字嗎? – Tchoupi 2013-04-03 23:29:00

+0

當不需要更多處理時,爲什麼不退出(0)? (你不要,然後寫一連串的悲劇事件;)...) – Ihsan 2013-04-03 23:31:02

回答

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

謝謝Class !,這是一個巨大的幫助,並完美地工作。我只需要刪除session_start,因爲它已經在我的header.php模板的頂部被調用了。非常感謝!!! – HollyT9 2013-04-04 06:57:10

2

一般來說,你應該在php中使用elseif而不是「else if」,因爲php解析器會解釋別的if if else {if {....}}並且你可能有一些奇怪的錯誤。

此外,總是在控制語句中使用大括號以避免懸掛子句是一種很好的做法。

此外,爲避免有關數組索引的通知,如果索引可能不存在,請不要執行像if($ array [$ index])這樣的檢查。使用任何array_key_exists,isset,空等(它們都略有不同)來檢查數組是否包含您正在查找的鍵。

+0

感謝您的建議。 – HollyT9 2013-04-04 07:03:32