ID: 20425 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Bogus Bug Type: Session related Operating System: Linux PHP Version: 4.2.3
Previous Comments: ------------------------------------------------------------------------ [2002-11-15 04:38:12] [EMAIL PROTECTED] Maybe it won't be a bug, but I wonder what it is. I have fixed my problem by simply, recompiling PHP as a module Now everything works fine again. Thanks, Stefano ------------------------------------------------------------------------ [2002-11-14 10:50:02] [EMAIL PROTECTED] Ok, I corrected the errors as missing single quote and missing space between location and otherfile.php. The fact that induced me to think to a PHP bug, is that these same scripts work fine on 2 different server with same configuration (php+apache) as my local one. Thanks, stefano ------------------------------------------------------------------------ [2002-11-14 09:09:34] [EMAIL PROTECTED] Sorry, but your problem does not imply a bug in PHP itself. For a list of more appropriate places to ask for help using PHP, please visit http://www.php.net/support.php as this bug system is not the appropriate forum for asking support questions. Thank you for your interest in PHP. A number of mistakes in your script are likely causes of your script not to working. 1) Instead of session_register("sessione"); add variables to the session in this fassion $_SESSION['sessione'] = 'value'; 2) $sessione[nome]=$fnome; is wrong, what's 'none', it probably should be $sessione['nome']=$fnome;, no? 3) Your location header is wrong for 2 reasons, 1st you are using relatives pathes, always a BAD idea and your header("Location:otherfile.php?".SID); is missing a space between Location: and otherfile. 4) Use session_id() and not SID to retrieve the session id. ------------------------------------------------------------------------ [2002-11-14 08:41:24] [EMAIL PROTECTED] You will find some useful information here: 2nd comment on http://www.php.net/manual/en/function.session-register.php ------------------------------------------------------------------------ [2002-11-14 05:03:09] [EMAIL PROTECTED] After execution of header("Location:otherfile.php?".SID); the session file previously created does not contain all the items posted by a form. My configuration: Linux RH6.2 (tested also RH7.2 and RH 7.3) Apache 1.3.27 PHP 4.2.3 compiled as a CGI './configure' '--enable-shared' '--with-system-regex' '--with-gd=/usr/local' '--enable-ftp' '--with-mysql' '--enable-track-vars' '--with-ttf=/usr' '--enable-gd-native-ttf' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--enable-force-cgi-redirect' '--enable-dbase' '--with-config-file-path=/usr/local/apache/conf' register_globals=1 session_trans_sid=1 (tested also =0) I have 2 files index.php and lib1.inc When I start index.php a session file is created (under /tmp) and contains the variable name ( !sessione| ). When I post the form (in index.php), the session file under /tmp does not get updated. If I comment out the line header("Location:otherfile.php?".SID); instead, the session file is updated with the values posted by the form. It behaves as if execution of header("location ... cleared the session file. These are the files involved: LIB1.INC <? session_start(); session_register("sessione"); [....other functions here ....] function SessioneUtente($fusern,$fpassw,$fnome,$fcognome,$fpriv,$femail) { global $sessione; $sessione[nome]=$fnome; $sessione[cognome]=$fcognome; $sessione[username]=$fusern; $sessione[password]=$fpassw; $sessione[priv]=$fpriv; $sessione[email]=$femail; $sessione[loggato]=true; } ?> ############################################ INDEX.PHP <? include("lib1.inc"); $messaggio=""; if (isset($azione) && $azione=="vai") { if(empty($logon[username]) || empty($logon[password])) $messaggio.="devi riempire tutti i campi"; //DEFINISCO l'ARRAY CU che conterr� i dati utente (username,password,priv, ecc.) $cu=checkUser( $logon[username], $logon[password]); if(!empty($logon[password]) && $logon[password]!=$cu[password]) $messaggio .= "utente o password errati, riprova"; if ($messaggio=="") { SessioneUtente($cu[username],$cu[password],$cu[nome],$cu[cognome],$cu[priv],$cu[email]); header("Location:otherfile.php?".SID); } } ?> <html> <head> <title>login</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Quanta Plus"> </head> <body> <? if($messaggio!="") echo $messaggio; ?> <form action="<?echo $PHP_SELF; ?>" method="post"> <input type="hidden" name="azione" value="vai"> <div align=center> <table border=1 cellpadding=0 cellspacing=0> <tr> <td colspan=2> Login </td> </tr> <tr> <td> Username </td> <td> <input type="text" name="logon[username]" value="<?echo $logon[username]; ?>"> </td> </tr> <tr> <td> Password </td> <td> <input type="password" name="logon[password]" maxlength=8> </td> </tr> <tr> <td align=right colspan=2> <input type="submit" value=accedi> </td> </tr> </table> </div> </form> </body> </html> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=20425&edit=1
