2017-08-11 66 views
-4

特定的用戶,我嘗試了簡單的PHP頁面。我正在嘗試以下內容:顯示文本只適用於PHP

<?php 
include("db/db_config.php"); 
session_start(); 
$user_check=$_SESSION['login_user']; 

$ses_sql = mysqli_query($bd, "SELECT username FROM cmn_users where username='$user_check'"); 

$row=mysqli_fetch_array($ses_sql); 

$login_session=$row['username']; //get session username 

echo ("<p style='text-align:left;'><h1>HEADER WILL COME UP <span style='float:right;'><a href='/admin.php'>ADMIN</a> | <a href='/logout.php'>Logout</a></h1></span></p>"); 

?> 

我想僅顯示特定用戶的管理頁面(鏈接)。如果管理員用戶沒有登錄,就應該將管理員隱藏在loggout附近......我該怎麼做?

我有會話的用戶ID,但我不知道如何控制PHP/HTML文本。

幫助這個將是巨大的。

謝謝!

+2

到目前爲止您嘗試過什麼?我只看到一串內嵌HTML的回聲...... – Fyntasia

+0

那麼,你怎麼知道某人是管理員?你將如何構建這個'if'語句?當你嘗試*構造'if'語句時會發生什麼? – David

+0

@Fyntasia:正如我所說的,我已經獲得了會話的用戶標識和管理員控制,或者沒有詳細信息。我想知道如何使用IF語句與HTML。我該怎麼做? –

回答

0

你需要存儲在你的變量HTML鏈接,並使用它們在需要的地方,這樣,

<?php 
include("db/db_config.php"); 
session_start(); 
$user_check=$_SESSION['login_user']; 

$ses_sql = mysqli_query($bd, "SELECT username FROM cmn_users where username='$user_check'"); 

$row=mysqli_fetch_array($ses_sql); 
$login_session=$row['username']; //get session username 
$adminLink = " <a href='/admin.php'>ADMIN</a> | "; 
$logoutLink = " <a href='/logout.php'>Logout</a>"; 
?> 

//假設你的HTML標題鏈接容器

<div> 
    <p style='text-align:left;'><h1>HEADER WILL COME UP <span style='float:right;'><?php echo $adminLink.$logoutLink ?> 
    </h1></span></p> 
</div> 

===== =======================================

管理頁面上阻止ACCES
<?php 
// start session 
session_start(); 
// check if username is admin 

replace it with your admin user name 

$adminUsername = "admin"; 
if($_SESSION['login_user'] !== $adminUsername){ 
    // isn't admin, redirect them to a different page 
    header("Location: /someotherpage.php"); 
} 

?> 
+0

但是管理頁面只會顯示給所有用戶。我只想爲特定用戶顯示管理員頁面。 –

+0

那麼,你的意思是阻止其他用戶訪問管理頁面?你也可以傾倒你的會議並在這裏展示? –

+0

如果它對你有幫助,你能回答嗎? –

2

如果會話用戶id是這則表明管理員

您的語句的語義是你的確切代碼:

if ($_SESSION['username'] == 'admin') { 
    // output the admin stuff 
} 

(或者無論你檢查,如果用戶是管理員。基於用戶名,一些標識,別的事情,等你的問題沒有指定。)

所以你輸出什麼是管理環節之前,則有條件地輸出管理鏈接,然後輸出無論是後。類似這樣的:

echo "<p style='text-align:left;'><h1>HEADER WILL COME UP <span style='float:right;'>"; 
if ($_SESSION['username'] == 'admin') { 
    echo "<a href='/admin.php'>ADMIN</a> | "; 
} 
echo "<a href='/logout.php'>Logout</a></h1></span></p>"; 

還有很多其他的方法可以構造它。也許將結果鏈接存儲在變量中,並根據需要將它們有條件地連接起來,然後在結尾處僅存儲一次結果echo

但概念是一樣的,但是你做到這一點。如果用戶是管理員,則輸出管理員鏈接。這樣,如果用戶不是管理員,他們永遠不會看到該鏈接。

注:管理頁面本身還必須實現的安全性。沒有什麼可以阻止用戶從猜測鏈接並試圖打開該頁面。不要認爲你的問題中的方法是安全的。這不過是用戶體驗。