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