Tutorials
[ Zurück ]


Einfaches Login mit Session


Hallo

Hier ein PHP-Code der ein Login mit Passwort ermöglicht

das Passwort wird md5 verschlüsselt in einer SESSION gespeichert

und bei Logout wird die Session gelöscht und wieder das Login-Formular angezeigt

Wichtig dabei ist, dass alle Session-Manipulationen oben im Script stattfinden,
noch bevor irgend ein Zeichen ausgegeben wird (auch kein Leerzeichen, garnix)


<?php
// --------------- config ---------

$password = 'pass';      // ---- Zugangs-Passwort

$mainpage = 'test1.php'; // ---- Haupt-Seite (aktuelle Datei) 


// ------------------------------------------

$pw_check = md5($password);

session_start();


// --------------- Check Login ---------
if (!empty($_REQUEST['pw'])) {
$log_pw = trim(chop($_REQUEST['pw']));
$sec_pw = md5($log_pw);

if ($sec_pw == $pw_check) {
$_SESSION['pw'] = $sec_pw;  // ---- Wenn Passwort richtig dann Session setzen
}
else {
$_SESSION['pw'] = '';
session_unset();
session_destroy();
}
}

// --------------- Check Action ---------
if ( !empty($_REQUEST['act']) ) {
$goact = trim(chop($_REQUEST['act']));
}
else {
$goact = 'start';
}

// --------------- Check Logout ---------
if (isset($goact) && $goact == 'logout') {
$_SESSION['pw'] = '';
session_unset();
session_destroy(); // ---- Wenn Action == 'logout' dann Session löschen
$goact = 'start';
}


// ------------------ Seiten HEAD ------------

echo "<html>\n";
echo "<head>\n";
echo "<title>Seiten Titel</title>\n";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n";
echo "</head>\n";

echo "<body>\n";

// ------------------ Header ------------

echo "<div style=\"text-align:center;\">\n";
echo "<h1>Seiten Titel</h1>\n";
echo "<p> ... Inhalt Oben immer sichtbar ... </p>\n";
echo "</div>\n";


// --------------- Ausgabe wenn Login OK ---------

if (isset($_SESSION['pw']) && $_SESSION['pw'] == $pw_check) {

echo "<div style=\"text-align:center;\">\n";
echo "<br />..... OK ..... eingeloggt ..... Action: ".$goact."\n";
echo "<br />\n";


// --------------- Menue im Login-Bereich ------------ 
echo "<br />\n";
echo " --- <a href=\"".$mainpage."\">HOME</a> \n";
echo " --- <a href=\"".$mainpage."?act=liste\">Liste</a> \n";
echo " --- <a href=\"".$mainpage."?act=edit\">Bearbeiten</a> \n";
echo " --- <a href=\"".$mainpage."?act=logout\">LOGOUT</a> \n";
echo "<br />\n";
echo "<br />\n";
echo "</div>\n";


// ------ je nach Action eine entsprechende Datei includen

$inc_page = './seiten/'.$goact.'.php';

echo "<div style=\"text-align:center;\">\n";

if (file_exists($inc_page)) {
include_once($inc_page); // ---- Seite zur Action includen ... BSP: ./seiten/start.php
}
else {
echo "<br />Zur Action ".$goact." existiert keine Seiten-Datei. \n";
}

echo "</div>\n";


// --------------------- Ende Login-Bereich -------------

}
else {

// --------------------- Ausgabe Login Formular ---------


echo "<div style=\"text-align:center;\">\n";

echo "<br />\n";
echo "<form name=\"form1\" method=\"post\" action=\"".$mainpage."\">\n";
echo "Passwort: <input type=\"text\" name=\"pw\" size=\"18\" maxlength=\"18\">\n";
echo "<input type=\"hidden\" name=\"act\" value=\"start\">\n";
echo "OK <input type=\"submit\" name=\"go\" value=\"Login\">\n";
echo "</form>\n";
echo "<br />\n";

echo "</div>\n";

// --------------------- Ende Login Formular ---------

}

// ------------------ Footer ------------

echo "<div style=\"text-align:center;\">\n";

echo "<br />\n";
echo "<br /> ... Inhalt Unten immer sichtbar ... \n";
echo "<br />\n";

echo "</div>\n";


echo "</body>\n";
echo "</html>\n";

// ------------------------------------------
?>


Oben bei Config sollte man das Passwort und die Hauptseite anpassen

Die Hauptseite ist der Dateiname, unter dem dieses Login läuft

Je nach Action können Inhalte (Scripte) includet werden
die in diesem Beispiel im Verzeichnis ./seiten/ liegen
und den Name der Action als .php Datei haben, z.B. ./seiten/start.php oder ./seiten/liste.php ... etc.
je nach dem, was als act Wert in den Menü-Links per _GET übergeben wird
man kann auch Formulare machen und act Wert als _POST übergeben (z.B. innerhalb der includeten Seiten)

viel Spaß damit :) 



Erstellt:06.03.12 10:28
Autor: lukeads

Letzte Änderung: 06.03.12 10:40
Geändert von: lukeads

Bewertungen:1
Bewertung: 5.0

Freigeschaltet: Ja
Views 1985

Klicke einfach auf einen Stern!
Wollen Sie wirklich das Tutorial löschen?
Wollen Sie wirklich dieses Tutorial zulassen?
Betreff: Report tutorial [id = 617] !
Absender:
Kommentar:
Wollen Sie wirklich dieses Tutorial zulassen?
Absender:
Kommentar:
Folgende User sind hier gerade aktiv:
-

ANZEIGE