[PHP] czy user aktywny

0
function user_actived()
{
 global $HTTP_SESSION_VARS;
 $result = db_query("select active from user where login='".$HTTP_SESSION_VARS['_login']."';");
 while (list( $key, $val) = @each($result))
  $activ=$val["active"];
 If ($activ==1)return true; else false;
}

Potrzebue sprawdzic w bazie mysql czy dany uzytkownik jest aktywy
wiem ze ten kod nie jest optymalnei napisany, co byście poradzili ? i czy bezpiecznei jest robic "global $HTTP_SESSION_VARS;"

Zeby nie bylo czegoś takeigo :

<?php if ($password == '12345') $auth=1; ... if ($auth==1) print 'tajny kod'; ?>

Wystarczy teraz wywołać skrypt z parametrem $auth=1, żeby
otrzymać 'tajny kod': http://www.przyklad.com/strona.php?auth=1

0
shivanwk napisał(a)

Zeby nie bylo czegoś takeigo :

<?php if ($password == '12345') $auth=1; ... if ($auth==1) print 'tajny kod'; ?>

Wystarczy teraz wywołać skrypt z parametrem $auth=1, żeby
otrzymać 'tajny kod': http://www.przyklad.com/strona.php?auth=1

<?php $auth=0; if ($password == '12345') $auth=1; ... if ($auth==1) print 'tajny kod'; ?>

teraz http://www.przyklad.com/strona.php?auth=1 nie zadziała

0

jedno co musisz sobie uzmyslowic nie uzywa sie nigdy opcji register_globals dlatego ze one tak naprawde nie ulatwiaja zycia bo czesto zapomnisz cos wyzerowac jakies zmiennej albo tez czesto moze sie zdarzyc sytuacja ze ta sama nazwa jest dla innej zmiennej uzyta co sprowadzi do nieumyslnego nadpisania zawartosci i nieprawidlowego dzialania skryptu itp... no wad tego rozwiazania jest wiele i nawet sam zespol PHP niezaleca stosowac register_globals miedzy innymi z tych powod i jeszcze wielu innych wplywa rowniez na gorsza wydajnosc skryptow poniewaz dodatkowo musi alokowac pamiec dla kolejnych zmiennych globalnych... dlatego uzywa sie superglobalnych takich jak $_SESSION, $_COOKIE, $_SERVER, $_REQUEST, $_GET, $POST itd...
a tak przy okazji jaka ty masz w ogole wersje PHP? bo od wersji 4.1 dostepna juzjest globalna $_SESSION zamiast $HTTP_SESSION_VARS

1 użytkowników online, w tym zalogowanych: 0, gości: 1