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

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
MrFiliper
Level 1
Level 1
Příspěvky: 63
Registrován: 20 bře 2015 22:52

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

Příspěvek 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.
Naposledy upravil(a) MrFiliper dne 28 lis 2015 17:43, celkem upraveno 1 x.
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek 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ů.
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
MrFiliper
Level 1
Level 1
Příspěvky: 63
Registrován: 20 bře 2015 22:52

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

Příspěvek 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.
Uživatelský avatar
lucAss
Level 2
Level 2
Příspěvky: 163
Registrován: 07 bře 2012 16:46

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

Příspěvek 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.";
} 
MrFiliper
Level 1
Level 1
Příspěvky: 63
Registrován: 20 bře 2015 22:52

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

Příspěvek od MrFiliper »

Díky moc. Už mi to funguje ;)
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na „Programování a tvorba webu“