In diesem Tutorial soll es um die Erstellung eines Loginsystems mit PHP gehen. Die Daten werden mit Hilfe von Sessions zwischen den Seiten übergeben. Die Benutzerdaten soll sich das Script aus einer mySQL-Datenbank holen.
1. Anlegen der Datenbank
Legen sie zunächste bitte eine neue Datenbank mit dem Namen "LoginSystem" an. Als Grundfelder für die Datenbank benötigen Sie eigentlich nur ID, Nickname und Kennwort. Um allerdings ein Beispiel zu geben wie man mehrere Daten eines Benutzers in einer Session speichert, fügen wir noch die Felder Nachname und Vorname an um auf jeder Seite den Namen des eingeloggten Benutzers anzuzeigen.
Legen Sie als erstes eine neue Tabelle an, die "benutzerdaten" heißt. Sie können dazu folgenden SQL-Befehl nutzen:
2. Einfügen von Testbenutzern in die Datenbank
Jetzt wollen wir einige Testbenutzer in die Datenbank einfügen. Da das Kennwort zusätzlich noch verschlüsselt werden soll, machen wir das mit einem Script.
3. Das Formular zum Eingeben der Zugangsdaten
Jetzt legen wir eine Datei an, die das Loginformular enthält. Das könnte theoretisch auch eine reine HTML-Datei sein. Wir erstellen an dieser Stelle allerdings eine PHP-Datei da bei einem falschen Passwort über dem Formular eine Meldung ausgegeben werden soll.
Bitte beachten Sie, dass für den korrekten Ablauf der Funktionen alle hier erstellten Dateien im gleichen Verzeichnis liegen müssen.
Hinweis
In diesem Tutorial soll nicht auf das Design der Seiten geachtet werden. Damit alles übersichtlich bleibt, verzichten wir auf jegliche Formatierung der Objekte.
formular.php
4. Das Login
In dieser Datei werden die Zugangsdaten geprüft. Sind diese richtig, werden die Benutzerdaten in einer Session gespeichert und auf eine Inhaltsseite weitergeleiten, die nur zu sehen ist wenn der Benutzer eingeloggt ist.
login.php
5. Überprüfung des Loginstatus für die Inhaltsseiten
Diese Datei soll dafür sorgen, dass bei jedem Aufruf einer Seite die Daten in der Session überprüft werden. Bemerkt das Script, dass ein Benutzer eingeloggt ist wird der Inhalt der Seite ausgegeben. Ist dies nicht der Fall wird der Benutzer auf das Loginformular umgeleitet.
checkuser.php
Diese Datei wird nicht direkt aufgerufen, sondern per include() am Anfang jeder Seite eingefügt. Wie das funktioniert sehen sie im nächsten Punkt.
6. Die interne Datei
Jetzt wollen wir die Seite erstellen, die nur angezeigt wird wenn der Benutzer eingeloggt ist. Auf dieser Seite sollen die Benutzerdaten wieder ausgegeben werden. Ist der Benutzer nicht eingeloggt wird er automatisch durch die eingefügte Datei auf das Loginformular weitergeleitet.
intern.php
7. Das Logout
Ganz zum Schluss wollen wir noch schnell die Datei für die Logout-Funktion schreiben. Diese Datei löscht die Inhalte der Session und leitet auf das Loginformular weiter.
logout.php
8. Ausprobieren
Jetzt sind alle Versuchsdateien angelegt und wir können es jetzt ausprobieren. Vergewissern Sie sich noch einmal, dass alle Dateien im gleichen Verzeichnis liegen und rufen Sie dann einmal die Datei intern.php auf. Da Sie sich ja noch nicht eingeloggt haben müsste die in intern.php per include() eingefügte Datei checkuser.php Sie auf formular.php umleiten. Geben Sie nun im Formular einmal einen der beiden Benutzer an. (z.B. "admin" mit Kennwort "admin" oder "test" mit Kennwort "abc"). Das Formular schickt die Daten an login.php welche in der Datenbank die Werte überprüft. Wurde der Benutzer gefunden werden die Werte in der Session gespeichert und Sie werden wieder an die Datei intern.php weitergeleitet. Nun sehen Sie dort die in der Session gespeicherten Daten. Solange Sie sich nicht auf Ausloggen klicken, können Sie beliebig zwischen Seiten wechseln, Sie bleiben eingeloggt, solange Sie sich nicht mit einem anderen Namen einloggen bzw. das Browserfenster schließen. Viel Spaß beim Probieren.
* Wenn euch irgendwelche Fehler an dem Script auffallen oder Kritiken, Verbesserungsvorschläge oder sonst was abzugeben sind, meldet euch bei mir per eMail oder ICQ.
1. Anlegen der Datenbank
Legen sie zunächste bitte eine neue Datenbank mit dem Namen "LoginSystem" an. Als Grundfelder für die Datenbank benötigen Sie eigentlich nur ID, Nickname und Kennwort. Um allerdings ein Beispiel zu geben wie man mehrere Daten eines Benutzers in einer Session speichert, fügen wir noch die Felder Nachname und Vorname an um auf jeder Seite den Namen des eingeloggten Benutzers anzuzeigen.
Legen Sie als erstes eine neue Tabelle an, die "benutzerdaten" heißt. Sie können dazu folgenden SQL-Befehl nutzen:
PHP:
CREATE TABLE benutzerdaten (
Id Int(11) NOT NULL auto_increment,
Nickname VarChar(50) NOT NULL default '',
Kennwort VarChar(50) NOT NULL default '',
Nachname VarChar(50) NOT NULL default '',
Vorname VarChar(50) NOT NULL default '',
PRIMARY KEY (Id)
)
2. Einfügen von Testbenutzern in die Datenbank
Jetzt wollen wir einige Testbenutzer in die Datenbank einfügen. Da das Kennwort zusätzlich noch verschlüsselt werden soll, machen wir das mit einem Script.
PHP:
<?php
// Definition der Benutzer
$benutzer[0]["Nickname"] ="admin";
$benutzer[0]["Kennwort"] = "admin";
$benutzer[0]["Nachname"] = "Mustermann";
$benutzer[0]["Vorname"] = "Max";
$benutzer[1]["Nickname"] = "test";
$benutzer[1]["Kennwort"] = "abc";
$benutzer[1]["Nachname"] = "Kunze";
$benutzer[1]["Vorname"] = "Martin";
// Sie können an dieser Stelle beliebig viele Benutzer anlegen.
// Achten Sie dabei nur auf die Fortführung der Nummer.
// Aufbau der Datenbankverbindung
$connectionid = mysql_connect ("localhost", "root", "");
if (!mysql_select_db ("LoginSystem", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
// Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen.
mysql_query ("DELETE FROM benutzerdaten");
// Daten eintragen
while (list ($key, $value) = each ($benutzer))
{
// SQL-Anweisung erstellen
$sql = "INSERT INTO ".
"benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ".
"VALUES ('".$value["Nickname"]."', '".
md5 ($value["Kennwort"])."', '".
$value["Nachname"]."', '".
$value["Vorname"]."')";
mysql_query ($sql);
if (mysql_affected_rows ($connectionid) > 0)
{
echo "Benutzer erfolgreich angelegt.<br>\n";
}
else
{
echo "Fehler beim Anlegen der Benutzer.<br>\n";
}
}
?>
3. Das Formular zum Eingeben der Zugangsdaten
Jetzt legen wir eine Datei an, die das Loginformular enthält. Das könnte theoretisch auch eine reine HTML-Datei sein. Wir erstellen an dieser Stelle allerdings eine PHP-Datei da bei einem falschen Passwort über dem Formular eine Meldung ausgegeben werden soll.
Bitte beachten Sie, dass für den korrekten Ablauf der Funktionen alle hier erstellten Dateien im gleichen Verzeichnis liegen müssen.
Hinweis
In diesem Tutorial soll nicht auf das Design der Seiten geachtet werden. Damit alles übersichtlich bleibt, verzichten wir auf jegliche Formatierung der Objekte.
formular.php
PHP:
<?php session_start (); ?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
?>
<form action="http://www.tutorials.de/login.php" method="post">
Name: <input type="text" name="name" size="20"><br>
Kennwort: <input type="password" name="pwd" size="20"><br>
<input type="submit" value="Login">
</form>
<div class="footer_morecopyright" style="margin-top: 0px;color:#FFFFFF;">Page Time: <b>0,19861</b> seconds Memory: <b>14,486</b> KB Queries: <b>105</b> Templates: <b>41</b> (<b>21</b> uncached)<br />Server Uptime: <b>23 hours 36 mins</b> Server Load: <b>0.83</b> : 1.34 : 1.48<br /><table cellspacing="0" cellpadding="0" border="0" style="margin-left: auto; margin-right: auto;"><tr><td style="color: #cccccc; text-align: left;"><b>editor_clientscript</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_jsoptions_font</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_jsoptions_size</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie</b></td><td style="padding-left: 10px;">(10)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie_category</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie_row</b></td><td style="padding-left: 10px;">(15)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smiliebox</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_colors</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_fontname</b></td><td style="padding-left: 10px;">(21)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_fontsize</b></td><td style="padding-left: 10px;">(7)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>newpost_attachment</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>newpost_disablesmiliesoption</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>tagbit_wrapper</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_article_editor</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_content_article_inline</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_content_edit_editbar</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_block</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_metadataeditor</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_page</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_publisher</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_editor_toolbar_on</b></td><td style="padding-left: 10px;">(1)</td></tr></table></div><div class="footer_morecopyright" style="margin-top: 0px;color:#FFFFFF;">Page Time: <b>0,22380</b> seconds Memory: <b>16,253</b> KB Queries: <b>87</b> Templates: <b>42</b> (<b>22</b> uncached)<br />Server Uptime: <b>23 hours 37 mins</b> Server Load: <b>1.16</b> : 1.40 : 1.49<br /><table cellspacing="0" cellpadding="0" border="0" style="margin-left: auto; margin-right: auto;"><tr><td style="color: #cccccc; text-align: left;"><b>editor_clientscript</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_jsoptions_font</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_jsoptions_size</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie</b></td><td style="padding-left: 10px;">(20)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie_category</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie_row</b></td><td style="padding-left: 10px;">(30)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smiliebox</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_colors</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_fontname</b></td><td style="padding-left: 10px;">(42)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_fontsize</b></td><td style="padding-left: 10px;">(14)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_on</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>newpost_attachment</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>newpost_disablesmiliesoption</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>tagbit_wrapper</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_article_editor</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_content_article_inline</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_content_edit_editbar</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_block</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_metadataeditor</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_page</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_publisher</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_editor_toolbar_on</b></td><td style="padding-left: 10px;">(1)</td></tr></table></div></body>
</html>
4. Das Login
In dieser Datei werden die Zugangsdaten geprüft. Sind diese richtig, werden die Benutzerdaten in einer Session gespeichert und auf eine Inhaltsseite weitergeleiten, die nur zu sehen ist wenn der Benutzer eingeloggt ist.
login.php
PHP:
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "root", "");
if (!mysql_select_db ("LoginSystem", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
}
?>
5. Überprüfung des Loginstatus für die Inhaltsseiten
Diese Datei soll dafür sorgen, dass bei jedem Aufruf einer Seite die Daten in der Session überprüft werden. Bemerkt das Script, dass ein Benutzer eingeloggt ist wird der Inhalt der Seite ausgegeben. Ist dies nicht der Fall wird der Benutzer auf das Loginformular umgeleitet.
checkuser.php
PHP:
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
header ("Location: formular.php");
}
?>
Diese Datei wird nicht direkt aufgerufen, sondern per include() am Anfang jeder Seite eingefügt. Wie das funktioniert sehen sie im nächsten Punkt.
6. Die interne Datei
Jetzt wollen wir die Seite erstellen, die nur angezeigt wird wenn der Benutzer eingeloggt ist. Auf dieser Seite sollen die Benutzerdaten wieder ausgegeben werden. Ist der Benutzer nicht eingeloggt wird er automatisch durch die eingefügte Datei auf das Loginformular weitergeleitet.
intern.php
PHP:
<?php
include ("checkuser.php");
?>
<html>
<head>
<title>Interne Seite</title>
<script type="text/javascript">
//<=!=[=C=D=A=T=A=[
window.google_analytics_uacct = "UA-1691844-1";
//]=]=>
</script>
<script type="text/javascript">
//<=!=[=C=D=A=T=A=[
window.google_analytics_uacct = "UA-1691844-1";
//]=]=>
</script>
</head>
<body>
<script type="text/javascript"><!--
var _gaq = _gaq || [];
_gaq.push(
['_setAccount', 'UA-1691844-1'],
['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
//-->
</script>
<script type="text/javascript"><!--
var _gaq = _gaq || [];
_gaq.push(
['_setAccount', 'UA-1691844-1'],
['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
//-->
</script>
BenutzerId: <?php echo $_SESSION["user_id"]; ?><br>
Nickname: <?php echo $_SESSION["user_nickname"]; ?><br>
Nachname: <?php echo $_SESSION["user_nachname"]; ?><br>
Vorname: <?php echo $_SESSION["user_vorname"]; ?>
<hr>
<a href="http://www.tutorials.de/logout.php">Ausloggen</a>
<div class="footer_morecopyright" style="margin-top: 0px;color:#FFFFFF;">Page Time: <b>0,19861</b> seconds Memory: <b>14,486</b> KB Queries: <b>105</b> Templates: <b>41</b> (<b>21</b> uncached)<br />Server Uptime: <b>23 hours 36 mins</b> Server Load: <b>0.83</b> : 1.34 : 1.48<br /><table cellspacing="0" cellpadding="0" border="0" style="margin-left: auto; margin-right: auto;"><tr><td style="color: #cccccc; text-align: left;"><b>editor_clientscript</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_jsoptions_font</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_jsoptions_size</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie</b></td><td style="padding-left: 10px;">(10)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie_category</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie_row</b></td><td style="padding-left: 10px;">(15)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smiliebox</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_colors</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_fontname</b></td><td style="padding-left: 10px;">(21)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_fontsize</b></td><td style="padding-left: 10px;">(7)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>newpost_attachment</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>newpost_disablesmiliesoption</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>tagbit_wrapper</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_article_editor</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_content_article_inline</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_content_edit_editbar</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_block</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_metadataeditor</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_page</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_publisher</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_editor_toolbar_on</b></td><td style="padding-left: 10px;">(1)</td></tr></table></div><div class="footer_morecopyright" style="margin-top: 0px;color:#FFFFFF;">Page Time: <b>0,22380</b> seconds Memory: <b>16,253</b> KB Queries: <b>87</b> Templates: <b>42</b> (<b>22</b> uncached)<br />Server Uptime: <b>23 hours 37 mins</b> Server Load: <b>1.16</b> : 1.40 : 1.49<br /><table cellspacing="0" cellpadding="0" border="0" style="margin-left: auto; margin-right: auto;"><tr><td style="color: #cccccc; text-align: left;"><b>editor_clientscript</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_jsoptions_font</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_jsoptions_size</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie</b></td><td style="padding-left: 10px;">(20)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie_category</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smilie_row</b></td><td style="padding-left: 10px;">(30)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_smiliebox</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_colors</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_fontname</b></td><td style="padding-left: 10px;">(42)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_fontsize</b></td><td style="padding-left: 10px;">(14)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>editor_toolbar_on</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>newpost_attachment</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>newpost_disablesmiliesoption</b></td><td style="padding-left: 10px;">(2)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>tagbit_wrapper</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_article_editor</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_content_article_inline</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_content_edit_editbar</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_block</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_metadataeditor</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_page</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_edit_publisher</b></td><td style="padding-left: 10px;">(1)</td></tr><tr><td style="color: #cccccc; text-align: left;"><b>vbcms_editor_toolbar_on</b></td><td style="padding-left: 10px;">(1)</td></tr></table></div></body>
</html>
7. Das Logout
Ganz zum Schluss wollen wir noch schnell die Datei für die Logout-Funktion schreiben. Diese Datei löscht die Inhalte der Session und leitet auf das Loginformular weiter.
logout.php
PHP:
<?php
// Wird ausgeführt um mit der Ausgabe des Headers zu warten.
ob_start ();
session_start ();
session_unset ();
session_destroy ();
header ("Location: formular.php");
ob_end_flush ();
?>
8. Ausprobieren
Jetzt sind alle Versuchsdateien angelegt und wir können es jetzt ausprobieren. Vergewissern Sie sich noch einmal, dass alle Dateien im gleichen Verzeichnis liegen und rufen Sie dann einmal die Datei intern.php auf. Da Sie sich ja noch nicht eingeloggt haben müsste die in intern.php per include() eingefügte Datei checkuser.php Sie auf formular.php umleiten. Geben Sie nun im Formular einmal einen der beiden Benutzer an. (z.B. "admin" mit Kennwort "admin" oder "test" mit Kennwort "abc"). Das Formular schickt die Daten an login.php welche in der Datenbank die Werte überprüft. Wurde der Benutzer gefunden werden die Werte in der Session gespeichert und Sie werden wieder an die Datei intern.php weitergeleitet. Nun sehen Sie dort die in der Session gespeicherten Daten. Solange Sie sich nicht auf Ausloggen klicken, können Sie beliebig zwischen Seiten wechseln, Sie bleiben eingeloggt, solange Sie sich nicht mit einem anderen Namen einloggen bzw. das Browserfenster schließen. Viel Spaß beim Probieren.
* Wenn euch irgendwelche Fehler an dem Script auffallen oder Kritiken, Verbesserungsvorschläge oder sonst was abzugeben sind, meldet euch bei mir per eMail oder ICQ.