
PHP - Admin/Member prostředí
Zdravím, potřeboval bych pomoci s PHP funkcí, která by uživatelovi s hodností "admin" zobrazila obsah ale uživateli "uživatel" ne. Jak to tedy myslím? Mám stránku na kterou se dostane jak admin tak uživatel, ale pak mám administraci a tam chci aby se dostal pouze admin. Může mi prosím někdo poradit, jak toho docílit v tomto scriptu?
user.php
<?php
include('password.php');
class User extends Password{
private $_db;
function __construct($db){
parent::__construct();
$this->_db = $db;
}
private function get_user_hash($nick){
try {
$stmt = $this->_db->prepare('SELECT heslo FROM uzivatele WHERE nick = :nick AND aktivni="Yes" ');
$stmt->execute(array('nick' => $nick));
$row = $stmt->fetch();
return $row['heslo'];
} catch(PDOException $e) {
echo '<p>'.$e->getMessage().'</p>';
}
}
public function login($nick,$heslo){
$hashed = $this->get_user_hash($nick);
if($this->password_verify($heslo,$hashed) == 1){
$_SESSION['loggedin'] = true;
return true;
}
}
public function logout(){
session_destroy();
}
public function is_logged_in(){
if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true){
return true;
}
}
}
?>
login.php
<?php
//include config
require_once('includes/config.php');
include 'header.php';
//check if already logged in move to home page
if( $user->is_logged_in() ){ header('Location: index.php'); }
//process login form if submitted
if(isset($_POST['prihlasit'])){
$nick = $_POST['nick'];
$heslo = $_POST['heslo'];
if($user->login($nick,$heslo)){
$_SESSION['nick'] = $nick;
header('Location: profile.php');
exit;
} else {
$error[] = 'Neplatné přihlašovací jméno nebo heslo.';
}
}
?>
Toto je celý script, který by mohl být nějak upravený. V config.yml mám ještě vytvoření třídy User. Následně pak ověřuji přístup na stránky pomocí "if(!$user->is_logged_in()){ header('Location: login.php'); }". V databázi mám hotovou tabulku s název hodnosti, tudíž zbývá jen vytvořit funkci. Bohužel se s tím piplám již druhým dnem, a nic není 100%. Proto bych poprosil vaší pomoc. Díky.