Sessions checken...geht nicht!!

Headymaster

Erfahrenes Mitglied
Hallo!

ich checke auf meiner Seite, ob Sessions gestzt sind und wenn ja dann lass ich die Datenbank auf das userlevel abfragen, wenn nicht, dann wird der login angezeigt:
PHP:
<?php
// funktion zum Überprüfen des cookies oder der Session-Variablen
function checkuser()
{
   if(isset($_SESSION['user_id']) && isset($_SESSION['user_pwd']))
   {
   $checkuserlevel = mysql_query("SELECT rights FROM user 
                                 WHERE
								 id = '".$_SESSION['user_id']."'
								 AND password = '".$_SESSION['user_pwd']."'");
   $userlevel = mysql_fetch_assoc($checkuserlevel);
   return $userlevel['level'];
   }
   else
   {
   return "ausgeloggt";
   }
}

// Auswertung ob der Login oder das UserMenu angezeigt werden soll#
if (checkuser() >= "1")
{
$user_menu = showtpl("index/user", array("CSS" => "inc/templates/standard/css/css.css",
                                         "Title" => "$title",
										 "u_lobby" => "index.php?id=23",
										 "u_lobby_n" => "UserLobby",
										 "u_profil" => "index.php?id=abc",
										 "u_profil_n" => "UserProfil",
										 "u_admin" => "index.php?id=!!",
										 "u_admin_n" => "AdminPanel"));
}
else
{
$user_menu = showtpl("index/login", array ("CSS" => "inc/templates/standard/css/css.css",
                                           "lostpw" => "index.php?id=1&do=lostpw",
										   "register" => "index.php?id=1&do=register"));
}
?>

Das Problem ist nun, dass einfach immer das UserMenu angezeigt wird, aber nie der Login, obwohl überhaupt keine Sessions gesetzt sind?!

Habt ihr ne Idee?

würde mich sehr über Hilfe freuen.

MFG Niels
 
jaja, PHPs dynamische Typisierung ist manchmal ziemlich tricky, weswegen es sich oft anbietet "typsicher" zu vergleichen, sprich 3 Gleichheitszeichen.

In deinem Fall fragst du ob checkuser etwas zurückgibt was größer oder gleich 1 ist. Der Trick ist, das für PHP intern die 1 für "true" steht. Des Weiteren gibst du "ausgeloggt" zurück. Das ist für PHP dann also eine Rückgabe, also stimmt die Abfrage immer. Die Abfrage die du da machst lautet also (für PHP) "Wenn checkuser() etwas zurück gibt (true) dann mach das so und so".

In deinem Fall musst du einfach nur anstelle von

PHP:
<?php
return "ausgeloggt";
?>

PHP:
<?php
return false;
?>

schreiben und schon gehts.
 
hehe....das ist ja lustig.....auf was man alles für Fehler stößt...die man so gut wie nie wieder machn wird.....wenn meine eine Websprache zu lernen versucht^^

Also es geht jetzt.

Vielen Dank

MFG Niels
 
Zurück