Php session - változó nem regisztrálódik
Szevasztok. Csak azért nyitottam új témát, mert azért van a fórum, hogy keressünk benne. Ez lehetetlen, ha mindent egy témába sűrítünk. Tehát a problémám. Itt ez a kód:(a kód asszem nem lesz formázva...)A probléma:
Ez a kód elméletileg működik. Működött is szombaton. Kikapcsoltam a gépet. Reggel indítom, mondom na még egy próbát. Azt hittem, leesek a szélről, mikor nem ment. Egész nap szenvedtem vele, mikor megint ment. Kiléptem az összes szerkesztőből, majd újra megcsináltam a belépést. Ment is. Kiléptem az operából, újraindítottam, és megint nem ment. Azóta nem tudtam életre csalni. De a kódon nem változtattam. Elképzelésem sincs, mi a probléma.
JA: session_start() a main.php-ban van.
index.php:
require_once("main.php");
main.php:
session_start();
Ezek itt a fájlok első sora
:D
■
<?
class user {
FUNCTION user() {
global $logout;
IF (isset($logout)) {
$this->logout();
exit();
}
}
FUNCTION login() {
global $uLogin, $name, $pass;
IF ($uLogin) {
$query="SELECT * FROM users WHERE name='$name' AND pass='$pass'";
$data=mysql_query($query);
$details=mysql_fetch_object($data);
IF ($details==FALSE) {
Echo "Hibás felhasználónév || jelszó";
} else {
global $loginName;
$loginName=$name;
session_register("loginName");
Echo "belépve ";
}
}
IF (($_SESSION[loginName]) && (!$uLogin)) {
Echo "már beléptél - <a href='index.php?insider=users&logout=1'>Kilépek</a>";
}
IF ((!$uLogin) && (!$_SESSION[loginName])) {
$this->loginpage();
exit();
}
}
FUNCTION loginpage() {
?>
<form action="index.php" method="GET">
Login név: <input type="text" name="name"><br>
Jelszó: <input type="text" name="pass"><p>
<input type="hidden" name="insider" value="users">
<input type="submit" name="uLogin" value="Belép">
</form>
<?
}
FUNCTION logout() {
session_unregister("loginName");
Echo "kilépve";
}
}
$temp = new user();
$temp->login();
Ez a kód elméletileg működik. Működött is szombaton. Kikapcsoltam a gépet. Reggel indítom, mondom na még egy próbát. Azt hittem, leesek a szélről, mikor nem ment. Egész nap szenvedtem vele, mikor megint ment. Kiléptem az összes szerkesztőből, majd újra megcsináltam a belépést. Ment is. Kiléptem az operából, újraindítottam, és megint nem ment. Azóta nem tudtam életre csalni. De a kódon nem változtattam. Elképzelésem sincs, mi a probléma.
JA: session_start() a main.php-ban van.
index.php:
require_once("main.php");
main.php:
session_start();
Ezek itt a fájlok első sora
:D
Re: Php session - változó nem regisztrálódik
(http://pear.php.net/manual/hu/package.authentication.php)
Re: Php session - változó nem regisztrálódik
Ezen amúgy nagyon csodálkozom, mert borzalmasan gyenge a kód ... ezt most nem bántásnak szánom, nem tudom mit akarsz ezzel authentikálni, vagy csak gyakorlásból csinálod, de éles helyre ebben a formában ne tedd ki ...
post-olt, get-elt változókat superglobals tömbökön keresztül használd sokkal biztonságosabb (_POST, _GET, _REQUEST, _SESSION) ... a függvényeknek, metódusoknak lehet megadni paramétert, ettől csak használhatóbbak lesznek, a global kulcsszót felejtsd el csak érthetetlenné teszi a kódot, a GLOBALS tömbön keresztül minden globális változó elérhető ... ha az error_reporting-ban az E_NOTICE be lenne nálad is kapcsolva látnád az összes olyan szintaktikai hibát is, amit a php parser automatikusan felold (csak éppen kérdés, hogy minek terheljük vele a parsert, ha ki lehet ezt javítani a kódban is?) ilyen pl: az asszociatív tömb kulcsát idézőjelbe kell tenni, hiszen az egy string ... idézőjel nélkül a parser azt hiszi konstans ... de mivel ilyen nevű konstans nincs ezért stringnek veszi ...
szerintem logikailag is fel lehetne jobban (átláthatóbban) építeni a kódot ...
remélem tényleg nem veszed bántásnak, elsősorban tanácsokat próbáltam adni.
üdv.: imr.