[PHP] Session Variables Not Being Passed

2002-12-01 Thread Jami
The code that I have is as such:

//header.php
if(isset($_POST['login'])){
  $checkuser = mysql_query(SELECT * FROM mainacct WHERE username = 
'{$_POST['username']}' AND password = '{$_POST['password']}' , $connection) or die 
(Couldn't find user.);
  if (mysql_num_rows($checkuser)  0){
   while ($row = mysql_fetch_array($checkuser)){
$_SESSION['UN'] = $row['username'];
$_SESSION['UserLoggedIn'] = True;
   } 
  } else {
  header(Location:login.php);
   exit;
  }
}

This file is then used as an include in main.php. As long as the variables are used 
ONLY in the header.php file, it works. But when I try to call the session variables in 
main.php, it doesn't show the values of UN or UserLoggedIn. session_start() is called 
in main.php. Is this a quirk with sessions, or is there something more I am supposed 
to be doing? Running Apache 2 w/PHP 4.2.3 on WindowsXP.

Jami



RE: [PHP] Session Variables Not Being Passed

2002-12-01 Thread John W. Holmes


 -Original Message-
 From: Jami [mailto:[EMAIL PROTECTED]]
 Sent: Sunday, December 01, 2002 3:53 AM
 To: PHP General
 Subject: [PHP] Session Variables Not Being Passed
 
 The code that I have is as such:
 
 //header.php
 if(isset($_POST['login'])){
   $checkuser = mysql_query(SELECT * FROM mainacct WHERE username =
 '{$_POST['username']}' AND password = '{$_POST['password']}' ,
 $connection) or die (Couldn't find user.);
   if (mysql_num_rows($checkuser)  0){
while ($row = mysql_fetch_array($checkuser)){
 $_SESSION['UN'] = $row['username'];
 $_SESSION['UserLoggedIn'] = True;
}
   } else {
   header(Location:login.php);
exit;
   }
 }

You're only expecting one row to be returned, right? You could test like
this:

if($row = mysql_fetch_array($checkuser))
{
  $_SESSION['UN'] = $row['username'];
  $_SESSION['UserLoggedIn'] = TRUE;
}
else
{
  header(Location: http://yourdomain.com/login.php;);
  exit();
}

You should use an absolute URI for your header() call, not a relative
one. 

 This file is then used as an include in main.php. As long as the
variables
 are used ONLY in the header.php file, it works. But when I try to call
the
 session variables in main.php, it doesn't show the values of UN or
 UserLoggedIn. session_start() is called in main.php. Is this a quirk
with
 sessions, or is there something more I am supposed to be doing?
Running
 Apache 2 w/PHP 4.2.3 on WindowsXP.

Well, Apache 2 and PHP aren't stable together yet. It's not recommended
you use them together and that could be causing your problem.

Are you including this file before or after session_start()? If you call
session_start(), include the above code, and then $_SESSION['UN'] is not
available later in the main.php page, then it's a bug...

---John Holmes...



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php