PhP-admin.prostředí

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

PhP-admin.prostředí

Příspěvek od twinky »

Dobrý den,
chtěl bych se zeptat, zda-li funguje nějak napsat v PhP to, že když já jako administrator stránky se přihlásím na web ( dříve udělaná registrace přes databázi) se mi zobrazí například nějaké tlačítko (např.:vlož nového uživatele do databáze - registrace),ale pouze aby to tlačítko jsem viděl já jako admin a né jiní uživatelé ( něco jako, že bych se přihlásil pod určitým,jednotným jménem a heslem a vyhodilo by mi to skryté funkce stránky,které by nikdy jiný nepřihlášený/normální přihlášený člověk neviděl, pouze já.) děkuji .. viz příloha
Nemáte oprávnění prohlížet přiložené soubory.
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od OndraSter »

Samozřejmě, že jde.

V databázi si přidej další sloupec "oprávnění" apod. Když bude v 0, tak je to obyč uživatel a pokud je v 1, tak je to admin. A pokud je to admin, tak to navíc zobrazí to admin menu.
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

ok takže tam mám tabulku uzivatele v te databazi ( id, mail, heslo , atd.. a tam hodim to oprávnění jo přidám? )

jak tohle pak doupravím prosím ( je to pro odkrytí té části pro uživatele)

<?php session_start();
if (isset($_SESSION['id']))
echo "Jste přihlášen";

?>
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od Exp »

Kód: Vybrat vše

function check_rights() {
    $user_rights_query = mysql_query("SELECT opravneni FROM uzivatel WHERE id = $_SESSION['id']");
    $user_rights = mysql_fetch_array($user_rights_query['opravneni']);
    return $user_rights;
}
Tahle funkce ti vrátí oprávnění přihlášeného uživatele. Nevím přesně jak máš udělanou databázi, takže sloupec "opravneni" a tabulku "uzivatel" jsem si vymyslel.

Pak stačí dál operovat s typem oprávnění, např.:

Kód: Vybrat vše

if(check_rights() == 1) {
   include 'jine_menu.php';
}
Samozřejmě je potřeba kontrolovat uživatelova práva na každé stránce, kde se může vyskytovat kód určený pouze pro adminy.
Naposledy upravil(a) Exp dne pon 7. lis 2011, 20:28, celkem upraveno 1 x.
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

ok.. a chtěl bych se zeptat, nešlo by to nějak dosatit místo toho id --- id toho uživatele pro koho chci ten obsah aby viděl?
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

:-/ sakra nejde mi vytvořit sloupeček opravneni

mám to uzivatele ----> mail,id,heslo,jmeno a chci tam dát to provaneni a nejde to :-(
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od Exp »

Uff, mám tam kravinu. Pokud chceš udržovat hodnotu "opravneni" v session, musíš jí zaregistrovat.
Nevím jak máš udělané přihlašování, ale je potřeba v něm zjistit přihlášeného uživatele a především jeho práva - vytáhnout dotazem z databáze. Pak si můžeš zaregistrovat do session proměnnou "opravneni".

Kód: Vybrat vše

session_start();
session_register("opravneni");
$_SESSION["opravneni"]=mysql_fetch_array(mysql_query("SELECT opravneni FROM uzivatel WHERE id_uzivatele = {//sem dosadit id aktuálně přihlášeného uživatele - nevím jak máš udělané přihlašování, nemůžu sloužit}"));
Pomocí čeho spravuješ databázi? Pokud chceš přidat sloupeček, je třeba použít ALTER TABLE. Silně ale doporučuju phpMyAdmin, pokud ho dosud nepoužíváš. Tam jde přidat sloupeček velice jednoduše klikacím způsobem.
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

fakt? používám PhPMyAdmin.... endora.cz prosím jak přidat ten sloupeček?


tabulka "uzivatele" sloupce "id" "login" "heslo" "email"
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od Exp »

Otevřeš si tabulku, nahoře záložka struktura, někde v dolní části je "Přidat 1 slupců na konci tabulky" (upravitelné) a tlačítko přidat. Pak si specifikuješ sloupec a je to. Endora může mít ale phpmyadmina upraveného, tak to nemusí přesně odpovídat.
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

ok a vyplnit jak, něco speciálně jinak?
Nemáte oprávnění prohlížet přiložené soubory.
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od Exp »

V tomhle případě může být klidně takhle.
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

Exp píše:V tomhle případě může být klidně takhle.
takže pole pouze přepíšu na opravneni
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

ok tak mám další sloupeček

tabulka: uzivatele
sloupce: id login heslo email opravneni(hodnota 0)


ted co?
Naposledy upravil(a) twinky dne pon 7. lis 2011, 21:34, celkem upraveno 1 x.
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od Exp »

Přesně tak. Hodnotu (0 nebo 1) vyplníš podle toho, o jakého uživatele se jedná. Výstižnější by možná bylo nazvat pole jako "administrator", pak by hodnota 0 a 1 dávala větší smysl, ale je to fuk.
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

ok mám napr.

uzivatel1 opravneni 0
uzivatel2 opravneni 0
admin opravneni 1?

a co pak?
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od Exp »

Dej mi sem část kódu, kde řešíš přihlášení uživatele, bez toho ti konkrétní radu (= přímo kód), napsat nemůžu.
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

Kód: Vybrat vše

      <?php session_start();
session_register("opravneni");
$_SESSION["opravneni"]=mysql_fetch_array(mysql_query("SELECT opravneni FROM uzivatel WHERE id_uzivatele = {8}"));
     echo '<td colspan="2" align="left"><a href="registrace.php"><font color="white"><strong>Registrace zde</font></a></td></tr>';
 
  ?> 
název tabulky: uzivatele
Nemáte oprávnění prohlížet přiložené soubory.
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od Exp »

Tohle ne. Jak ověřuješ, zda uživatel zadal do formuláře správný login a heslo (tzn. první krok, než se dostane do nějaké administrace)?
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od twinky »

Kód: Vybrat vše

<?php
include "./connect.php";/* připojení k databázi */
$login = mysql_real_escape_string($_POST["nick"]);/* nick zadaný ve formuláři pro přihlašování */
$heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané ve formuláři pro přihlašování */
$md5heslo = md5($heslo);/* Pomocí funkce md5() heslo zahashujeme */
/* — DOTAZ K MYSQL PRO OVĚŘENÍ PŘIHLAŠOVACÍCH DAT — */
$dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'");
$overeni = mysql_num_rows($dotaz);
$row = mysql_fetch_array($dotaz);
if($overeni == 1) {
    session_start();
    $_SESSION['login'] = stripslashes($login);
    $_SESSION['id'] = $row["id"];
    header("Location: admin.php");
    die();
} else {
    echo"Zadali jste špatné uživatelské jméno nebo heslo";
}
    echo'<p><a href="index.php"><font color="white">Přejít na hlavní stránku</font></a></p>';

?>
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: PhP-admin.prostředí

Příspěvek od Exp »

Jo, takže do session ukládáš id aktuálně přihlášeného uživatele. Pak tedy stačí volat jednoduchou funkci pro ověření uživatelských práv.

Kód: Vybrat vše

function check_rights() {
    $user_rights_query = mysql_query("SELECT opravneni FROM uzivatel WHERE id = '{$_SESSION['id']}'");
    $user_rights = mysql_fetch_array($user_rights_query['opravneni']);
    return $user_rights;
}
Tahle funkce ti vrátí hodnotu práv přihlášeného uživatele uloženou v databázi, tzn. 0 nebo 1. Dál s ní musíš operovat všude tam, kde se vytvářejí rozdílné ovládací prvky pro admina a pro normálního usera.

Kód: Vybrat vše

if(check_rights() == 1) {
   //dělej něco výhradně pro admina;
}
Odpovědět

Zpět na „Programování a web“