$_SESSION wird bei case-Anweisung nicht erkannt

Master Schorsch

Grünschnabel
Hallo erstmal!

Ich habe folgendes Problem:
Ich speichere Userstatus aus der Datenbank beim Login in $_SESSION['user_level'].
Wenn ich diese Variable ausgebe wird der Wert auch richtig angezeigt.
Wenn ich nun aber in einer if- oder case-Anweisung diesen Wert benutzen will wird er
nicht als "gleich" angesehen. D.h. er nimmt immer den default...

PHP:
    switch ($_SESSION['user_level'])
    {
      case "user":
       // eingeloggter User
      break;
    
      case "admin":
      // eingeloggter Admin
      break;
    
      default:
      // Gast
      break;
    }
   
 echo $_SESSION['user_level']; // User-level wird korrekt ausgegeben

Wär schön, wenn mir da einer weiterhelfen könnte. Ich sitze jetzt schon seit gestern an diesem Problem :(

Vielen Dank im Vorraus.

Schorsch
 
Oo bei mir gehts. Ansich kann ichs also nicht nachvollziehen. Poste mal bitte deinen ganzen Code.
 
Ok, ich hab jetzt mal alle (imho) relevante Sachen rauskopiert. Der Rest dürfte das Ergebnis nicht beeinflussen
PHP:
  <?php
  session_start();
  
  //includes
  
  switch ($_GET['action']) 
  {
    case "login":
  	$sql = "SELECT * FROM pwh_user where user_name=\"". $_POST['user'] ."\"";
  	$result = mysql_query($sql) or die(mysql_error());
  	$line = mysql_fetch_assoc($result);
  
  	if($line['id'])
  	{
  	  $_SESSION['user_name'] = $line['user_name'];
  	  $_SESSION['user_id'] = $line['user_id'];
  	  $_SESSION['user_level'] = $line['user_level'];
  	}else{
  	// Login fehlgeschlagen  
  	}
  	mysql_free_result($result);
    break;
  
    case "logout":
  	session_destroy();
    break;
  }
  
  // Es funktioniert nicht einmal wenn ich die Sessionvariable vorher überschreibe
  // $_SESSION['user_level'] = "user"; 
  
  switch ($_SESSION['user_level'])
 	{
 	  case "user":
 	   // eingeloggter User
 	  break;
 	
 	  case "admin":
 	  // eingeloggter Admin
 	  break;
 	
 	  default:
 	  // Gast
 	  break;
 	}
    
  echo ":::". $_SESSION['user_level'] .":::";
  ?>

Wenn mir jemand sagt, dass das so funktionieren sollte werd ich wohl nochmal alle Sessions rauslöschen und sie nochmal neu einbauen.

MfG
Schorsch
 
Zurück