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:
  1. <?php  
  2. session_start();  
  3.   
  4. if($_SESSION['belepett'] == true)  
  5. {  
  6.   print "Védett oldal";  
  7. }  
  8. else  
  9. {  
  10.   print "Jelentkezz be!";  
  11. }  
  12.   
  13. ?>  
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
  1. session_start();  
  2.   
  3.     if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {  
  4.         echo '<ul class="err">';  
  5.         foreach($_SESSION['ERRMSG_ARR'as $msg) {  
  6.             echo '<li>',$msg,'</li>';   
  7.         }  
  8.         echo '</ul>';  
  9.         unset($_SESSION['ERRMSG_ARR']);  
  10.     }  
és a beléptetéshez meg használd ezt
  1. <?php  
  2.     //Session indítása  
  3.     session_start();  
  4.       
  5.     //Adatbázis csatlakozási adatok  
  6.     require_once('../connect/dbconn.php');  
  7.       
  8.     //Tömb az belepési hibák tárolására  
  9.     $errmsg_arr = array();  
  10.       
  11.     //Error alapbeállítása  
  12.     $errflag = false;  
  13.       
  14.     //kapcsolódás a mysql szerverhez  
  15.     $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);  
  16.     if(!$link) {  
  17.         die('Nem tudtam csatlakozni a szerverhez ' . mysql_error());  
  18.     }  
  19.       
  20.     //Adatbázis kiválasztása  
  21.     $db = mysql_select_db(DB_DATABASE);  
  22.     if(!$db) {  
  23.         die("Nem tudtam kiválasztani az adatbázist");  
  24.     }  
  25.       
  26.       
  27.     function clean($str) {  
  28.         $str = @trim($str);  
  29.         if(get_magic_quotes_gpc()) {  
  30.             $str = stripslashes($str);  
  31.         }  
  32.         return mysql_real_escape_string($str);  
  33.     }  
  34.       
  35.       
  36.     $login = clean($_POST['login']);  
  37.     $password = clean($_POST['password']);  
  38.       
  39.         //Ha hiba volt a beviteli adatokban visszarendez a belépési oldalra  
  40.     if($errflag) {  
  41.         $_SESSION['ERRMSG_ARR'] = $errmsg_arr;  
  42.         session_write_close();  
  43.         header("location: ../index.php");  
  44.         exit();  
  45.     }  
  46.       
  47.     //Lekérdezés létrehozása  
  48.     $qry="SELECT * FROM members WHERE login='$login' AND passwd='".md5($password)."'";  
  49.     $result=mysql_query($qry);  
  50.       
  51.     //Lekérdezés sikerességének ellenőrzése  
  52.     if($result) {  
  53.         if(mysql_num_rows($result) == 1) {  
  54.             //Belépés sikeres  
  55.             session_regenerate_id();  
  56.             $member = mysql_fetch_assoc($result);  
  57.             $_SESSION['SESS_MEMBER_ID'] = $member['member_id'];  
  58.             $_SESSION['SESS_V_NEV'] = $member['vnev'];  
  59.             $_SESSION['SESS_K_NEV'] = $member['knev'];  
  60.             $_SESSION['SESS_LOGIN'] = $member['login'];  
  61.             session_write_close();  
  62.             if ($member['login']=="admin") {  
  63.                 header("location: ../admin/index.php");  
  64.             exit();  
  65.             }  
  66.             else {  
  67.             header("location: ../index.php");  
  68.             exit();  
  69.             }  
  70.         }  
  71.     }else {  
  72.         die("Lekérdezési hiba");  
  73.     }  
  74.       
  75. ?>  
a védett oldalakra ezeket beleteszed és kész
  1. <?php   
  2.       $errmsg_arr = array();  
  3.        
  4.       $errmsg_arr[] = 'ide azt irsz amit akarsz ez jelenik meg a nem belépett felhasználónak';  
  5.          
  6.       $errflag = true;    
  7.           
  8.         if($errflag) {  
  9.          $_SESSION['ERRMSG_ARR'] = $errmsg_arr;  
  10.          session_write_close();  
  11.          header("location: ../index.php");  
  12.         exit();  
  13. };  
  14.   
  15. ?>  
Tudom, a
  1. 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