Autor Zpráva
kokolino
Profil *
cawte stiahol som si si zrojak zo stranky Odkaz
vestko funguje tam funguje nasledovny odkaz robi problem

tento kod sa nadhadza v odkaze 1
<?php
/*
* Pokud uživatel není přihlášený, místo obsahu se mu ukáže tato hláška.
*/
if(!isset($_SESSION['prihlasen']) or $_SESSION['Prava']<1){
	echo "<h1>Tato stránka je jen pro registrované</h1>";
	echo "Tvoje práva: " .$_SESSION['Prava'] ;
	exit;
}
?>

<h1>Tajný obsah</h1>
<p>
	Pro 1 2
</p>

ak sa neprihlasim vypise ,ze nemam pristup k udajom ak sa vsak prihlasim vypise mi to presne to iste :Tato stránka je jen pro registrované tvoje prava "0"
tomuto nechapem, lebo po prihlaseni si includujed odkazy cize $_SESSION['Prava'] sa mi nastavi na 1,

hore uvedeni kod som si upravil takto ,funfuje to,ale .....
/*
* Pokud uživatel není přihlášený, místo obsahu se mu ukáže tato hláška.
*/
if(!isset($_SESSION['prihlasen']) or @$_SESSION['prihlaseny']!=1){
	echo "<h1>Tato stránka je jen pro registrované</h1>";
	echo "Tvoje práva: " .$_SESSION['Prava'] ;
	exit;
}
?>

funguje tak, ak as neprihlasim tak hlaska ,ze nie som prihlaseny ak sa prihlasim mam normalne pristup k udajom na stranke

co ak bude uzivatel co ma pravo 2 ? v tedy mi to nejak padne na tej podmienke
if(!isset($_SESSION['prihlasen']) or @$_SESSION['prihlaseny']!=1){


neviete mi poradit co robim zle ?
kokolino
Profil *
prepacte oprava kodu,ktory funguje
<?php
/*
* Pokud uživatel není přihlášený, místo obsahu se mu ukáže tato hláška.
*/
if(!isset($_SESSION['prihlasen']) or@ $_SESSION['prihlasen]<1){
    echo "<h1>Tato stránka je jen pro registrované</h1>";
    echo "Tvoje práva: " .$_SESSION['Prava'] ;
    exit;
}
?>
Alphard
Profil
Odkazovaná stránka se zabývá cookies, vy tady máte SESSION.
Na začátku stránky musí být session_start() a $_SESSION['prihlasen'] se musí nastavit, to jste neukázal.
kokolino
Profil *
Alphard:
$_SESSION['prihlasen'] sa nastavuje pri prihlaseni
<?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['jmeno'])){
	require 'db.php';
	    $name = $_POST['jmeno'];
	    $pass = md5($_POST['heslo']);
		$query = MySQL_Query("SELECT * FROM `uzivatele` WHERE `jmeno` = '$name' and `heslo` = '$pass'") or die (mysql_error());
		// Vybereme uživatele se zadaným jménem a heslem
			$Vysledek = mysql_fetch_array($query);
				$Vysledek['jmeno']; 
				if($Vysledek['jmeno']){ // 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['jmeno'];
					$_SESSION['UserId'] = $Vysledek['id'];
					$_SESSION['UserWeb'] = $Vysledek['web'];
					$_SESSION['UserMail'] = $Vysledek['mail'];
					$_SESSION['Prava'] = $Vysledek['prava'];
					$bl="index.php"; 
					header("location: $bl"); // přesměrujeme na index
				}else{
					$bl="index.php?Alert=6";
					header("location: $bl"); // špatně zadané údaje
					// echo "Zadal jsi špatné údaje";
				}
		mysql_free_result($query);
}else{
	echo "Zde nic není;-)";
}
ob_end_flush();
?>


a session_start() mam v indexe, skusil som to dat aj to odkazu 1 , nepomohlo to
Alphard
Profil
Co se vám vypíše, když tam dáte print_r($_SESSION);?

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: