Variablen gehen verloren ?!

DJauie

Mitglied
Schönen guten Morgen!
Ich sitz seit gestern Abend da und raffs einfach net...am besten erstmal den Code:

das hier steht ganz oben...
PHP:
<? 
/* Anmeldedaten checken
   auf logout überprüfen */
   
include 'sessionhelpers.inc.php';
if (isset($_POST['login'])) 
{ 
    $userid=check_user($_POST['username'], $_POST['userpass']); 
    if ($userid!=false) {
        login($userid); 
		$rights=user_rights($_POST['username']);
		$name=user_begruessen($_POST['username']);
		}
    else 
       $meldung='<p class="Meldung">Ihre Anmeldedaten waren nicht korrekt!</p>'; 
} 

if(isset($_GET['logout'])){
logout();
}

if(isset($_GET['user'])){
$seite='user.php';
}

Das hier stellt mein Menu dar, dass je nach Benutzer, der sich eingeloggt hat anders aussehen soll.
PHP:
<div class="menu" id="Menu">
  <? 
  /* Menü je nach Username anders laden */
  
  if(!isset($_GET['user'])) {
  if (logged_in()) {  
  if(file_exists($rights['Menu']))
  include $rights['Menu'];
  else {
  /* Der Test, ob die variablen noch da sind */
  echo '<br><br>Menü: ', $rights['Menu'], '<br>Seite: ', $rights['Seite'], '<br>Name: ', $name['Name'];
  /* ---------------------------------------- */
  include 'menu.php';
  }
    }
  else
  include 'menu.php';
  }
  else {
  /* Der Test, ob die variablen noch da sind */
  echo '<br><br>Menü: ', $rights['Menu'], '<br>Seite: ', $rights['Seite'], '<br>Name: ', $name['Name'];
  /* ---------------------------------------- */
  if(file_exists($rights['Menu']))
  include $rights['Menu'];
  else
  include 'menu.php';
  }
  ?>
  </div>

Das passt alles soweit, dass es möglich ist, verschiedene User einzuloggen, die jeweils ein anderes Menü angezeigt bekommen.
Wenn ich im Menü jetzt aber per Hyperlink "..\index.php?user" einen anderen Inhalt im content-div anzeigen will, dann spinnt das Menü. Der Inhalt wird angezeigt, jedoch wieder das standart-Menü. Das is nach meinem Überlegen auch nach der Funktion zu urteilen schon richtig, aber es sollte doch anders sein! Damit ich sehe, ob die Variablen überhaupt noch da sind, hab ich den Test gemacht, wie ihr zwischendrin seht. Und siehe da, die sind weg, sobald ich per link "..\index.php?user" das erste Mal aufgerufen habe!

Die Variablen werden beim einloggen übergeben:
PHP:
<form action="index.php" method="post" name="login" id="login">

Jetzt hab ich natürlich auch schon das hier probiert (siehe erster Code-Teil):
PHP:
if ($userid!=false) {
        login($userid); 
		$rights=user_rights($_POST['username']);
		$name=user_begruessen($_POST['username']);
		$_SESSION[$name, $rights]]
}
    else
...aber dann warn die Variablen trotzdem weg...
irgendwo muss doch en Bock drin sein...
:(
 
Aehm, haeh?

Nimm doch Sessions zum Einloggen. Pruefe auf einer eigenen Seite, ob das Einloggen okay war, dann speicher alle Daten in verschiedenen Sessions und leite weiter auf eine neue Seite mit angepasstem Menue. Wenn Login nicht erfolgreich, dann halt zurueck zur Startseite oder wohin auch immer.

Die Post´s werden nur auf die naechste Seite uebernommen. Sessions bleiben bestehen.

Kann aber auch sein, dass ich dein Problem hier falsch verstanden habe...?! Falls ja, dann sorry!

Florian

_______________________

Webdesign Krefeld
 
Zurück