This is getting frustrating!
| From: | Michel Laine | Date: | Thu, 06 Dec 2001 16:46:41 +0000 |
| Subject: | This is getting frustrating! | ||
| Groups: | php.windows | ||
| Request: | Send a blank email to php-windows+get-10771@lists.php.net to get a copy of this message | ||
Using PHP 404pl1 / 3.23.22-beta / sessions is enabled and working.
Why the *#%&" doesn't this piece of code work?
The comments are in swedish, but since i think that the program is
easily understood anyway, i didn't translate them.
This is supposed to be a login screen where i save the page the user
came from.
So when the user has logged in - he/she is supposed to be able to return
to the page he left off from by clicking on the "Gå tillbaka" link.
Imagine that this code gets called from a page called start.php
The first time the referer to start.php gets stuffed in the global
session variable $auth[referens].
Since the login page is called every time the user makes a try to login
i also set a 'flag' called refhold to avoid $auth[referens] to be
altered.
This works as expected until i hit the login button and execute the
POST.
Then, somehow the $auth[referens] get changed (even thou the flag is set
and thus don't execute the "$auth[referens]
=$HTTP_SERVER_VARS['HTTP_REFERER'];" line.
Anyone got a clue?
=========================================================
code
=========================================================
<?php
include ("../database.inc");
session_start();
session_register("auth");
// Memorera referens
if ($auth[refhold] == 0 ){
$auth[referens] =$HTTP_SERVER_VARS['HTTP_REFERER'];
echo "refhold sätts<BR>";
$auth[refhold] = 1;
} else {
echo "refhold är satt<BR>";
}
// Kontrollera inloggning
if ($HTTP_POST_VARS['submit'] == "LOGGA IN"){
// Tag hand om inloggningsuppgifterna
$login = $HTTP_POST_VARS['login'];
$pwd = $HTTP_POST_VARS['pwd'];
// Koppla upp mot databasen
mysql_connect($DBserver, $DBlogin, $DBpwd);
mysql_select_db($DBnamn);
$result = mysql_query("SELECT anvandare.login, anvandare.pwd,
anvandare.id, anvandare.namn, anvandare.efternamn, anvandare.sign FROM
anvandare");
if ($row = mysql_fetch_array($result)) {
do {
if (( $row[0] == $login) && (($row[1] == $pwd) OR ($row[1] ==
NULL) )){
$auth = array ("login" => $login,
"id" => $row[2],
"namn" => $row[3],
"efternamn" => $row[4],
"sign" => $row[5],
"inloggad" => 1);
}
} while($row = mysql_fetch_array($result));
} else {
unset($auth[inloggad]);
}
}
if (! isset($auth[inloggad])) {
echo "Ej inloggad";
} else {
echo "Inloggad";
}
?>
<HTML>
<HEAD><TITLE>Logga in</TITLE></HEAD>
<BODY>
<FORM ACTION="<?PHP echo $PHP_SELF; ?>" METHOD=POST>
<table border="0" width="25%">
<TR>
<TD>Namn:</TD><TD><INPUT TYPE="text"
NAME="login"></TD>
</TR>
<TR>
<TD>Lösenord:</TD><TD><INPUT TYPE="password"
NAME="pwd"></TD>
</TR>
<TR>
<TD colspan="2" align="center"><INPUT TYPE="submit"
NAME="submit"
VALUE="LOGGA IN"></TD>
</TR>
</table>
</FORM>
<a href="<?PHP echo $PHP_SELF; ?>">hoppa till denna sida igen</a>
<a href="<?PHP echo "$auth[referens]";?>">Gå tillbaka</a>
<a href="../Login/Logout.php">Logga ut</a>
</BODY>
</HTML>
=========================================================
--
Michel Laine