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 *
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
}
když jsem přihlášen vše funguje a když se odhlásím chrome hlásí: chybu tato stránka obsahuje smyčku přesměrování a IE hlasí:Tato stránka se nedá zobrazit
Je to ono? a nebo ne.
Díky
Kubo2
Profil
Trickle:
To preto, že $_SESSION sa píše kapitálkami a pred prácou s touto premennou treba volať session_start().
Trickle
Profil
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
Trickle:
A čo takto vložiť check_user() do samostatného súboru, ten requireovať a funkciu normálne volať?
Trickle
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0