| 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: 12 let
|
|||
0