Der Schüler: Auf mySQL basierendes LOGIN-SCRIPT

Hallo!

Hab nen auf mySQL - basierendes LOGIN-Script gefunden, habe aber ein Problem mit dem Ausloggen!

Da einloggen und absichern von anderen Seiten funktioniert einwandfrei! Verlasse ich aber die Seite und komme wieder drauf ist immernoch alles sichtbar!

Ich bräuchte nun nur noch so etwas wie einen Link auf den man klickt und dann wird die SESSION beendet.

INDEX.PHP

<?

Hier ggf. den Header einfügen!

if      ($anmelden) { anmelden($fertig, $user, $password1, $password2, $email);}
else if ($abmelden) { abmelden($fertig, $user, $password);}
else if ($forgot)   { forgot($fertig, $email);}
else                { login($fertig, $user, $password);}

hier ggf. den Footer einfügen!

?>

<?
function inhalt($user)
{
session_start();
session_register("user");

##################################
#Bauen Sie hier Ihren Inhalt ein!#
#                                #
?>

<b>Geschützter Inhalt!</b>

<?
#     #
#   Ab hier nichts mehr ändern!  #
##################################

}
?>

<?
function login($fertig, $user, $password)
{
include("config.php");

if ($fertig) {

$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
inhalt($user);
}
else {
echo "Falsches Passwort!";
}
}
}

}

else {
echo "Zum anmelden geht es <a href="$PHP_SELF?anmelden=yes">hier</a> lang!";
echo "<p><h2>Login</h2></p>";

echo "<form method="POST" action="$PHP_SELF?fertig=yes">";
 ?>
 <table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password" value=""></font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Login></td>
  </tr>
</table>
</form>
<?
echo "<p><a href="$PHP_SELF?forgot=yes">Passwort vergessen?</a><br><a href="$PHP_SELF?abmelden=yes">Abmelden</a></p>";
}

}
?>

<?
function anmelden ($fertig, $user, $password1, $password2, $email)
{
include("config.php");

if($fertig) {
 $abfrage1 = mysql_query("SELECT user FROM login");
 while ($row = mysql_fetch_object ($abfrage1)) {
 if ($row->user==$user) {
 echo "Dieser Benutzer existiert schon!";
 exit;
 }
 }
 if ($user=="" OR $password1=="" OR $password2=="" or $email=="") {
 echo "Sie haben mindestens ein Feld nicht ausgefüllt!";
 }
 else if ($password1!=$password2) {
 echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
 }
 else {
 $anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");
 echo "Erfolgreich angemeldet! Sie können sich nun einloggen:<br>";
 @login();
 }
}
else {
 echo "<h2>Anmelden</h2>";
 echo "<form method="POST" action="$PHP_SELF?anmelden=yes&fertig=yes">";
 ?>
 <table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password1" value=""></font></td>
  </tr>
  <tr>
    <td><font size="2">Wiederholen:</font></td>
    <td><font size="2"><input type="password" name="password2" value=""></font></td>
  </tr>
  <tr>
    <td><font size="2">E-Mail:</font></td>
    <td><font size="2"><input type="text" name="email" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Anmelden></td>
  </tr>
</table>
</form>
<?
}

}
?>

<?
function forgot ($fertig, $email)
{

include("config.php");

if ($fertig) {
$abfrage=mysql_query("SELECT * FROM login");
while ($row = mysql_fetch_object ($abfrage)) {
if ($email==$row->email) { $ismail="true"; }
}
if ($ismail=="true") {
$password=mysql_query("SELECT * FROM login WHERE email = '$email'");
while ($row = mysql_fetch_object ($password)) {
$nachricht="Hallo $row->user!\n\nIhr Passwort ist:\n\n$row->password\n\nMfG\nAdmin";
}
mail($email, "Passwort", $nachricht, "From: Administrator");
?>
<p>Das Passwort wurde Ihnen erfolgreich an die Adresse <i><? echo $email; ?></i> geschickt!<br>
Rufen Sie Ihre E-Mails ab und loggen Sie sich ein.<br></p>

<?

@login();
}
else { echo "Ihre angegebene E-Mail Adresse wurde nicht gefunden!";}
}
else {

echo "<p><h2>Passwort vergessen</h2><p>";
echo "<p><form method=post action="$PHP_SELF?forgot=yes&fertig=yes">";
?>
<table cellspacing="1" cellpadding="2" border="0">
<tr><td><font size="2">E-Mail Adresse:</font></td><td align=center><input type=text name=email></td></tr>
<tr><td colspan="2" align=center><input type=submit value="Schicken!"></td></tr>
</table></form></p>
<?
}
}
?>

<?
function abmelden($fertig, $user, $password)
{

include ("config.php");

if($fertig) {
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
$delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
}
else {
echo "Falsches Passwort!";
}
}
}

}
else {
  echo "<p><h2>Abmelden</h2></p>";
 echo "<form method="POST" action="$PHP_SELF?abmelden=yes&fertig=yes">";
 ?>
 <table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password" value=""></font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Abmelden></td>
  </tr>
</table>
</form>
<?
}

}
?>

DAAAAAAANKE!!!

  1. Da wird mir schon beim lesen schwindelig. session_register ist sehr, sehr alt und auch sonst wirkt mir das Ding nicht ganz koscher...

    Aber zu deiner Frage:

    <a href="./seite.php?logoff=true">Abmelden</a>

    und irgendwo am Anfang deiner Seite, zum Beispiel an der Stelle Hier Header einfügen das hier:

    if ($_GET['logoff']==="true") {
    session_destroy();
    }