From: [EMAIL PROTECTED]
Operating system: WinXP
PHP version: 4.2.3
PHP Bug Type: Session related
Bug description: Session variable dissapear
Hello.
I got a 4-5 diffrent scripts that I use on a page to login on my site (db
functions, general functions, login functions, html header/footer and
loginpage).
When I login everything works fine except some session variables doesnt
register.
I've used a die($_SESSION["url"]); right before the
Header("startpage.php"); and the string prints correct. When I remove the
die and put it on the first line in startpage.php it complains on "Notice:
Undefined index: url in E:\projects\inetpub\cl4\user\startpage.php on line
3"
I've tried so reproduce the error on a more slim page without success.
These session variables are set ok:
$_SESSION["email"] = $rs["email"];
$_SESSION["userid"] = $rs["userid"];
$_SESSION["nickname"] = $rs["nickname"];
$_SESSION["gameid"] = 1;
$_SESSION["modid"] = 1;
the variables in user_admin_flags_get() and user_teams_get() are not set.
login functions (user_login is called from the submit):
function user_login($email, $password)
{
//Check if the activationcode match the saved one
$sql = "SELECT userid FROM user_info WHERE email='".addslashes($email)."'
AND password='".addslashes($password)."'";
if (!$userid = db_execute_scalar($sql))
{
$GLOBALS["errormsg"] = "Incorrect email/password.";
return false;
}
return user_login_userid($userid);
}
function user_login_userid($userid)
{
$sql = "SELECT userid,email,status,nickname FROM user_info WHERE
userid=$userid";
if (!$resid = db_query($sql))
{
$GLOBALS["errormsg"] = "Failed to query the database ( $sql ).";
return false;
}
//Fetch the row
if (!$rs = db_fetch_row($resid))
{
$GLOBALS["errormsg"] = "Invalid/deleted userid.";
return false;
}
if ($rs["status"] <= 0)
{
$GLOBALS["errormsg"] = "You're account are locked / You have not been
validated.";
return false;
}
$_SESSION["email"] = $rs["email"];
$_SESSION["userid"] = $rs["userid"];
$_SESSION["nickname"] = $rs["nickname"];
$_SESSION["gameid"] = 1;
$_SESSION["modid"] = 1;
user_admin_flags_get($userid);
user_teams_get($userid);
return true;
}
//fetch adminflags for the user
function user_admin_flags_get($userid)
{
//Check if the activationcode match the saved one
$sql = "SELECT * FROM user_admin WHERE userid=$userid";
if (!$resid = db_query($sql))
{
$GLOBALS["errormsg"] = "Failed to query the database ( $sql ).";
return false;
}
//set nada
if (db_eof()) {
$_SESSION[0][0] = 0;
return;
}
//set all flags
while (!$rs = db_fetch_row($resid))
{
$_SESSION[$rs["modid"]] = $rs["flags"];
}
//Set all nonexisting modflags to 0
for ($a = 1; $a < MOD_COUNT; $a++)
{
if (!isset($_SESSION[$a]))
$_SESSION[$a] = 0;
}
return true;
}
//fetch teams for the user
function user_teams_get($userid)
{
//Check if the activationcode match the saved one
$sql = "SELECT ti.teamid, ti.name, tu.status FROM team_user tu, team_info
ti WHERE ti.teamid=tu.teamid AND tu.userid=$userid AND tu.status>0";
if (!$resid = db_query($sql))
{
die($sql);
$GLOBALS["errormsg"] = "Failed to query the database ( $sql ).";
return false;
}
$_SESSION["url"] = '<a class="ff" href="../user/startpage.php">mypage</a>
';
//Build a teamurl here
//=======================================================
if (db_eof()) {
die("TEAM EOF");
return true;
}
//Fetch all teams that the user is a member in.
$a = 0;
while ($rs = db_fetch_row($resid))
{
$_SESSION["url"] .= ' | <a class="ff"
href="../team/myteam.php?teamid='.$rs["teamid"].'">'.$rs["name"].'</a> ';
//$_SESSION["teamname"][$a] = $rs["name"];
$_SESSION["teamstatus"][$rs["teamid"]] = $rs["status"];
$a++;
}
$_SESSION["teamcount"] = $a;
return true;
}
--
Edit bug report at http://bugs.php.net/?id=19760&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=19760&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=19760&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=19760&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=19760&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=19760&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=19760&r=support
Expected behavior: http://bugs.php.net/fix.php?id=19760&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=19760&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=19760&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=19760&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=19760&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=19760&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=19760&r=isapi