[ PHP CODE @ 26.01.2010. 23:19 ] @
Pozdrav svima.
Na jednom serveru (hostu) imam 2 stranice na kojima se vrsi logovanje... to su dva potpuno odvojena projekta (u tematskom smislu).
Kako bih sprijecio pristup stranicama bez logovanja, koristim code:

Code:

session_start();
if (!isset($_SESSION['username'])) {
echo '<hr>ERROR: You attempted to access a restricted page. Please <a
href="index.php">Log In</a>.';
die('<hr>');
}


Medjutim, primjetio sam da (bar je tako u lokalu) ako se ulogujem na, recimo prvi projektat, bez problema otvaram stranice i ovog drugog... To mi nikako ne odgovara, a jasno mi je da je to tako upravo iz razloga sto je uslov gore ispunjen.
Kako rijesiti ovaj problem?

Hvala svima!
[ Predrag Gajic @ 26.01.2010. 23:51 ] @
Možda da dodaš još neki parametar prilikom logovanja...
Code:

$_SESSION['username']=$username;
$_SESSION['projekat']="projekat_a";

I onda prilikom provere staviš:
Code:
session_start();
if (!isset($_SESSION['username'])) and $_SESSION['projekat']="projekat_a")
...
[ milos.z @ 27.01.2010. 00:18 ] @
ili da promenljive nazoves drugacijim imenima:

Code:
$_SESSION['projekat1_username'] = $username;
[ PHP CODE @ 27.01.2010. 10:15 ] @
To je to! Hvala... moze ovo u subforum za pocetnike :)
[ Nemanja Avramović @ 27.01.2010. 17:07 ] @
Možda je to subjektivni osećaj, ali po meni je bolje ovako (ja tako najčešće radim):

Code:
$_SESSION['ime projekta']['username'] = $username;
$_SESSION['ime projekta']['stagod'] = $stagod;


Onda možete i sa var_dump($_SESSION['ime projekta']); da vidite sve podatke u sesiji (koji su vezani za vaš projekat).
[ agvozden @ 27.01.2010. 18:56 ] @
Mislim da je jedini ispravan način da svaki projekta inicira svoju sesiju.
To može automatski tako što će dobiti različito ime domena ili IP adresu.

U slučaju da to nije izvodljivo, a problem može biti i ukoliko ima više nivoa pristupa u različitim direktorijumima aplikacije onda treba setovani različita imena sesije.

Dakle, ono što ja predlažem jeste, prilikom iniciranja sesije:

Code:
session_name('ime_projekta');

ili nešto drugo provučeš, recimo neku konstantu

Onda se sesije neće mešati.