Autor | Zpráva | ||
---|---|---|---|
Trickle Profil |
Zdravím tak jsem tu zas. Tentokrát mám problém. Vytvářím administraci a pomocí require vkládám části webu.
V administraci v každém php souboru mám kontrolu uživatele <?php require_once dirname(__FILE__)."/../config.php"; function check_user() { if ( isset($_SESSION['jmeno']) && isset($_SESSION['heslo']) && isset($_SESSION['prava']) ) { $select = mysql_query("SELECT `id` FROM `uzivatele` WHERE `jmeno`='{$_SESSION['jmeno']}' AND `heslo`='{$_SESSION['heslo']}'") or die (mysql_error()); $udaje = mysql_fetch_assoc($select); if (mysql_num_rows($select)!=1 check_user(); ?> takže když se sejdou dva soubory v jednom tak to samozřejmě hodí fatal error. A když to udělám bez kodu tak samozřejmě je tvoření administrace k ničemu. Když se na to podívá každý. Budu rád za každou radu. Děkuji. |
||
Monkeys Profil * |
#2 · Zasláno: 11. 6. 2015, 22:48:27
Trickle:
Mylim ze bude jednoduhsie pri prihlaseni si vytvorit kluc -> hodnota v globalnej premennej $_session, a nevolat pokazde databazu. naprikald pri prvom prihlaseni si vytvoris premennu $_session['admin'] = "ano"; a potom na kazdej stranke len testujes ci existuje tento index. if(isset($_session['admin'])){ //pokracuj }else{ header("Location: " ......); //presmerovanie na index stranky } pri odhlasovani administratora pouzi niektore funkcie: unset($_session); $_session = array(); session_destroy(); M. |
||
Trickle Profil |
Monkeys:
Takže chápu to dobře. Třeba mám login php a v něm ten kod co mám nahoře. Přidám do toho kod co jsi mi poradil $_session['admin'] = "ano";. a pak na každé zaheslované stránce bude if(isset($_session['admin'])){ //pokracuj }else{ header("Location: " odkaz na stranku třeba editace; //presmerovanie na index stranky } A nebo jsem úplně vedle? Pokus dva: Udělal jsem po přihlášení do administrace proměnou $_session['admin'] = "ano"; do editace jsem přidal if(isset($_session['admin'])){ //pokracuj }else{ header("Location: ./editace.php"); //presmerovanie na index stranky } Je to ono? a nebo ne. Díky |
||
Kubo2 Profil |
#4 · Zasláno: 12. 6. 2015, 20:14:47
Trickle:
To preto, že $_SESSION sa píše kapitálkami a pred prácou s touto premennou treba volať session_start() .
|
||
Trickle Profil |
#5 · Zasláno: 12. 6. 2015, 20:46:29
Asi mi nezbude než se vykašlat na funkci require a vrátit se zpět jen k souborům s kodem na vyvolávaní DB. Protože se s tím neustále trápím a nedaří se. Proč jsem chtěl použít funkci require? Protože jsem chtěl připravit "systém" na budoucí možnost změnu vzhledu.
|
||
Kubo2 Profil |
#6 · Zasláno: 12. 6. 2015, 21:31:30
Trickle:
A čo takto vložiť check_user() do samostatného súboru, ten require ovať a funkciu normálne volať?
|
||
Trickle Profil |
#7 · Zasláno: 12. 6. 2015, 21:54:17
Kubo2:
Ježiši marija teď si tu tluču hlavou o stůl. Proč mě to nenapadlo. Jak jsem mohl být tak hloupý. Máš naprostou pravdu. Díky moc. |
||
Časová prodleva: 10 let
|
0