> -----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