ugrás a tartalomhoz

session érték deffiniálása

Petrusz · 2006. Szep. 14. (Cs), 17.47
Kérdésem a $X, a $_POST['X'] és a 'X' között nem tudok eligazodni. az alábbi login-ből szedném ki a username-t és adnám át sessionban, hogyan hívom meg a változót a következő php-ben?
Próbáltam a sessionözésnek a netten utánnézni de jó példákkal illusztráltat nem találtam, kérem segítségedet
P

login.php:

<?
require("config.php");
require("functions.php");
if(isset($_POST['submit']))
{
if(!$_POST['username']) die("Error: You must enter your username before logging in.");
if(!$_POST['password']) die("Error: You must enter your password before logging in.");
$get_user = mysql_query("SELECT * FROM user_system WHERE username = '".$_POST['username']."' AND
password = '".md5($_POST['password'])."'");
$q = mysql_fetch_object($get_user);
if(!$q) die("Login Failure: An error occured, please verify your username and password are correct.");
session_start();
session_register($_POST['username']);
?>
<a href="http://....../CONNECT/add_MAT.php">add material</a>
<?
} else {
?>
<form name="login" method="post" action="login.php">
<table>
<tr>
<td>Username:<input type="text" id="username" name="username"></td>
</tr>
<tr>
<td>Password:<input type="password" id="password" name="password"></td>
</tr>
<tr>
<td>Submit: <input type="submit" value="Submit" name="submit" id="submit"></td>
</tr>
<tr>
<td>Remember? <input type="checkbox" name="stay_in[]" checked="yes"></td>
</tr>
</table>
</form>
<?
}//end else
?>
 
1

változónevet adj meg

breakline · 2006. Szep. 14. (Cs), 18.54
a session_register fv. nem ad értéket a változónak, csak bejegyzi azt a munkamenet változók közé. Ezért a fv. is egy vagy több nevet vár.PL.
session_register("foo")
sor után a foo változó elérhető lesz a globálos $_SESSION tömbből, amit egyébként is érdemesebb használni (elvileg php 4-től lehet is), pl. ennyi:
$_SESSION['username'] = $_POST['username'];
Egyébként itt van minden feketén-fehéren magyarul:
http://hu.php.net/manual/hu/function.session-register.php


BL
2

a változó értéket kapott

Petrusz · 2006. Szep. 14. (Cs), 22.27
Igen ez megvan, vissza is kérdeztem és ki is írta az értéket.. de hogyyan tovább a következő oldalon amire <a href...> el átmegyek már el is felejtette az értéket
session_start();
print_r($_SESSION['username']);
értéke nincs!
az számíthat hogy a session nincs path-olva? vagy hogy nem ugyanabban az alkönyvtárban van a következő php file amivel folytatnám a munkamenetet?
P
3

más lehet a gond

breakline · 2006. Szep. 14. (Cs), 23.22
fontos, ha a php ini file-jában nincs bekapcsolva, akkor minden php file elején kell egy session_start() parancs (most nem ugrik be mit kell pontosan, de alapértelmezés elvileg az, h manuálisan kell mindig meghívni). A session id sütiben van tárolva, szóval ehhez sütiket is engedélyezni kell. Nem tudom hogy automatikus-e, de ha a sütik ki vannak kapcsolva, akkor az url-be kerül a session id, lehet ezt is engedélyezni kell a configban (pl. www.mno.hu).

BL
4

Meg van a megoldás a www.php.org on találtam

Petrusz · 2006. Szep. 15. (P), 10.17
exit(); //This sentence do the magic

ez segített, és ezután tovább ment a session- ben deklarált váltotó

van azért egy kis gond, ha belépek 2 eltérő loginon ugyan azon a gépen párhuzamosan és tesztelem akkor az első bejelentkezés azonosítója megy át a 2. bejelentkezésnél is, pedig ott más az azonosító.
Ha ugyan azon az időben többen bejelentkeznek ugyan arra az oldalra akkor mindig az első bejelentkezó által meghatározott azonosítót adja át a session a többi bejelentkezőnek is? hogy lehet ezt kiküszöbölni?