Kenneth Brun Nielsen skrev:
> <?
> include('include/sql.php');
> db_connect();
> $teams = mysql_query("SELECT teamID, teamname FROM teams WHERE
> login = '$login' AND password = '$password'");
> mysql_close();
> if($row = mysql_fetch_object($teams))
> {
> session_start();
> $userid = $row->teamID;
> session_register("userid");
> $usertype = 1;
> session_register("usertype");
> $username = $row->teamname;
> session_register("username");
> }
> header("Location: $referer?PHPSESSID=$PHPSESSID");
> ?>
Problemet ligger i den måde du registrerer dine sessions.
session_register() er afhængig af globale variabler, som standard ikke
(bør) være sat - søg efter register_globals hvis du vil have en dybere
forklaring.
Din kode bør opdateres:
<?
session_start();
include('include/sql.php');
db_connect();
$login = $_POST["login"];
$password = $_POST["password"];
$teams = mysql_query("SELECT teamID, teamname FROM teams WHERE
login = '".mysql_real_escape_string($login)."' AND password =
'".mysql_real_escape_string($password)."'");
mysql_close();
if($row = mysql_fetch_object($teams))
{
$userid = $row->teamID;
$_SESSION["user_id"] = $userid;
$usertype = 1;
$_SESSION["usertype"] = $usertype;
$username = $row->teamname;
$_SESSION["username"] = $username;
}
// Overvej nødvendigheden af at medsende session id'et
header("Location: ".$referer."?PHPSESSID=".session_id());
?>
Ligeledes tilgås dine session variabler således:
$username = $_SESSION["username"];
eller
if($_SESSION["usertype"] == 1)
echo "Typen er nummer 1";
--
Dan Storm - storm at err0r dot dk /
http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!