screen-capture-92JQuery und Thickbox sind mittlerweile häufig anzutreffen. Ihre Stärke liegt in der schnellen Darstellung von Medien in einem Fenster über der eigentlichen Webseite.
Will man hier Formulare mit Interaktion einbauen scheint das Ganze komplexer.
Klingt kompliziert – ist es aber nicht. Man nehme ein Login Formular und reagiere auf fehlerhafte Eingaben.

[Update 2]Ich hab das Beispiel um ein Logout und um einen Redirect nach einem erfolgreichen Login erweitert. Damit sich auch zukünftig weniger Typo’s einschleichen, gibts das ganze hier Ajax Login Update 2 zum Download. [/Update]

[UPDATE]
Es haben sich einige Typos und Copy&Paste Fehler eingeschlichen. Um das zukünftig auszuschliessen gibt es es hier die Dateien als Zip-File. [/Update]

Wichtig die Copy&Paste Funktion der JavaScripts unten, die den Code darstellen werfen an den unmöglichsten Stellen Leerzeichen ein, entweder Ihr verwendet die Daten aus dem ZIP Archiv oder ihr entfernt Sie manuell.
Weiter bieten einige Webhoster (1und1) in der Standardkonfiguration PHP4 an. PHP4 kennt den Art und Weise des Konstruktors in der login.class nicht. In der Regel können die Hoster auch PHP5, dazu muß man eine .htaccess Datei in dem Verzeichnis erstellen in der die index.php liegt. Der Inhalt sieht wie folgt aus:

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

Silvi von www.datenküche.de gab mir noch den Tip, statt den beiden oberen Zeilen den folgenden Eintrag vorzunehmen:

AddHandler php5-cgi .php 

Danke auch an Tobi und alle anderen Tipgeber, für die zahlreichen Hinweise für Fehler.

Und nun gehts los.

Als erstes müssen wir uns einige Dateien runterladen:

Ein bisschen JavaScript:
jquery.js (compressed)
thickbox.js (compressed)

Ein bisschen CSS:
thickbox.css

Ein bisschen Animation:
loadingAnimation.gif

Für das Beispiel legen wir uns folgende Verzeichnisstruktur an: 

./css hier legen wir unsere CSS Dateien ab
./img hier legen wir unsere Bild Dateien ab
./js  hier legen wir unsere js Dateien ab
./ hier legen wir unsere php und html Dateien ab

Um unseren Login gegen eine Datenbank zu prüfen legen wir uns eine Tabelle in der Datenbank test an und legen gleich einen Satz an:

CREATE TABLE IF NOT EXISTS tbl_user
( user_id int(11) NOT NULL auto_increment,
username varchar(50) NOT NULL,
password varchar(50) NOT NULL,
PRIMARY KEY  ( user_id ) );
INSERT INTO tbl_user (username,password)
VALUES ('admin',MD5('password'));

Damit sind die Vorbereitungen erledigt und wir können ans Coden schreiten.
Als erstes bauen wir uns die Hauptseite die den Link hat der unser Login Fenster aufruft und benennen sie index.php.





jQuery ThickBox Login Box







'Login'
 
EOF
?>

Wichtig sind hier die Zeilen:

if (!empty($_SESSION['username'])) 
header( 'Location: ./loggedin.php' ) ; 

und

Login

In der ersten prüfen wir ob der Benutzer angemeldet ist, also ob ein erfolgreicher Login stattgefunden hat und leiten ihn im Erfolgsfall auf eine weitere Seite oder Server um.

Die zweite Zeile zeigt den Aufruf der Login.htm mit Thickbox, über die Parameter height/width wird die Größe des Fenster festgelegt, über class=“thickbox“ wird die JavaScript Verarbeitung und Darstellung mit Thickbox/Jquery angestossen. Fügt man hier noch den Parameter modal=true an, öffnet sich das Thickbox Fenster ohne den Close Button, d.h. aber auch man muss die Funktion tb_remove() einbauen.

Jetzt bauen wir uns die HTML Seite, die wir in dem Thickbox Fenster darstellen wollen und nennen sie login.htm

Anmeldung

Sie haben noch keine Zugangsdaten ? Neukunden benutzen bitte das Regstrierungsformular.

Wenn an dieser Stelle ein Fehler auftritt oder Sie sich bei der Eingabe von Email und Kennwort unsicher sind, erreichen Sie hier unsere Hilfe hier

Besonderer Augenmerk liegt hier bei den Elementen, wie id=“loginDiv“. Nicht nur dass wir hier mit CSS spielen können, mit JavaScript/AJAX können wir hier die Inhalte ändern ohne eine Seitenrefresh durchzuführen.
Mit dem Button lösen wir die Funktion login() aus und die schreiben wir uns jetzt und nennen Sie login.js.

function login()
{
var username = $("#username").val();
var password = $("#password").val();

if ((username == '') || (password == '')) { $("#info").html(''); $("#warning").html("Benutzername und Kennwort erforderlich !"); } else { $.get("login.php?username="+username+"&password="+password, function(rc) { if (rc == 0) { $("#warning").html("Ihr Benutzer und/oder Kennwort sind falsch"); $("#info").html(''); } else if (rc == 1) { $("#info").html(''); $("warning").html(''); $("#loginDiv").html("Login erfolgreich"); setTimeout("window.location.reload()",1000); setTimeout("tb_remove()",3000); } }); } return false; }

Hier führen wir eine simple Prüfung auf die Eingabe durch, und jagen diese in unser PHP Modul zur Verprüfung ob die Benutzername/Kennwort Kombination gültig ist.

Zur Interaktion mit dem Formular werden die entsprechenden HTML-Container (warning & info) befüllt.
Bei einer erfolgreichen Anmeldung geben wir eine Meldung aus und schliessen das Fenster automatisch mit
tb_remove().
That’s it mehr brauchen wir nicht in JavaScript zu tun. Den Rest erledigt JQuery/Thickbox für uns.

Jetzt brauchen wir unser login.php, damit das Ganze etwas schnieker cooler aussieht Erstellen wir uns als erstes eine Klasse für den DB-Zugriff und nennen sie login.class.

prepare($sql);
		$statement->bind_param("s", $username);
		$statement->execute();
		$statement->bind_result($dbpw);
		while ($statement->fetch()) {
        	     if (md5($password) == $dbpw) {
        		 echo TRUE;
        	     } else {
        		 echo FALSE;
                     }
        	}
    }
}
?>

Die Klasse hätten wir und nun noch die Passwortprüfung bauen, dazu Erstellen wir die Datei login.php

checklogin($username, $password)) {
	$_SESSION['username'] = $username;
	// Login war erfolgreich
	echo 1;
}
else {
	// Login fehlgeschlgen
	echo 0;
}
?>

Jetzt benötigen wir noch unsere loggedin.php auf die wir nach dem Login springen wollen.





jQuery ThickBox Login Box







EOF;

echo "

"; echo " Welcome "; echo $_SESSION['username']; echo ", hier gehts zum"; echo ' Logout'; echo"

"; echo " "; ?>

Weiter wollen wir uns auch noch ausloggen, dafür benötigen wir die logout.php, die wir über den Logoutlink aufrufen.


In der logout.php machen wir nichts anderes als die Session zu zerstören und eine Redirect auf eine weitere Seite oder Server. Der Redirect wird über:

header('Location: ./index.php');

durchgeführt.
Wichtig hierbei ist, dass vorher kein Zeichen an den Browser gesendet wurde, also kein HTML Code gesendet wurde, sonst die Fehlermeldung: „Header already sent…“.
Um hier das Beispiel einfach zu halten habe ich die Zieladresse für den Redirect nicht als absolute Adresse angegeben, korrekt wäre

header('Location: http://localhost/login/index.php');

Safari und Firefox basteln die URI auch korrekt relativ zusammen, also:

header('Location: ./index.php');

richtig zusammen, aber nach der RFC 2616 ist dies falsch.

Nun sind wir fast am Ziel, noch schnell eine login.css zimmern damit es auch gut aussieht:

body
{
color: black;
background-color: white;
padding-top: 30px;
padding-left: 10px;
font-family: Arial, sans-serif;
font-size: 10px;
}
a
{
text-decoration: none;
text-align: center;
color: red;
}
#info
{
color: grey;
font-weight: bold;
font-size: 9px;
}
#warning
{
color: red;
font-weight: bold;
font-size: 9px;
}

Und fertig ist das Kind:

screen-capture-94
screen-capture-95
screen-capture-96

Bei Fragen die Kommentarfunktion verwenden

Getagged mit
 

44 Responses to Anleitung: JQuery/Thickbox mit einem AJAX Login Formular und PHP – Update

  1. DATA sagt:

    Hallo,
    sehr gute Arbeit. Ein paar kleine Tippfehler (leerzeichen usw) rausmachen und es geht.

    Aber: kann das ganze auch ohne onclick mit einem betrieben werden? Krieg es leider net zum laufen.

    Das wäre cool.

    Danke

  2. David Krcek sagt:

    Was meinst Du denn mit „mit einem betrieben werden“ ?

  3. DATA sagt:

    Uuuuppss sorry, da fehlt ja die Hälfte 😉

    Ich meinte ob das ganze auch ohne onclick möglich ist über ein „http form action post“ ?

    krieg das leider nicht zum laufen.

    Danke

  4. David Krcek sagt:

    Wird schwierig werden, da ja das onclick die login() JS Funktion aufruft. Einzige Möglichkeit die mir jetzt einfällt ist, das ganze in eine Zwischenseite zu packen und dann mit onload() die js-Funktion aufzurufen, aber sollte wieder mit der Antwort Probleme machen. Was sprich den gegen die onlick Methode ?

  5. DATA sagt:

    Hello,
    prinzipiell spricht nix dagegen. Ich benutze webid und da läuft der login bisher ohne thickbox über nen http post. Ich wollte nicht zu viel verändern da bei einer neuen WeBid Version sonst die ganze Arbeit noch mal ansteht!

  6. David Krcek sagt:

    Du kannst doch das php Script von webid in die js-Funktion login() einbauen es sollte halt nur einen RC Code zurückgeben 🙂

  7. DATA sagt:

    Du meinst in der Funktion login() …. also dem File login.js die php Seite aufrufen? Oder den php code in der login.js integrieren?

    Wollte noch nen einfachen logout link machen mit einer logout.php … aber irgendwie geht der unset nicht:

    Irgenwie klappt heut nix.

  8. David Krcek sagt:

    Ja genau in der login.js kannst Du ja über den Aufruf:
    $.get(„login.php?username=“+username+“&password=“+password, function(rc) {
    Dein php Login Script aufrufen…

  9. DATA sagt:

    Hallo,

    vielen Dank. Nun geht es! Super!
    [falls es interessiert: Fehler war das ich im Form bei action nun auf die Ziel php seite verweisen muss was vorher nicht der fall war [aufruf ist php seite, läd ein html Theme welches zurück auf die php seite verweist !]

    Super … vielen herzlichen Dank.

    Sehr gute Seite, sehr gute Scripte [will mich nun noch an den Tabreiter versuchen].

    mach weiter so ! Ich werde die Seite auf jeden Fall weiterempfehlen !

    Gruß

  10. David Krcek sagt:

    Oh vielen Dank für die netten Worte, wenn ich mal wieder Zeit hab kommt noch ein bisschen mehr.
    Freut mich, daß ich Dir etwas helfen konnte. Kann man das irgendwo sehen was Du baust ?

    LL&P
    David

  11. DATA sagt:

    Noch nicht aber Ich hoffe das ich die Seite bald online kriege. Ich hab noch ein Problem mit einer anderen Seite auf meinem WebServer [aufm USB Stick mit xampplite gehts komischerweise]. Ich geb dir aber bescheid wenns online ist.

  12. Tobi sagt:

    Hallo Leutz!
    Zunächst einmal ein ganz großes Lob für die gute Homepage und vorallem für die sehr ausführliche Anleitung.
    Ich habe die Daten für die DB kopiert und versucht die DB zu installieren. Leider meckert meine Db und ich kann die Tabelle nicht anlegen. Folgendes wird ausgegeben :

    SQL-Befehl:

    CREATE TABLE IF NOT EXISTS ‚tbl_user'(
    ‚user_id’int( 11 ) NOT NULL ,
    ‚username’varchar( 50 ) NOT NULL ,
    ‚password’varchar( 50 ) NOT NULL ,
    PRIMARY KEY ( ‚user_id‘ )
    )

    MySQL meldet: Dokumentation
    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near “tbl_user‘
    ( ‚user_id‘ int(11) NOT NULL,
    ‚username‘ varchar(50) NOT NULL,
    ‚pa‘ at line 1

    Ich danke für Eure Hilfe. Bin in puncto Db nicht gerade der Freak. Danke im Vorraus für Eure Hilfe.

    Wünsche allen hier ein schönes Wochenende!!

    Liebe Grüße aus Kiel

    Tobi

  13. David Krcek sagt:

    Hallo Tobi,

    liegt wohl an den Hochkomata, bitte setze doch die SQL Kommandos wie folgt ab.

    1.
    CREATE TABLE IF NOT EXISTS tbl_user
    ( user_id int(11) NOT NULL,
    username varchar(50) NOT NULL,
    password varchar(50) NOT NULL,
    PRIMARY KEY (user_id) );

    2.
    INSERT INTO TBL_USER (USERNAME,PASSWORD)
    VALUES (‚admin‘,MD5(‚password‘));

    LL&P
    David

  14. Tobi sagt:

    Hallo David! Danke für Deine Mühen. Jedoch gibt es ein Problem. Du hast mir freundlicherweise den Datenbanksatz geschickt, um einen neuen User einzuügen.
    Als Passwort hatte ich test genommen und dann so bei MYSQL versucht einzufügen:

    SQL-Befehl:

    INSERT INTO TBL_USER( USERNAME,
    PASSWORD )
    VALUES (
    ’test’, MD5( ’098f6bcd4621d373cade4e832627b4f6’ )
    )

    MySQL meldet: Dokumentation
    #1146 – Table ‚db260019412.TBL_USER‘ doesn’t exist

    Was mache ich falsch bzw. muß ich noch etwas an den Dateien ändern?

    Danke für Deine weitere Hilfe!

    LG Tobi

  15. Tobi sagt:

    Übrigens, die Tabelle tbl_user wurde angelegt Deshalb verstehe ich nicht, das er sagt, das die Tabelle nicht vorhanden sei

    Liebe Grüße

    Tobias aus Kiel

  16. David Krcek sagt:

    Hallo Tobi,

    #1146 – Table ‘db260019412.TBL_USER’ doesn’t exist
    bedeutet, dass er die Tabelle TBL_USER nicht findet, gibt es die Tabelle (Groß/Kleinschreibung beachten !) ?

    Ausserem hast Du mich falsch verstanden. MD5( ’098f6bcd4621d373cade4e832627b4f6’ ) verschlüsselt den String mit dem Inhalt ‚098f6bcd4621d373cade4e832627b4f6‘.
    Ich denke Du wolltest den verschlüsselten String für ‚test‘ ablegen. Dann muß die Zeile so lauten.
    VALUES (’test’, MD5( ’test’ ))

    LG
    David

  17. David Krcek sagt:

    Dann ist das definitiv ein Problem mit der Groß/Kleinschreibung.
    Probier doch mal:

    INSERT INTO tbl_user ( USERNAME,
    PASSWORD )
    VALUES (
    ’test’, MD5( ’test’ )
    )

    LG
    David

  18. Tobi sagt:

    Hallo David, jetzt kommt diese Fehlermeldung

    INSERT INTO tbl_user( USERNAME,
    PASSWORD )
    VALUES (
    ’test’, MD5( ’test’ ))

    MySQL meldet: Dokumentation
    #1054 – Unknown column ‚’test’‘ in ‚field list‘

    Habe definitivb SQL 5.0

    Gruß Tobi

  19. David Krcek sagt:

    Hallo Tobi,
    check mal ob Du Hochkomas verwendest und nicht irgendwelche Sonderzeichen über Copy+Paste.
    Du mußt das einfache Anführungszeichen (das über dem Gatter-Symbol) nehmen.
    Wir kriegen den Satz noch in die DB.
    LG
    David

    P.S. Liegt definitiv an den ‚-Zeichen, WordPress ersetzt hier das Hochkomma, bitte beim Copy+Paste beachten

  20. Tobi sagt:

    Du bist so gütig. Danke.

    Jetzt kommt diese Fehlermeldung

    INSERT INTO tbl_user( USERNAME,
    PASSWORD )
    VALUES (
    ‚test‘, MD5( ‚test‘ )
    )

    MySQL meldet: Dokumentation
    #1062 – Duplicate entry ‚0‘ for key 1

  21. Tobi sagt:

    Hallo David!

    Habe es geschafft., den User anzulegen. Kann sogar noch weitere sjetzt fehlerlos anlegen. Jedoch, wenn ich im Anmeldefenster test und test angebe, dann passiert nichts!!!

    Gruß

  22. David Krcek sagt:

    Hallo Tobi,
    hast Du villt wieder Leerzeichen vor/nach den PHP-Tags? Kann ich mir das irgendwo im Web ansehen ?

    LG
    David

  23. Tobi sagt:

    Habe einfach den Ordner, den du mir geschickt hast auf meinen Server geladen. Zu finden unter

    tanzen-und-mehr.eu/login/

    Habe an den Dateien nichts geändert.

    Gruß

    P.S. Schicke dir den Ordner zu, den Du mir geschickt hast per Email

  24. David Krcek sagt:

    Die login.class wirft einen Fehler
    \nParse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/44/dxxxxx/htdocs/tanzen/login/login.class on line 7\n

  25. Tobi sagt:

    OK. Beispiel dann

    prepare($sql);
    $statement->bind_param(„s“, $username);
    $statement->execute();
    $statement->bind_result($dbpw);
    while ($statement->fetch()) {
    if (md5($password) == $dbpw) {
    return TRUE;
    }else {
    echo FALSE;}
    }
    }
    }
    ?>

    Sind die Datenbank einträge in der Reihenfolge richtig?

  26. Tobi sagt:

    Ups, da wurde etwas abgeschnitten. Schicke Dir mal die login.class zu.

    Gruß

  27. tobias sagt:

    Hallo David. Habe die login.class auf dem Server aktualsiert, wie Du es beschrieben hast. Passiert aber immernoch nichts.

    Gruß

    Tobias

  28. Tobi sagt:

    Hallo Leutz!

    Wie Ihr alle gesehen habt, hatte ich einige Schwierigkeiten, dieses Login System zu starten. Mit mehreren Versuchen und mit der großen Mühe von David (ihm sei Dank), habe ich mich entschieden, 2 Dinge zu erklären. 1. Ich bin 1und1 Kunde und deshalb braucht man für das Verzeichnis in dem das Login System liegt eine .htaccess Datei.

    Editor öffnen

    AddType x-mapp-php5 .php
    AddHandler x-mapp-php5 .php
    hineinschreiben

    speichern als .htaccess und in das LOGIN Verzeichnis stellen.

    Außerdem ist bei der login.class die richtige Reihenfolge zu beachten.

    localhost (dbxxxx.1und1.de)
    root (dboxxxxxxxxx (Benutzername))
    Passwort (xxxxxxxx)
    test (dbxxxxxxxxx (Datenbankname)

    Jetzt läuft es auch bei Dir, wenn Du bei 1und1 Kunde bist

    Danke für alles David!!

  29. David Krcek sagt:

    Hallo Tobi,
    danke Dir für die Hinweise 😉 Wie Du siehst hab ich das jetzt überarbeitet.

    LG David

  30. Tobi sagt:

    Hallo David!
    Habe mal 2 Fragen zu Deinem Sript!

    1. Wie kann ich eine Seite einbinden, ohne das das WELCOME erscheint? Habe es schon mit php include versucht, aber irgendwie will das nicht klappen.

    2. Wie geht ein Logout? EInloggen könne sich alle, aber nicht ausloggen.

    Viele Liebe Grüße

    aus Kiel

    Tobias

  31. David Krcek sagt:

    Hallo Tobi,

    zu 1. Was meinst Du denn mit Welcome ?
    zu 2. Beim Logout mußt Du nichts weiter machen wie die Session zu zerstören und das Cockie zu killen (wenn Du das Cockie Session basiert aufgebaut hast sollte ersteres ausreichen) und dann auf eine dir genehme Seite weiterrouten.

    Grüße
    David

  32. Tobi sagt:

    Hallo David!
    Zunächst Danke für Deine Nachricht!
    Also, bei Deinem Login kommt nach erfolgreicher Anmeldung die Seite mit der Schrift Welcome.
    Was müßte ich jedoch machen, um eine beliebige andere Seite zu nehmen? Statt Welcome eine komplett css formatierte seite z.B?

    Das mit dem Logout und den Cookies löschen habe ich schon mal gelesen. Leider aber bin ich da absolut der Newbie und hoffe, Du kannst mir da mit einem script weiterhelfen.
    Wenn Du mir die Mühe machen würdest so etwas zu schreiben, wäre ich Dir sehr dankbar.
    Sehe es als Wunsch von mir an. Wenn Du es zeitlich oder anderweitig nicht schaffst, ist das auch nicht schlimm.

    Ganz liebe Grüße

    Tobi

  33. David Krcek sagt:

    Hallo Tobi,

    Die Umleitung auf die neue Seite kannst Du mit einem Redirect in der login.php machen.
    statt dem echo 1

    header( 'Location: http://www.deineSeite.de/irgendeineSeite.html' ) ; einfügst.

    Den Logout kannst Du machen in dem Du dir eine logout.php baust und die z.B. per Link einbindest.
    Die logout.php kann so aussehen:

    < ?php
         session_start();
         session_destroy();
         header('Location: http://www.deineSeite.de/index.php');
    ?>
    

    Grüße
    David

  34. Tobi sagt:

    Hallo David!
    Zunächst einmal Danke für Deine Mühen!
    Leider funktioniert das nicht so richtig.
    HAbe wie beschrieben den oberen Code hier eingefügt:
    …..
    $password = $_GET[‚password‘];
    // PHP Login Instanz erzeugen
    $login = new login();
    // Loginroutine aufrufen
    if($login->checklogin($username, $password)) {
    $_SESSION[‚username‘] = $username;
    // Login war erfolgreich
    header( ‚Location: http://www.tanzen-und-mehr.eu/bilder_kieler.php‚ ) ;
    }
    else {
    // Login fehlgeschlgen
    echo 0;
    }
    ?>

    Auch mit “ statt ‚ geht nicht.
    Das Welcome Sdmin kommt wieder als Meldung.
    Was mache ich falsch?
    Übrigens, das Apostroph ist der kleine Strich der in Deiner Zeile zu sehen ist. Der Kommentator übernimmt es leider nicht richtig

    Danke für Deine Rückantwort.
    Gruß Tobias

  35. Tobi sagt:

    Hallo David!

    Noch ein Hinweis!

    Wenn ich den header für das redirect einfüge, funktiniert der Login nicht. Heißt, das der Hinweis
    -> Login erfolgreich >- nicht erscheint. Jedoch nach einem Refresh (F5) kommt das Welcome Admin.

    Gruß

    Tobi

  36. Tobi sagt:

    Hallo David!

    Hast Du schon eine Lösung gefunden?

    Gruß Tobi

  37. Leon sagt:

    Hey David,
    erstmal vielen Dank für diese Anleitung!
    Allerdings habe ich noch einige Probleme:
    ich hab den .zip Ordner runtergeladen und den Ordner
    einfach mal unverändert hochgeladen um das Teil mal zu
    testen.
    Wenn ich die Seite aufrufe kommt allerdings nur das hier:
    http://augusta.kilu.de/Login/
    Hab ich irgendwas grundlegendes falsch gemacht oder was ist da los?
    (tut mir Leid falls diese Frage irgendwie völlig dämlich ist, aber ich bin absoluter Anfänger)

    Ich würde mich riesig freuen, wenn du mir helfen könntest!
    Leon

  38. Tobi sagt:

    Hallo Leon,

    lade in das Hauptverzeichnis die DAtei mit der beschriftung .htaccess hoch. Dort wo wie index.php liegt.
    Der Inhalt der Datei sollte dies enthalten:

    AddType x-mapp-php5 .php
    AddHandler x-mapp-php5 .php

    MfG
    Tobi

  39. David Krcek sagt:

    Hallo Tobi,

    meine erste Idee war Unsinn, weil genau das passiert was Du beschrieben hast, nämlich die Ausgabe aus dem JavaScript wird geblockt und der Redirect funzt nicht.
    Ich hab das Ganze nun umgebaut, jetzt ist der Logout und der Redirect integriert.

    Grüße
    David

  40. Tobi sagt:

    Hallo David!
    Habe es jetzt installiert und ausprobiert. Man kann auch ohne einem LOGIN die loggedin.php direkt öffnen.

    Außerdem hatte ich die Frage gehabt, ob man auch statt dem Welcome Admin Css basierte Seiten einbinden kann oder aber auf einen sicheren Ordner weiterleiten kann. Mir bringt doch kein Login Formular, wenn die Daten auch ohne Login einzusehen sind.

    Viele Grüße

    Tobi

  41. David Krcek sagt:

    Hallo Tobi,

    das war ja nur ein sehr einfaches Beispiel, Du musst schon in alle nach dem Login gelaggerten Seiten eine Überprüfung einbauen, ob der User angemeldet ist.
    Hier sind wir aber dann bei grundsätzlichen Dingen in Deiner Anwendung.
    Hier stellen sich dann Fragen, ob alles über nur ein index.php läuft, die dann dynamisch zur Laufzeit die HTML Dateien ausgibt oder ob Du mit mehreren
    PHP Dateien deine Ausgabe definierst. Weiter stellt sich die Frage ob Du das ganze DB-Session basiert haben willst oder nicht.
    Aber im Prinzip sieht wohl so aus. Du setzt beim erfolgreichen Login nicht nur den Benutzernamen sondern eine weitere Variable z.B. $_SESSION[‚LOGGEDIN‘] = 1 und auf den prüfst Du dann in jeder Deiner PHP Dateien ab. Sobald dieser Parameter nicht mehr gesetzt ist springst Du per Redirekt in die ursprüngliche index.php und bietest wieder den Login an.
    Damit das von aussen schlechter zu manipulieren ist, solltest Du eine SessionID einführen und die in der DB mitführen und hier auch die Information ablegen ob jemand angemeldet ist oder nicht. Dann mußt Du Dein Script aber so erweitern, dass nach dem Sessionstart mit der SessionID die aus dem Cockie kommt in der DB gelesen wird und dort geprüft wird ob man angeloggt war/ist oder nicht. Auch das ist hier jetzt sehr verkürzt dargestellt.

    Grüße
    David

  42. Alexandra Heissenberger sagt:

    Schade, dass ich Euren Blogg erst heute entdeckt habe

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Set your Twitter account name in your settings to use the TwitterBar Section.