2015-11-11 108 views
0

我開發了一個簡單的聊天系統。我正在嘗試讓管理員顏色在聊天用戶中脫穎而出。我的方法使用會話用戶名,如果會話用戶名是admin,則會變爲所有人的文本顏色爲紅色。我如何做到這一點,只有管理員顏色是紅色的(其​​他人都是黑色的)?聊天管理員不同的顏色?

這裏是我的PHP代碼:

<?php 
    error_reporting(E_ALL & ~E_NOTICE); 
    session_start(); 

    if (isset($_SESSION['id'])) { 
     $userId = $_SESSION['id']; 
     $username = $_SESSION['username']; 
     $userLabel = $_SESSION['nickname']; 
    } 

    $connect = mysqli_connect("", "", "", "root"); 
    mysqli_select_db($connect, "webclyde_root");  
    $result1 = mysqli_query($connect, "SELECT * FROM chat ORDER by id DESC"); 
    while ($extract = mysqli_fetch_assoc($result1)) { 
     if ($username == "admin") { 
      echo "<br><b><font color='#D00003'>" . $extract['name'] . ":</b></font> " . $extract['message']; 
     } 
     else { 
      echo "<br><b><font color='#000000'>" . $extract['name'] . ":</b></font> " . $extract['message']; 
     } 
    } 
?> 

回答

3

font標籤不支持HTML5。使用CSS樣式屬性代替,例如:

echo "<br><b><p style='color:#D00003'>" . $extract['name'] . ":</b></p>" . $extract['message']; 

例爲的if/else邏輯:

if($username=="admin"){ 
    $color = "#D00003"; 
} else { 
    $color = "#000000"; 
} 

echo "<p style='color:".$color."'>". $extract['name'] . "</p>"; 

或者使用所提及的,而不是if/else語句聲明RamRaider:

$color = $username=='admin' ? 'red' :'black'; 

另外,您正在檢查會話$ username是否爲'admin'。我可以想象你想檢查數據庫中的用戶名是否是'admin'。在這種情況下,在if語句中用$ extract ['name']替換$ username。

祝你好運!

+0

謝謝你,我會用這個。但是這並不能解決我的問題。 –

+0

當用戶名!= admin時,您必須編寫和聲明並將顏色更改爲黑色。 – piscator

+2

嘗試像'$ color = $ username =='admin'這樣的事情? '紅':'黑';' – RamRaider

1

與此更換你的while語句:

while ($extract = mysqli_fetch_assoc($result1)) { 
    if ($username == "admin") { 
     $color = '#D00003'; 
    } 
    else { 
     $color = '#000000'; 
    } 
    echo "<br><b><font style='color:".$color."'>" . $extract['name'] . ":</b></font> " . $extract['message']; 
} 
+0

感謝您的回覆,不幸的是同樣的問題。也許這是因爲$ username是一個會話變量?我不確定。 –

+0

@GavinYouker可以在$ connect變量echo $ username之上添加這個嗎?只是爲了檢查你所得到的。 – Kimchuy