Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Know-how  Teil von  Sicherheit
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Cookie-basierte Authentifizierung




Auf der Grundlage der zweiten Lösung für die Session-basierte Authentifizierung können Sie nach dem gleichen Schema vorgehen, um eine Cookie-basierte Lösung einzusetzen. Diese basiert ebenfalls auf insgesamt drei Dateien:
  • cookielogin.php – Enthält die Eingabemaske samt Authentifizierungsfunktion.
  • gruss.php – Auf diese Seite gelangt der Anwender nach dem Login.
  • logout.php – Hier wird der Anwender ausgeloggt und verabschiedet.

Die Cookie-basierte Lösung setzt voraus, dass der Anwender das Anlegen von Cookies auf dem Client gestattet. Sie hat gegenüber der Session-basierten Lösung den Vorteil, dass der Anwender selbst nach einem Neustart des Systems oder des Browsers eingeloggt bleibt. Erst nachdem sich der Anwender ordnungsgemäß ausgeloggt hat, wird er nicht mehr als authentifizierter Anwender erkannt.

Beispiel – cookielogin.php

<?

function check_auth($nutzer,$pwd) {
  $nutzer_liste = array ("matthias" => "mad", "caroline" => "car");
  if (isset($nutzer_liste[$nutzer]) && ($nutzer_liste[$nutzer] == $pwd)) {
    return true;
  } else {
    return false;
  }
}

$geheim_wort = 'geheim';
unset($username);

if ($_COOKIE['login']) {
  list($c_username, $cookie_hash) = split(',',$_COOKIE['login']);
  if (md5($c_username.$geheim_wort) == $cookie_hash) {
    $_POST["$username"] = $c_username;
  } else {
    echo "Sie besitzen kein gültiges Cookie!";
  }
}

if ($_POST["$username"]) {
  header('Location: gruss.php');
} else {
if (check_auth($_POST['username'], $_POST['passwort'])) {
  setcookie('login', $_POST['username'].','.md5($_POST['username'].$geheim_wort),time()+60*60*24*30);
  echo "Sie sind eingeloggt!";
  echo "<p><a href='gruss.php'>Weiter</a>";
} else {
echo <<<Login
<form method="post" action="cookielogin.php">
Benutzername:<br>
Benutzer:
<input type="text" name="username"><br>
Passwort:
<input type="password" name="passwort"><br>
<input type="submit" value="Login">
</form>
Login;
}
}

?>

Beispiel – gruss.php

<?

$geheim_wort = 'geheim';
unset($_POST["$username"]);

if ($_COOKIE['login']) {
  list($c_username, $cookie_hash) = split(',',$_COOKIE['login']);
  if (md5($c_username.$geheim_wort) == $cookie_hash) {
    $_POST["$username"] = $c_username;
  } else {
    echo "Sie besitzen kein gültiges Cookie!";
  }
}

if ($_POST["$username"]) {
  echo "Guten Tag " . $_POST["$username"];
  echo "<a href='logout.php'>Ausloggen</a>";
} else {
  echo "Guten Tag, anonymer Besucher!";
}

?>



Beispiel – logout.php

<?

$geheim_wort = 'geheim';
unset($_POST["$username"]);

if ($_COOKIE['login']) {
  list($c_username, $cookie_hash) = split(',',$_COOKIE['login']);
  if (md5($c_username.$geheim_wort) == $cookie_hash) {
    $_POST["$username"] = $c_username;
  } else {
    echo "Sie besitzen kein gültiges Cookie!";
  }
}

if ($_POST["$username"]) {
  setcookie('login','',time()-84000);
  echo "Bis bald ". $_POST["$username"];
  echo "<br><a href='cookielogin.php'>Login</a>";
} else {
  echo "Fehler beim Ausloggen!";
}

?>

Das Cookie verfällt nach 30 Tagen von selbst (time()+60*60*24*30).


 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt