Stránka 1 z 1

PHP - Admin/Uživatel, prostředí

Napsal: 15 říj 2015 19:03
od MrFiliper
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

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.

Re: PHP - Admin/Uživatel, prostředí

Napsal: 16 říj 2015 22:02
od CZechBoY
Vlastně is_logged_in je taky autorizace. Takže tu metodu prejmenuj a uprav aby kontrolovala jestli má uzivatel na tu stránku práva.
Udelej tu metodu tak, aby si ji mohl pouzit i na generování odkazů.

Re: PHP - Admin/Uživatel, prostředí

Napsal: 17 říj 2015 19:21
od MrFiliper
Mohl by si mi ukázat kód, jak by to vypadalo? Hledal jsme na google, ale je to tam pokaždé nějak jinak.

Re: PHP - Admin/Uživatel, prostředí

Napsal: 20 říj 2015 17:26
od lucAss
S PDO jsem nikdy nedělal, takže je možné, že tam bude někde chyba, nicméně jediné, co Ty potřebuješ, je vytáhnout si z databáze tu hodnost podle nicku a tu pak porovnat.
tj. něco takového:

Kód: Vybrat vše

public function is_user_admin($nick)
    {
        if (
$this->is_logged_in())
        {
            try 
            {
                
$rank $this->_db->prepare("SELECT sloupec pro název hodnosti FROM Tabulka WHERE podmínka = hodnota");
                if (
$rank == pozadovany rank)
                {
                    return 
1;
                } else {
                    return 
0;
                }
            } catch(
PDOException $e
            {
                echo 
'<p>'.$e->getMessage().'</p>';
            }
        }
    }
 

Ještě je možné, že budeš muset vyvolat execute, jak to máš nahoře, to fakt nevím, protože s PDO nedělám a ani jsem nedělal, tak si to musíš upravit - to samé, jako SQL dotaz, ale to snad zvládneš. :D
No a ty už pak jen tu metodu vyvoláš - pokud admin bude, navrátí to 1, pokud ne, 0. Takže v Tvém případu:

Kód: Vybrat vše

if ($user->is_user_admin($_POST['nick'])
{
    echo 
"Vítej, admine!";
} else {
    echo 
"Nejste administrátor.";

Re: PHP - Admin/Uživatel, prostředí

Napsal: 21 říj 2015 22:59
od MrFiliper
Díky moc. Už mi to funguje ;)