Toon posts:

[php] [sessie] problems... :(

Pagina: 1
Acties:

Verwijderd

Topicstarter
De code:

test.php
PHP:
1
<?  session_start();  include("../unio/incl/var.inc.php");  mysql_connect("$db_hostname", "$db_user", "$db_password") or die ("GVD");  mysql_select_db("$db_name");  function login_form() {        print("<form name=login_form method=get action=$PHP_SELF>");        print("<input type=text name=u_name><br>\n");        print("<input type=text name=u_pass><br>\n");        print("<input type=submit value=login>\n");  }  function login_check($u_name, $pass) {        $check_q="SELECT id, type, pass FROM user WHERE name=\"$u_name\"";        $check_r=mysql_query($check_q);        list($u_id, $u_type, $u_pass) = mysql_fetch_row($check_r);        print("<b>Doorgegeven:</b> \$u_name = $u_name <br> \$pass = $pass <br>\n");        print("<b>Gekregen van db:</b> \$u_id=$u_id \$u_type=$u_type \$u_pass = $u_pass");        if ($pass == $u_pass) {                $blaat = "blaat";                session_register("blaat");                session_register("u_id");                session_register("u_type");        }  }  login_form();  print("<br><br>\n");  login_check($u_name, $u_pass);  $sid=session_id();  print("<br>naar pagina <a href=test2.php>2</a>");?>

test2.php:
PHP:
1
<?session_start();echo $HTTP_SESSION_VARS["u_id"];echo $HTTP_SESSION_VARS["u_type"];echo $HTTP_SESSION_VARS["blaat"];?>

Het probleem:
in test 2 geeft hij de variable niet aan :(
hoe kan dit nou weer???
wat doe ik fout....

Verwijderd

hmm, omdat je die session_register in een functie aanroept was er iets speciaals mee... php.net/session-register ...

Verwijderd

Topicstarter
Bedankt aan zellufs en aan twebb@capsheaf.com (php.net) ben ik er achter :)
zo doet ie het :)
PHP:
1
<?  session_start();  include("../unio/incl/var.inc.php");  mysql_connect("$db_hostname", "$db_user", "$db_password") or die ("GVD");  mysql_select_db("$db_name");  function session_var_init($var, $val) {        if (!session_is_registered($var)) {                session_register($var);                $GLOBALS[$var] = $val;        }  }  function login_form() {        print("<form name=login_form method=get action=$PHP_SELF>");        print("<input type=text name=u_name><br>\n");        print("<input type=text name=u_pass><br>\n");        print("<input type=submit value=login>\n");  }  function login_check($u_name, $pass) {        $check_q="SELECT id, type, pass FROM user WHERE name=\"$u_name\"";        $check_r=mysql_query($check_q);        list($u_id, $u_type, $u_pass) = mysql_fetch_row($check_r);        print("<b>Doorgegeven:</b> \$u_name = $u_name <br> \$pass = $pass <br>\n");        print("<b>Gekregen van db:</b> \$u_id=$u_id \$u_type=$u_type \$u_pass = $u_pass");        if ($pass == $u_pass) {                session_var_init('u_id', $u_id);                session_var_init('u_type', $u_type);        }  }  login_form();  print("<br><br>\n");  login_check($u_name, $u_pass);  $sid=session_id();  print("<br>naar pagina <a href=test2.php>2</a>");?>

test2.php
PHP:
1
<?session_start();echo $HTTP_SESSION_VARS["u_id"];echo $HTTP_SESSION_VARS["u_type"];?>

Verwijderd

PHP's session systeem is nogal ondoorgrondelijk als het om scopes gaat.