2013-07-21 9 views
0

Как сказано в названии, я пытаюсь понять, могу ли я сделать объекты в виде кнопки, чтобы таблица была невидимой или скрытой (независимо от атрибута). Я никогда не учитывал это раньше, но я пытаюсь изучить веб-дизайн и должен это сделать. Bascially im пытается одновременно иметь сайт и CMS. Поэтому, когда мой администратор входит в систему, я хочу, чтобы объекты certina были видны только ему. и когда я вхожу в учетную запись пользователя, отображаются только обычные вещи и кнопки редактирования/вставки/обновления.
ниже я вставил мою проверку входа, которая находится на каждой странице. Спасибоскрыть или показать объекты в зависимости от пользователя, зарегистрированного в

<?php 
$saved = false; 
session_start(); 
error_reporting(0); 
if (!array_key_exists('userName', $_SESSION)) { 
    header('Location: index.php'); 
} 

-

<form name="form" action="<?php echo $editFormAction; ?>" method="POST"> 
    <table width="600" border="1"> 
    <tr> 
     <td><span id="sprytextarea1"> 
     <label for="content">content</label> 
     <textarea name="content" id="content" cols="45" rows="5"></textarea> 
     <span class="textareaRequiredMsg">A value is required.</span></span></td> 
    </tr> 
    <tr> 
     <td>submit 
     <input type="submit" name="submit" id="submit" value="Submit" /></td> 
    </tr> 
    </table> 
    <input type="hidden" name="MM_insert" value="form" /> 
</form> 
+0

Start статический HTML издеваться , Создайте два файла HTML: один с кнопкой и столом, а один без него. Сравните эти две версии, подумайте о том, как вы можете объединить их вместе в динамическом варианте PHP. – hakre

ответ

1

Это довольно легко. Поскольку вы уже знаете, зарегистрированы ли они на каждой странице, вы можете просто проверить их в HTML-странице страницы. Простая идея ниже:

<html> 
    <head></head> 
    <body> 
     <?php if ($_SESSION['userName'] == 'whateverTheNameShouldBe') : ?> 
      <span>Edit</span> 
     <?php endif; ?> 
    </body> 
</html> 

Что бы я сделал, хотя это добавить ключ к $ _SESSION, который указывает, является ли пользователь администратором или нет. $ _SESSION ['isAdmin'], который может быть истинным/ложным логическим. Затем вы можете сделать что-то вроде этого:

<html> 
    <head></head> 
    <body> 
     <?php if ($_SESSION['isAdmin']) : ?> 
      <span>Edit</span> 
     <?php endif; ?> 
    </body> 
</html> 

Поскольку вы можете вставлять PHP в HTML, это очень легко контролировать то, что вы делаете, и не показывают в HTML-страницах. Все, что вам нужно сделать, это то, что ваш $ _SESSION содержит необходимые флаги, которые вы можете использовать в случае наличия/отсутствия.

Обратите внимание, что вам не рекомендуется использовать глобальный var $ _SESSION. В идеале вам нужен какой-то класс обработчика сеансов, который хранит сеансы в базе данных, но это может быть немного избыточным для того, чего вы пытаетесь достичь.

1

Код, который вы предоставили, не поможет вам каким-либо образом ... Если вы хотите такую ​​CMS, вам нужно иметь таблицу, содержащую информацию о пользователях, возможно, вы должны иметь, если да, чем добавить столбец называется user_level, после того, как у вас есть этот столбец, вы можете иметь разные типы пользователей, такие как admin, superadmin, manager, employee и т. д., теперь, когда пользователь входит в систему, извлекает пользовательский уровень из базы данных и сохраняет его в сеансе, подобном этому

$_SESSION['user_level'] = $fetched_data['user_level']; 

После того, как вы сохранили уровень пользователя в сеансе, вы можете просто использовать, если условие, чтобы проверить, является ли пользователь этого конкретного уровня и показать данные соответственно, например

if($_SESSION['user_level'] == 'admin') { 
    //The HTML or PHP code here will be only available for user having a user level of admin 
} 

Так что в вашем случае, если вы хотите, чтобы показать кнопки только админом вы можете сделать это, как этот

<?php 
if($_SESSION['user_level'] == 'admin') { 
?> 
<form method="post"> 
    <input type="submit" name="whatever" /> 
    <!-- Other Fields --> 
</form> 
<?php 
} 
?> 

выше фрагмент кода будет работать только если userlevel пользователя LoggedIn является admin ,

Также вы можете сделать это, чтобы другие пользователи не просматривали некоторые страницы, предназначенные только для администратора, например панель управления, поэтому вы можете написать это условие в верхней части страницы, чтобы узнать, является ли пользователь администратором, чем показать страница еще перенаправлять пользователя на главную страницу

<?php 
    session_start(); 
    if($_SESSION['user_level'] != 'admin') { 
    header('Location: home.php'); 
    exit; 
    } 
?> 

Примечание: Всегда используйте session_start() в верхней части страницы, прежде чем запустить любой PHP-код или HTML

+0

Благодарим вас за помощь. Но после того, как если вы проверите для администратора. Мне не удалось выполнить этот код. в основном я не уверен, как разместить таблицу, которую я хочу показать, если администратор зарегистрирован. (добавлен код тоже кнопка оригинального вопроса) – kemnet

+0

@kemnet в первую очередь вы сделали столбец с пользовательскими уровнями? и вы набрали уровень пользователя в сеансе var? –

+0

Да, я создал столбец в моей базе данных, и я хочу эту строку, если ($ _ SESSION ['user_level'] == 'admin') {и т. Д. – kemnet

Смежные вопросы