Zur besseren Übersicht habe ich den PHP Code vom HTML Code getrennt.
Beide Dateien müssen für dieses Beispiel im gleichen Verzeichnis liegen.
Als Beispielverzeichnis habe ich das Forumsverzeichnis selbst genommen.
Neue Datei erstellen: login.php ( oder in bestehende Webseite einbauen )
Datei Inhalt:
Code: Alles auswählen
<?php
/**
*
* externes Login script fuer phpBB3
* Kann zur WebSite Authentifizierung benutzt werden
*
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
//Abfragen von ggf. uebermittelten Parametern
$username = request_var('username', '', true);
$password = request_var('password', '', true);
$autologin = (!empty($_POST['autologin'])) ? true : false;
$viewonline = (!empty($_POST['viewonline'])) ? 0 : 1;
$logout = request_var('mode', '');
//Wenn username und passwort uebergeben worden sind, starte einen Anmeldeversuch
if (isset($username) && isset($password))
{
$auth->login($username, $password, $autologin, $viewonline);
}
//Wenn ueber einen Link der mode=logout lautet und eine SID uebergeben wurde, starte das ausloggen des Users
if ($logout == 'logout')
{
$user->session_kill();
}
/**
*
* Optionaler Code
* Prüfe ob User eingeloggt ist oder nicht
*
*/
if ($user->data['is_registered'])
{
// Hier steht der Code für ein erfolgreich eingeloggter User
echo "Du bist angemeldet.<br /><br />";
//Optionaler Code zum Ausloggen.
//Es ist wichtig, das die Session ID mit der Funktion append_sid() uebergeben wird.
echo 'Zum Abmelden <a href="'. append_sid("{$phpbb_root_path}login.$phpEx", "mode=logout") . '">hier</a> klicken';
}
else
{
//Wenn Du hier landest bist Du nicht eingeloggt.
echo "Du bist abgemeldet<br /><br />";
echo "<a href="login.html">Nochmal versuchen?</a>";
}
?>
Neue Datei: login.html
Datei Inhalt:
Code: Alles auswählen
<html>
<body>
Bitte anmelden:<br />
<form method="POST" action="./login.php">
<p>Benutzername: <input type="text" name="username" size="40"><br />
Passwort: <input type="password" name="password" size="40"><br />
<br />
Mich bei jedem Besuch automatisch anmelden? : <input type="checkbox" name="autologin"><br />
<br />
Online Status verstecken? : <input type="checkbox" name="viewonline"><br />
<br />
<input type="submit" value="Absenden" name="login"></p>
</form>
</body>
</html>
Wenn man nun die login.html aufruft erscheint eine Anmeldemaske.
Was ggf. angepasst werden muss ist das phpBB3 Forums Root Verzeichnis.
Passt dazu diese Zeile an:
Code: Alles auswählen
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
Die Zeile:
Code: Alles auswählen
<form method="POST" action="./login.php">
Ihr könnt das ganze hier testen, wenn Ihr einen Account für dieses Forum besitzt.
Die Testseite für das externe ein- und ausloggen lautet: login.php