Put "session_start()" somewhere in your code. $_SESSION isn't set until you "start" your session. And don't set session variables by $_SESSION[foo] = bar; DO this: $foo = bar; session_register("foo"); Much better. However, if anyone can correct me, go for it. I just believe that setting global variables that the system controls and writes is a bad idea unless you use the functions that you should. Get out of the habit of SETTING variables using $_POST or $_SESSION or $GLOBALS. DO get in the habit of setting globals by just setting your variables correctly in the right scope. Peter On Tue, 29 Oct 2002, Seabird wrote: > Hi everyone, > > I use a login-script, but for some reason I keep losing my $_SESSION > variables. Can Anyone tell me why? > > Here's my login script: > > <?php > if(isset($_POST['submit'])) { // if form has been submitted > /* check they filled in what they were supposed to and authenticate */ > if(!$_POST['uname'] | !$_POST['passwd']) { > print '<form action="index.php" method="post"> > <div align="left"> > <input class="test" name="uname" type="text" size="8" > maxlength="8"> > <input class="test" type="password" size="8" maxlength="8" > name="passwd"> > <input name="submit" type="submit" value="Login"> > <br> > <span class="welcome">please fill in the required > fields.</span></div> > </form> > '; > } > // authenticate. > if(!get_magic_quotes_gpc()) { > $_POST['uname'] = addslashes($_POST['uname']); > } > $check = $db_object->query("SELECT username, password FROM users WHERE > username = '".$_POST['uname']."'"); > if(DB::isError($check)) { > print '<form action="index.php" method="post"> > <div align="left"> > <input class="test" name="uname" type="text" size="8" > maxlength="8"> > <input class="test" type="password" size="8" maxlength="8" > name="passwd"> > <input name="submit" type="submit" value="Login"> > <br> > <span class="welcome">username doesn\'t exist.</span> <a > class="header" > href="javascript:loadPage(\'mainlayer\',null,\'login/signup.php\')">sign up > here</a></div> > </form> > '; > } > $info = $check->fetchRow(); > // check passwords match > $_POST['passwd'] = stripslashes($_POST['passwd']); > $info['password'] = stripslashes($info['password']); > $_POST['passwd'] = md5($_POST['passwd']); > if($_POST['passwd'] != $info['password']) { > print '<form action="index.php" method="post"> > <div align="left"> > <input class="test" name="uname" type="text" size="8" > maxlength="8"> > <input class="test" type="password" size="8" maxlength="8" > name="passwd"> > <input name="submit" type="submit" value="Login"> > <br> > <span class="welcome">wrong password, try again</span></div> > </form> > '; > } > > // if we get here username and password are correct, register session > variables and set > // last login time. > $date = date('m d, Y'); > $update_login = $db_object->query("UPDATE users SET last_login = '$date' > WHERE username = '".$_POST['uname']."'"); > $_POST['uname'] = stripslashes($_POST['uname']); > $_SESSION['username'] = $_POST['uname']; > $_SESSION['password'] = $_POST['passwd']; > $db_object->disconnect(); > ?> > <span class="welcome">Welcome <a class="header" > href="javascript:loadPage('mainlayer',null,'users/edit.php?user=<?=$_SESSION > ['username']?>')"><font > color="white"><?=$_SESSION['username']?></font></a><br><a class="header" > href="login/logout.php">Logout</a> > </span> > <?php > } > else { // if form hasn't been submitted > ?> > <form action="<?=$HTTP_SERVER_VARS['PHP_SELF']?>" method="post"> > <div align="left"> > <input class="test" name="uname" type="text" size="8" > maxlength="8"> > <input class="test" type="password" size="8" maxlength="8" > name="passwd"> > <input name="submit" type="submit" value="Login"> > <br> > <a class="header" > href="javascript:loadPage('mainlayer',null,'login/signup.php')">sign up > here</a> </div> > </form> > <?php > } > ?> > > -- > http://seabird.jmtech.ca > > Attitude is Everything! > But Remember, Attitudes are Contagious! > Is Yours worth Catching???? > > > > -- > PHP Database Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > --------------------------------------------------------------------------- Peter Beckman Systems Engineer, Fairfax Cable Access Corporation beckman@purplecow.com http://www.purplecow.com/ --------------------------------------------------------------------------- -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php