Отображать значок в профиле, если пользователь был определен как $admin

#php

#php

Вопрос:

Я работаю над небольшим форумом, и я хочу, чтобы было легко идентифицировать сотрудника.

На данный момент пользователь определен как $admin в файле конфигурации:

 <?php
/******************************************************
------------------Required Configuration---------------
Please edit the following variables so the forum can
work correctly.
******************************************************/

//We log to the DataBase
mysql_connect('127.0.0.1', 'root', '');
mysql_select_db('forum_database');

//Forum Staff
$admin='The_Darthonian'; // For admin forum features

/******************************************************
-----------------Optional Configuration----------------
******************************************************/

//Forum Home Page
$url_home = 'index.php';

//Design Name
$design = 'default';


/******************************************************
----------------------Initialization-------------------
******************************************************/
include('init.php');
?>
  

У меня есть значок по пути default/images/role_moderator.gif , который я хочу отобразить в профиле, если пользователь определен как администратор

У меня также есть переменная userid. Например, первая учетная запись будет 1, затем вторая 2 и так далее, Которые являются уникальными. Ниже приведен код профиля:

 <?php
//This page display the profile of an user
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
        <title>User Profile</title>
    </head>
    <body>
        <div class="header">
            <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Forum" /></a>
        </div>
        <div class="content">
<?php
if(isset($_SESSION['username']))
{
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
    <div class="box_left">
        <a href="<?php echo $url_home; ?>">Home</a> amp;gt; <a href="users.php">Users</a> amp;gt; Profile
    </div>
    <div class="box_right">
        <a href="list_pm.php">Your messages(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Logout</a>)
    </div>
    <div class="clean"></div>
</div>
<?php
}
else
{
?>
<div class="box">
    <div class="box_left">
        <a href="<?php echo $url_home; ?>">Home</a> amp;gt; <a href="users.php">Users</a> amp;gt; Profile
    </div>
    <div class="box_right">
        <a href="signup.php">Sign Up</a> - <a href="login.php">Login</a>
    </div>
    <div class="clean"></div>
</div>
<?php
}
if(isset($_GET['id']))
{
    $id = intval($_GET['id']);
    $dn = mysql_query('select username, email, avatar, signup_date from users where id="'.$id.'"');
    if(mysql_num_rows($dn)>0)
    {
        $dnn = mysql_fetch_array($dn);
?>
This is the profile of "<?php echo htmlentities($dnn['username']); ?>" :
<?php
if($_SESSION['userid']==$id)
{
?>
<br /><div class="center"><a href="edit_profile.php" class="button">Edit my profile</a></div>
<?php
}
?>
<table style="width:500px;">
    <tr>
        <td><?php
if($dnn['avatar']!='')
{
    echo '<img src="'.htmlentities($dnn['avatar'], ENT_QUOTES, 'UTF-8').'" alt="Avatar" style="max-width:100px;max-height:100px;" />';
}
else
{
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
            <title></title>
        </head>
        <body>
            <?php
            ?>
            <div>
            <img src="default/images/no_avatar.jpg" alt="no_avatar" />
            </div>
        </body>
    </html>
<?php
}
?></td>
        <td class="left"><h1><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></h1>
        This user joined the website on <?php echo date('Y/m/d',$dnn['signup_date']); ?></td>
    </tr>
</table>
<?php
if(isset($_SESSION['username']) and $_SESSION['username']!=$dnn['username'])
{
?>
<br /><a href="new_pm.php?recip=<?php echo urlencode($dnn['username']); ?>" class="big">Message "<?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?>"</a>
<?php
}
    }
    else
    {
        echo 'We could not find this user anywhere. Prehaps their account was removed.';
    }
}
else
{
?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
            <title></title>
        </head>
        <body>
            <?php
            ?>
            <div>
            <img src="/default/images/no_avatar.jpg" alt="no_avatar" />
            </div>
        </body>
    </html>
<?php
}
?>
        </div>
        <div class="foot"><a href="about.php">About Us</a> - <a href="termsofservice.php">Terms of Service</a></div>
    </body>
</html>
  

Как я могу сделать так, чтобы, если пользователь определен как $admin в конфигурации, значок отображался в его профиле?

Комментарии:

1. Обязательно ли использовать конфигурационный файл? Если да, то почему? если нет, то я бы рекомендовал просто добавить еще один столбец в таблицу users с именем «admin» как логическое значение и просто установить для него значение true или false, если они являются администраторами форума.

2. @Kitson88 В настоящее время я использую if(isset($ _SESSION[‘username’]) и $ _SESSION[‘username’]== $admin). Как я могу изменить это, чтобы работать с переменной, называемой «модератор» в mysql?

3. Просто добавьте столбец и установите для него значение 0 (FALSE) по умолчанию при создании нового пользователя, и когда пользователь войдет в систему, и вы извлекаете информацию о пользователях из MySQL, вы можете либо установить переменную сеанса для хранения значения, либо использовать аналогичный оператор if: if(isset($_SESSION[‘username’],$_SESSION[‘mod’] ) и $_SESSION[‘username’]==$admin и $ _SESSION[‘mod’]==1) { echo «Вы администратор»; } else { echo «Вы не администратор»; }

4. Я создал логическую переменную в mysql под названием moderator (я переименовал моды в moderator в вашем комментарии выше). Я установил свой собственный статус модератора на 1, и все равно ничего. Кроме того, не могли бы вы удалить $admin из кода, я хочу, чтобы он полагался только на переменную msql.

5. Это новый код, который я имею — <?php if(isset($_SESSION[‘moderator’] ) and $_SESSION[‘moderator’]==1) { echo «You are admin»; } else { echo «You are not admin»; } ?> — Тем не менее, он по-прежнему говорит, что я не админ при доступе к странице.