Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sicherheit
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite PHP-Skripte
Seite PHP Befehlsreferenz
Seite PHP5 Praxisbuch
Seite Gratis-Videolektionen*
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

Seite Anbieterverzeichnis

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 



 

Cookie basierte Authentifizierung




Auf der Grundlage der zweiten Lösung für die Session basierten 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 nach dem sich der Anwender ordnungsgemäss ausloggt 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>
Nutzer:
<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).


 


Session basierte Authentifizierung
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de