2010-05-26 122 views
0
<?php 
if (!isset($_SESSION['loginAdmin']) || ($_SESSION['loginAdmin'] == '')) { 
    header ("Location: loginam.php"); 
} else { 
    include('head2.php'); 
} 


    if (!isset($_SESSION['login']) || ($_SESSION['login'] == '')) { 
    header ("Location: login.php"); 
} else { 
    include('head3.php'); 
} 

?> 

我真的堅持在這個問題。我想要做的是能夠根據輸入的信息將用戶重定向到另一個頁面。需要幫助的PHP如果陳述

我的問題是:

如果這個說法是正確的:

else { 
     include('head3.php'); 
    } 

這一個也將是如此:

if (!isset($_SESSION['loginAdmin']) || ($_SESSION['loginAdmin'] == '')) { 
     header ("Location: loginam.php"); 
    } 

帶領我到登錄頁面,無論我聯繫或者只是普通用戶。是否有可能兩個獨立的兩個if語句,這樣,如果這是真的:

else { 
    include('head3.php'); 
} 

那麼這種說法不應該得到的方式和重定向我回到登錄頁面:

if (!isset($_SESSION['loginAdmin']) || ($_SESSION['loginAdmin'] == '')) { 
    header ("Location: loginam.php"); 
} 
+0

我假設你在開始標記之後開始會話,對吧? – Babiker 2010-05-26 05:33:17

+0

開幕後有沒有什麼不對? – user225269 2010-05-26 06:08:09

回答

1

你可以做的是...有一個名爲用戶類型變量...

$_SESSION['usertype'] = 1 //for admin 
$_SESSION['usertype'] = 2 //for regular user 

現在根據用戶的類型,你可以將用戶重定向。

if($_SESSION['usertype'] == 1) 
header ("Location: admin.php"); 
else if($_SESSION['usertype'] == 2) 
header ("Location: user.php"); 
2

發送Location:頭之後始終使用exit

提示:(!isset($var || $var == '')可以縮短爲empty($var)

+0

當我這樣做時,我得到兩個標題。 – user225269 2010-05-26 05:49:19

+0

@ user225269所以,這就是爲什麼我告訴你使用退出。防止獲得2個標題。無論如何,無論你得到什麼,你都應該在地點之後使用退出。你最好開始理解這一點。 – 2010-05-26 09:45:14