ugrás a tartalomhoz

session kezelés és teszt

XXXaviCE · 2007. Jún. 9. (Szo), 21.31
hali

kezdő php-s vagyok, magamtól tanultam. session kezeléssel lenne kérdésem.
oldalanként a sima session_start() és a $_SESSION['user'] = 'test';
módszer működött minden oldalon gondolom szerverbeállítások miatt.

viszont úgy láttam a legtöbb oldalon a session-t beteszik a linkbe ezért gondoltam nem hülyeség én is megcsináltam így:

session_start("ssid");
$sid = session_id();
index.php?ssid=$sid

kérdésem, h baromságot csináltam-e vagy sem? .)

gondoltam úgy lehet testelni, h kikapcsolom a sessiont/cookie-t böngészőben ha lehetsége és ha működik akkor rendben van

tehát a kérdésem, h mit kell javítanom? :)
thx
 
1

Google + biztonság

attlad · 2007. Jún. 9. (Szo), 21.55
Szerintem nem kéne URL-be berakni, egyrész csúnya, másrész ha nem csak belépésre indul a session hanem minden oldalon alapból, akkor a Google nem fogja szeretni az ilyen linkeket (pl. nem fogja megfelelően indexelni a webhelyet), harmadrész meg ha külső link van az oldalon akkor a céloldal megkapja referrerben a sidet tartalmazó URL-t amivel az adott látogató nevében be is léphet ha nem figyelsz erre külön/nem ellenőrzöd.

Egyetlen érv mellette kb. az szokott lenni hogy lehet olyan, hogy valakinél le van tiltva a cookie és nem kéne senkit kizárni vagy ilyesmi, viszont nézd meg a Google oldalát (de akár többi nagy cég oldalát), ott se léphetsz be süti engedélyezése nélkül, ha ők nem problémáznak ezzel akkor nem hiszem, hogy egy átlagos oldalon ne lehetne a cookie követelmény.
2

picit másképp

gonoszcsiga · 2007. Jún. 9. (Szo), 22.06
Alapból a sessionváltozó neve PHPSESSID, de ezt a php ini-ben tudod módosítani.
Egyébként a linkbe a SID állandót rakd be így:
  1. $link="index.php?".SID;  
ez tartalmazza a változó nevét, és értékét is. Írasd ki echo-val és meglátod.
3

session help

gourry · 2007. Nov. 11. (V), 23.24
Jó estét kívánok!

Én is kezdő php-s volnék, és nemrég "ismerkedtem meg" meg a sessionökkel.
Az oldalamat úgy szeretném felépíteni, hogy a $_GET['page'] szerint változzon tartalma és egyben kétnyelvű is legyen. A nyelvet sikerült lementenem sessionbe és a page változót is. A gondom csak az, hogy ha kezdőlapra kattintok (nem adok át paramétert a 'page'-nek), akkor a szerver még mindig azt hiszi, hogy van paraméter, pedig nincs. Nem tudom, hogyan kezeljem le azt az esetet, ha nincs 'page' változó. Ehhez kérnék tanácsokat, ötleket. Előre is köszönöm!
  1. <?php  
  2. session_start();  
  3.   
  4. if(isset($_GET['nyelv'])){  
  5.       $nyelv=$_GET['nyelv'];  
  6.       $_SESSION['nyelv']=$nyelv;  
  7.     }  
  8.     if(isset($_SESSION["nyelv"])){  
  9.       $nyelv=$_SESSION["nyelv"];  
  10.     }  
  11.     else{  
  12.       $_SESSION["nyelv"]='hun';  
  13.       $nyelv='hun';  
  14.     }  
  15.         if($nyelv=='hun'){  
  16.         define("_SZOVEG1_","Próbaszöveg 1");  
  17.         define("_SZOVEG2_","Próbaszöveg 2");  
  18.         }  
  19.         elseif($nyelv=='eng'){  
  20.         define("_SZOVEG1_","Test message 1");  
  21.         define("_SZOVEG2_","Test message 2");  
  22.         }  
  23.   
  24. if(isset($_GET['page'])){  
  25. $page = $_GET['page'];  
  26. $_SESSION['page'] = $page;  
  27. }  
  28.   
  29. if(isset($_SESSION['page'])){  
  30.       $page=$_SESSION['page'];  
  31.     }  
  32. ?>  
4

GET változó kezelése

pockONE · 2008. Dec. 2. (K), 04.04
  1. <?php   
  2. $site=$_GET['site']; // itt átadod változónak  
  3. ?>  
  1. <?php      
  2. if( ! emptyempty($site) ) { // itt kezeled le hogy üres-e a $site változó  
  3. // az EMPTY csak 1* kell valamiért 2szer írja ki..  
  4.     if(file_exists("php/$site.php")) { //és ha van a változóval megegyező .php fileod akkor megnyitja.  
  5.     include("php/$site.php");  
  6.     } else {          
  7.     include("php/404.php"); // ha nincs akkor egy alap hibaoldalt hoz be.  
  8.     }     
  9. else {          
  10.     include("php/fooldal.php"); // ha nincs értéke a GET['site'] változónak akkor tölti be.  
  11.     }?>  
Remélem tudtam segíteni, bár én is kezdő vagyok. Pont azért találtam meg a témát mert a session-el próbálom lecserélni a COOKIE kezelős login felületet.

Amúgy a ! felkiáltójel a logikai műveletek tagadása. így is használható mondjuk:
  1. <?php   
  2. if ( ! isset($_GET['site']) ) {; // itt átadod változónak  
  3. echo "Nincs ilyen site...";  
  4. }  
  5. ?>