левая аторизация... ?

R00miss

Guest
левая аторизация... ?

Привет!
такая авторизация идет:

юзер вводит пароль и логин.
идет проверка с базой, если все ок, то пароль и логин пишется в сессию.
все остальные страницы проверяются так:
PHP:
session_start();
session_register('login','pasw');

if($login=="" || $pasw==""){header('Location: login.php'); die();}

текст приватной страницы...
т.е. тут не идет проверка на сам пароль и логин, главное чтобы в сесии что то было... нормальная защита или левая?
 

Romantik

TeaM PHPClub
Во первых: используй $_SESSION
Во вторых: а если я введу не пустые, а левые значения?
В третьих: Достаточно в сессии хранить авторизацию , а не логин-пароль.
 

PhpDeveloper

Guest
passwd в сессию можно не писать.
Могут быть проблемы с register_globals
 

R00miss

Guest
>>Во вторых: а если я введу не пустые, а левые значения?
в сессию записывается только после проверки...

>>Во первых: используй $_SESSION
ок :)

>>Могут быть проблемы с register_globals
например?
 

PhpDeveloper

Guest
http://ddd/?act=sss&_SESSION['login']=admin

Что-то типа этого...
 

R00miss

Guest
>>http://ddd/?act=sss&_SESSION['login']=admin
не, не проходит так :)

как насчет такой авторизации:
юзер пишет логин и пароль, идет проверка... если все ок то в базу пишу email и session_id.. в сессию пишу email... проверяем...
PHP:
unset($logged);
$result = mysql_query("Select email From sessions Where email='".$_SESSION['user_email']."' and session='".session_id()."' ");

if(mysql_num_rows($result)!=0){$logged=1;}
else{$logged=0;}
и потом if($logged==1){показываем приватную страницу}
else{не показываем}
 

Bill Gates

Guest
Зачем такие трудности?
Код:
session_start();
if (!$_SESSION['logged']) die();
и все!
 

R00miss

Guest
мне не нужно die() :)
проверка нужна только для отдельных частей на одно странице... но всеравно спасибо, это тоже пригодится :)

только немного поправлю:
if (!$_SESSION['logged']){header("Location: login.php"); die();} :)
 
Сверху