PhP-admin.prostředí
- twinky
- Začátečník

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
PhP-admin.prostředí
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
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ý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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.
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ů
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

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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";
?>
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

-
- Registrován: 24. črc 2004
- Bydliště: Tábor
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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;
}
Pak stačí dál operovat s typem oprávnění, např.:
Kód: Vybrat vše
if(check_rights() == 1) {
include 'jine_menu.php';
}
Naposledy upravil(a) Exp dne pon 7. lis 2011, 20:28, celkem upraveno 1 x.
- twinky
- Začátečník

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
:-/ 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
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

-
- Registrován: 24. črc 2004
- Bydliště: Tábor
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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".
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.
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}"));
- twinky
- Začátečník

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
fakt? používám PhPMyAdmin.... endora.cz prosím jak přidat ten sloupeček?
tabulka "uzivatele" sloupce "id" "login" "heslo" "email"
tabulka "uzivatele" sloupce "id" "login" "heslo" "email"
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
- Exp
- Začátečník

-
- Registrován: 24. črc 2004
- Bydliště: Tábor
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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

-
- Registrován: 24. črc 2004
- Bydliště: Tábor
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
V tomhle případě může být klidně takhle.
- twinky
- Začátečník

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

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
ok tak mám další sloupeček
tabulka: uzivatele
sloupce: id login heslo email opravneni(hodnota 0)
ted co?
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

-
- Registrován: 24. črc 2004
- Bydliště: Tábor
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
ok mám napr.
uzivatel1 opravneni 0
uzivatel2 opravneni 0
admin opravneni 1?
a co pak?
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

-
- Registrován: 24. črc 2004
- Bydliště: Tábor
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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>';
?> 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

-
- Registrován: 24. črc 2004
- Bydliště: Tábor
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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

- Registrován: 26. zář 2008
- Bydliště: Praha
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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

-
- Registrován: 24. črc 2004
- Bydliště: Tábor
- Kontaktovat uživatele:
Re: PhP-admin.prostředí
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.
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
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;
}
Kód: Vybrat vše
if(check_rights() == 1) {
//dělej něco výhradně pro admina;
}