ugrás a tartalomhoz

PHP: jelszóval védett tartalom

Orb1337 · 2009. Jún. 28. (V), 19.11
php jelszóval védett tartalomat szeretnék létrehozni, van egy adminfelületem ami kér user-t, pw-t amit sessionbe tárolok. A többi lapra csak bejelentkezés után lehetne eljutni, ha enélkül próbálnának rálépni, akkor hibaüzi, hogy jelentkezz be, esetleg visszaugrik a bejelentkezéshez. A következő kóddal próbálkoztam:

<?php
session_start();

if($_SESSION['belepett'] == true)
{
  print "Védett oldal";
}
else
{
  print "Jelentkezz be!";
}

?>
Ez oké, de egy egész oldalt szeretnék védetté tenni, amin több php funkciót is használok (pl. hírírás).
Tudtok adni egy kis ötletet?
 
1

nem lesz könnyű

csman007 · 2009. Jún. 28. (V), 21.22
ezt beépíted az index.phpbe
session_start();

	if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
		echo '<ul class="err">';
		foreach($_SESSION['ERRMSG_ARR'] as $msg) {
			echo '<li>',$msg,'</li>'; 
		}
		echo '</ul>';
		unset($_SESSION['ERRMSG_ARR']);
	}
és a beléptetéshez meg használd ezt
<?php
	//Session indítása
	session_start();
	
	//Adatbázis csatlakozási adatok
	require_once('../connect/dbconn.php');
	
	//Tömb az belepési hibák tárolására
	$errmsg_arr = array();
	
	//Error alapbeállítása
	$errflag = false;
	
	//kapcsolódás a mysql szerverhez
	$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
	if(!$link) {
		die('Nem tudtam csatlakozni a szerverhez ' . mysql_error());
	}
	
	//Adatbázis kiválasztása
	$db = mysql_select_db(DB_DATABASE);
	if(!$db) {
		die("Nem tudtam kiválasztani az adatbázist");
	}
	
	
	function clean($str) {
		$str = @trim($str);
		if(get_magic_quotes_gpc()) {
			$str = stripslashes($str);
		}
		return mysql_real_escape_string($str);
	}
	
	
	$login = clean($_POST['login']);
	$password = clean($_POST['password']);
	
		//Ha hiba volt a beviteli adatokban visszarendez a belépési oldalra
	if($errflag) {
		$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
		session_write_close();
		header("location: ../index.php");
		exit();
	}
	
	//Lekérdezés létrehozása
	$qry="SELECT * FROM members WHERE login='$login' AND passwd='".md5($password)."'";
	$result=mysql_query($qry);
	
	//Lekérdezés sikerességének ellenőrzése
	if($result) {
		if(mysql_num_rows($result) == 1) {
			//Belépés sikeres
			session_regenerate_id();
			$member = mysql_fetch_assoc($result);
			$_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
			$_SESSION['SESS_V_NEV'] = $member['vnev'];
			$_SESSION['SESS_K_NEV'] = $member['knev'];
			$_SESSION['SESS_LOGIN'] = $member['login'];
			session_write_close();
			if ($member['login']=="admin") {
				header("location: ../admin/index.php");
			exit();
			}
			else {
			header("location: ../index.php");
			exit();
			}
		}
	}else {
		die("Lekérdezési hiba");
	}
	
?>
a védett oldalakra ezeket beleteszed és kész

<?php 
      $errmsg_arr = array();
	 
	  $errmsg_arr[] = 'ide azt irsz amit akarsz ez jelenik meg a nem belépett felhasználónak';
	   
	  $errflag = true;  
		
		if($errflag) {
		 $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
		 session_write_close();
		 header("location: ../index.php");
		exit();
};

?>
Tudom, a
get_magic_quotes_gpc()
az 5.3.0ás phptől nem javasolt a használata, de a magyar szerverek 80-90%-a még mindig 4.xx-es php-t használ, ugyhogy szerintem ez nem gond.
2

köszönöm

Orb1337 · 2009. Jún. 29. (H), 08.33
köszönöm