2015-06-19 4 views
0

Это мой столPHP MySQL Администратор Уровень

CREATE TABLE `users` (
    `id` INT(11) NOT NULL AUTO_INCREMENT, 
    `firstname` VARCHAR(255) NOT NULL, 
    `lastname` VARCHAR(255) NOT NULL, 
    `email` VARCHAR(255) NOT NULL, 
    `username` VARCHAR(255) NOT NULL, 
    `password` VARCHAR(100) NOT NULL, 
    `level` ENUM('0','1') NOT NULL DEFAULT '0', 
    PRIMARY KEY (`id`) 

пользователь Так позволяет сказать, что я нахожусь на index.php

Я хочу, что если уровень пользователя = 1, то он может увидеть ссылку появляется на стр. Другой разумный, если уровень = 0, он никогда не увидит эту ссылку.

Как это сделать?

+0

и где ваш код PHP? – RxV

+0

какая часть вам нужна? – Johnny

+0

Я просто хочу добавить как if (level = 1) { }. разве это не так? – Johnny

ответ

0

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

+0

вот так? if (isset ($ _ SESSION ['level = 1'])) { эхо "ссылка"; } – Johnny

+0

@ Миста Джош выше иллюстрирует идею довольно хорошо. Сначала необходимо установить уровень в своей базе данных, а затем установить значение сеанса на основе записи базы данных уровня, как и он. –

+0

@ KyleBooth он упомянул, что он не знал, как написать код, просто давая ему теорию, что вы на самом деле не отвечаете на вопрос 100%, следовательно, мой ответ (не так уж и важно в любом случае). – Josh

1

Думаю, вы хотите что-то подобное.

в модуле авторизации сделать что-то вроде этого

session_start(); 
$_SESSION['level'] = 1; // passed the level from you database. 

и в ваших страницах.

session_start(); 
if (isset($_SESSION['level']) && (int) $_SESSION['level'] === 1) { 
    echo '<a>Link for admin</a>'; 
} 
+0

Cookie может быть другой альтернативой таким же образом. –

+0

модуль входа, который вы имеете в виду в моем login.php? – Johnny

+0

только что заметил, что ссылка показывается всем – Johnny

0

Вы можете использовать $ _SESSION. Так, например, когда ваш пользователь входит в систему, вы можете установить переменную сеанса для уровня, таких как:

Когда ваш пользователь входит в систему:

session_start(); // You must use this at the beginning of every page you use $_SESSION on 
// Query here to select your user 
$mysqli = new mysqli(HOST_NAME, DB_USER, DB_PASSWORD, DB_NAME); 
//$username is the username of the user who is logging in. 
$sql = "SELECT * FROM users WHERE username = '$username'"; 
$mysqli->query($sql); 

if ($result && $result->num_rows > 0) 
{ 
    while ($row = $result->fetch_assoc()) 
    { 
     $_SESSION['level'] = $row['level']; 
    } 
} 

На странице index.php (или любой другой страницы, которую вы хотите проверить уровень пользователя):

session_start(); // This is reqd once on any page you use $_SESSION 
// Then on your page you can use 
if (!empty($_SESSION['level']) && $_SESSION['level'] == 1) 
{ 
    echo '<a href="">Your Link</a>'; 
} 
+0

это мой index.php http://pastebin.com/bA1tTq5c, и это мой логин .php http://pastebin.com/5k4xsAxs – Johnny

0
<?php 
try { 
    $dbh = new PDO("mysql:host=localhost;dbname=dbName", 'dbUser', 'dbPassword'); 

    //Check username and password 
    /*** The SQL SELECT statement ***/ 
    $sth = $dbh->prepare("SELECT level FROM user WHERE username = ? and password = ?"); 
    $sth->execute(array('user2[email protected]', '2222')); // these values are passed via SESSION, POST, etc 
                //make sure to encrypt password 
    $user = $sth->fetch(PDO::FETCH_ASSOC); 

    if(!empty($user) && $user['level'] == 1) { 
     echo "link"; 
    } else { 
     echo "no-link"; 
    } 

    /*** close the database connection ***/ 
    $dbh = null; 
} catch (PDOException $e) { 
    echo $e->getMessage(); 
} 
Смежные вопросы