Autor | Zpráva | ||
---|---|---|---|
Fastman Profil |
Zdravím,
Potřeboval bych poradit ohledně Session. Normálně se přihlásím a přesměruje mě to na /admin/index.php, když zadám špatné heslo, tak na index.php?Alert=6. To je v pořádku. Problém je, že se neuloží SESSION. Kód odesílajícího formuláře <?php ob_start(); /* * Tetno soubor zjisti zda se takovy uzivatel s takovym heslem v databazi nachazi. * Pokud ano, do sessions o tom ulozime informaci. * Jinak se samozrejme presmerujeme zpet a dame uzivateli vedet, ze zadal spatne udaje */ session_start(); // Budeme pracovat se session, musíme je nastartovat. if(isset($_POST['uzivatel'])){ require_once 'db.php'; $name = $_POST['uzivatel']; $pass = md5($_POST['heslo']); $query = mysql_query("SELECT * FROM `seznam` WHERE `uzivatel` = '$name' and `heslo` = '$pass'") or die (mysql_error()); // Vybereme uživatele se zadaným jménem a heslem $Vysledek = mysql_fetch_array($query); if($Vysledek['uzivatel']){ // pokud tato proměnná obsahuje data, bylo zadané správné jméno a heslo // Do sessions si uložíme pár informací o přihlášeném $_SESSION['prihlasen'] = 1; $_SESSION['login'] = $Vysledek['uzivatel']; $bl="./admin/index.php"; header("location: $bl"); // přesměrujeme na index exit; }else{ $bl="index.php?Alert=6"; header("location: $bl"); // špatně zadané údaje exit; // echo "Zadal jsi špatné údaje"; } mysql_free_result($query); }else{ echo "Zde nic není."; } ob_end_flush(); ?> Všechno se přihlásí, ale zde mám kontrolu ve složce /admin/ souboru index.php (aby se tam někdo nedostal bez přihlášení). <?php /* * Pokud uživatel není přihlášený, místo obsahu se mu ukáže tato hláška. * Tento kód vložte tam, kde chcete aby se dostali jen přihlášení */ if(!isset($_SESSION['prihlasen']) and @$_SESSION['prihlasen']!=1){ echo "<h1>Tato stránka je jen pro registrované</h1>"; exit; } ?> |
||
jenikkozak Profil |
#2 · Zasláno: 20. 5. 2014, 19:09:47
V každém souboru, ve kterém chceš pracovat s polem $_SESSION, musíš na začátku spustit funkci session_start().
|
||
Fastman Profil |
#3 · Zasláno: 20. 5. 2014, 19:27:16 · Upravil/a: Fastman
Zdravím,
Děkuji Vám! Mám tu ale menší problém. Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /administrace/admin/index.php:19) in /administrace/admin/index.php on line 27 Již vše funguje, musel jsem dát session na začátek souboru <?php session_start(); ?> |
||
jenikkozak Profil |
#4 · Zasláno: 20. 5. 2014, 19:30:57
|
||
Časová prodleva: 10 let
|
0