Probleme mit Login und Sessions

Z

Zank

Hallo Leute,

ich habe ein kleines Problem mit meinem Login-Script.
Fangen wir mal ganz von vorne an.

In meiner Index.php ist folgender Code als Formular vorhanden:

PHP:
<?php if(!isset($_POST['login'])) { ?>
  <form method="post" action="<?php $PHP_SELF ?>">
                        <div align="right">
                          <input name="nickname" type="text" value="nickname" class="input"<?php if($_POST['nickname'] != "" ) {echo ' value="'.$_POST['nickname'].'"';} ?>>
                          <input name="password" type="password" value="passwort" class="input">
                          <br>
                          <input type="submit" name="login" value="Login">
					      <input type="reset" name="Submit2" value="Reset">
                        </div>
  </form>
					  <?php
					}elseif(!$_POST['nickname'] || $_POST['nickname'] == "") {
    echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href="index.php">Zurück</a></p>';
  }elseif(!$_POST['password'] || $_POST['password'] == "") {
    echo '<form action="index.php" method="post">';
    echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br>';
    echo '<input type="hidden" name="nickname" value="'.$_POST['nickname'].'">';
    echo '<input type="submit" name="zurueck" value="Zurück">';
    echo '</p>';
    echo '</form>';
  }else{
    $password = md5($password);
    $query = @mysql_query("SELECT Nickname, Passwort FROM klabauter_users WHERE Nickname = '".$_POST['nickname']."'") or die('Select ist fehlgeschlagen!');
    $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zurück</a></p>');
    if($password != $result['Passwort']){
      echo '<form action="index.php" method="post">';
      echo '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
      echo '<input type="hidden" name="nickname" value="'.$_POST['nickname'].'">';
      echo '<input type="submit" name="zurueck" value="Zurück"></p>';
      echo '</form>';
      die;
    }else{
      $user = $result['nickname'];
      session_register('nickname');
      echo '<p align="right"><span class="text">Willkommen, '.$_POST['nickname'].'!&nbsp;[<a href="index.php?bereich=logout">Logout</a>]</span></p>';
    }
  }
  ?>

Der Login funktioniert auch ohne Probleme.
Wenn ich dann aber auf einen Link klicke, ist der User auf der nächsten Siete automatisch ausgeloggt. Dabei führe ich direkt oben in meiner index.php den Befehl session_start(); durch!

Wieso sind die User also auf allen Folgeseiten wieder ausgeloggt?
Bin neu auf dem Gebiet mit Sessions, bin also für jeden Tip dankbar!
 
Oh mein Gott...das ist mehr als logisch @ ezias!

Manchmal kommt man nicht auf die einfachsten Sachen vor lauter Code-Schnippsel, etc!
Wie könnte ich den Check denn anhand des bisherigen Codes am unkompliziertesten durchführen? Eine Ahnung oder ein kleiner Tipp?
 
Zurück