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:

$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!

<?php
session_start();

if(isset($_GET['nyelv'])){
      $nyelv=$_GET['nyelv'];
      $_SESSION['nyelv']=$nyelv;
    }
    if(isset($_SESSION["nyelv"])){
      $nyelv=$_SESSION["nyelv"];
    }
    else{
      $_SESSION["nyelv"]='hun';
      $nyelv='hun';
    }
		if($nyelv=='hun'){
		define("_SZOVEG1_","Próbaszöveg 1");
		define("_SZOVEG2_","Próbaszöveg 2");
		}
		elseif($nyelv=='eng'){
		define("_SZOVEG1_","Test message 1");
		define("_SZOVEG2_","Test message 2");
		}

if(isset($_GET['page'])){
$page = $_GET['page'];
$_SESSION['page'] = $page;
}

if(isset($_SESSION['page'])){
      $page=$_SESSION['page'];
    }
?>
4

GET változó kezelése

pockONE · 2008. Dec. 2. (K), 04.04
<?php 
$site=$_GET['site']; // itt átadod változónak
?>
<?php	
if( ! empty($site) ) { // itt kezeled le hogy üres-e a $site változó
// az EMPTY csak 1* kell valamiért 2szer írja ki..
    if(file_exists("php/$site.php")) { //és ha van a változóval megegyező .php fileod akkor megnyitja.
	include("php/$site.php");
    } else {		
	include("php/404.php"); // ha nincs akkor egy alap hibaoldalt hoz be.
    }	
} else { 		
    include("php/fooldal.php"); // ha nincs értéke a GET['site'] változónak akkor tölti be.
	}?>
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:
<?php 
if ( ! isset($_GET['site']) ) {; // itt átadod változónak
echo "Nincs ilyen site...";
}
?>