Tom: Problem mit Eingabeformular

Beitrag lesen

Hello,

welche Art der "Anmeldung" soll es denn sein?
Möchtest Du die Identifikationsdaten jedes Mal wieder mitsenden? Dann ist es möglich, mit Basic Authentication zu arbeiten.

Dann musst Du nur dieses Stückchen Code in jedes zu schützende Script einbauen:

<?php   ### show_auth_vars.php ###

function authenticate()
    {
        Header("WWW-authenticate: basic realm="Privater Bereich"");
        Header("HTTP/1.0 401 Unauthorized");

##      Wahlweise komplette valide HTML-Seite includen
#        include("wunderbare_leider_nicht_Seite");
##      oder nur einen einfachen Text ausgeben lassen.
        echo "Benutzerdaten erforderlich!";
        exit;
    }

if (!isset($_SERVER['PHP_AUTH_USER'], $_SERVER['REMOTE_USER'])) authenticate();

if ($_SERVER['PHP_AUTH_USER'] != $password or $_SERVER['REMOTE_USER'] != $username) authenticate();

##  bis hierher, wenn die Anmeldung geklappt hat, geht es dann hier weiter...

echo "<pre>\r\n";
    echo htmlspecialchars(print_r($_SERVER,1));
    echo "</pre>\r\n";

?>

Alternativ kannst Du auch mit einem Token (Cookie) arbeiten, dass der Server dem Client sendet.
Am einfachsten geht das, wenn Du eine Session startest.

http://de3.php.net/manual/en/book.session.php

In einem Formular fragst Du dann auch wieder Name und Passwort ab, die Du immer dann überprüfst, wenn in der Session (das geht auch noch anders...) noch nicht vermerkt ist, dass die Überprüfung bereits stattgefunden hat. Wenn die "Anmeldung" erfolgreich war, also der Name zum Passwort passt, dann trägst Du das in das Session-Array einfach ein.

if($_POST['password'] == $password_des_users)
{
  $_SESSION['user'] = $username;
  $_SESSION['logintime'] = time();
}

und schon weißt Du beim nächsten request, dass der Benutzer sich schon angemeldet hatte und wie er heißt.

Dann ist nämlich

intval($_SESSION['logintime']) > 0

erfüllt.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de