PHP Login Tutorial

Das Tutorial basiert auf dem LAMP- und dem Apache Form Login Tutorial.

Das Login-Formular von dem Apache Form Login Tutorial steht hier in der Admin.php.

benutzer

$ vi usr/htdocs/Admin.php

<?php /* Session */ $rv = session_start (); if ( $rv && isset ($_COOKIE ["session"]) ) { $Pfadprefix = dirname ($_SERVER ["DOCUMENT_ROOT"], 1); $Datenbank = new SQLite3 ($Pfadprefix . "/data.sqlite3"); $Erklaerung = $Datenbank -> prepare ("SELECT \"value\" FROM session WHERE \"key\" = ?"); $Erklaerung -> bindValue (1, $_COOKIE ["session"]); $Ergebnis = $Erklaerung -> execute (); $Array = $Ergebnis -> fetchArray (SQLITE3_ASSOC); if ($Array) { $Array2 = explode ("&", $Array ["value"]); $Array3 = explode ("=", $Array2 [0]); $Benutzername = $Array3 [1]; $_SESSION ["Keks"] = $_COOKIE ["session"]; $_SESSION ["Benutzername"] = $Benutzername; } } if ( isset ($Array) && $Array ): ?> <!DOCTYPE html> <html lang=de> <head> <meta name=viewport content="width=device-width"> <meta charset=utf-8> <title> Admin </title> <style> header { font-size: 24px; } </style> </head> <body> <header> Admin </header> <p> <a href=/admin?ausloggen>ausloggen</a> </p> </body> <?php else: ?> <!DOCTYPE html> <html lang=de> <head> <meta name=viewport content="width=device-width"> <meta charset=utf-8> <title> Admin </title> <style> header { font-size: 24px; } </style> </head> <body> <header> Admin </header> <form method=POST action=/admin?einloggen> Benutzername: <input type=text name=httpd_username value=""> Passwort: <input type=password name=httpd_password value=""> <input type=submit name=login value=Einloggen> </form> </body> <?php endif; ?>

benutzer

$ vi usr/htdocs/admin/index.php

<?php /* Session */ session_start (); if ( ! isset ($_SESSION ["Benutzername"]) ) { header ("HTTP/1.1 400 Bad Request"); exit (0); } ?> <!DOCTYPE html> <html lang=de> <head> <meta name=viewport content="width=device-width"> <meta charset=utf-8> <title> Es funktioniert! </title> <style> header { font-size: 24px; } </style> </head> <body> <header> Es funktioniert! </header> </body>

benutzer

$ vi usr/conf/httpd.conf

+ LoadModule rewrite_module modules/mod_rewrite.so

− AllowOverride None + #AllowOverride None + AllowOverride FileInfo

<IfModule dir_module> − DirectoryIndex index.html + #DirectoryIndex index.html + DirectoryIndex index.php </IfModule>

root

# usr/bin/apachectl stop

# usr/bin/apachectl start

benutzer

$ vi usr/htdocs/.htaccess

RewriteEngine on RewriteRule ^admin\.html$ Admin.php