Seite 1 von 2

Anmeldeformular verwenden

Verfasst: 15.03.2010 21:23
von gamexover
Hallo!

Ich würde gerne das Anmeldeformular für die Seiten meiner Homepage verwenden. Den entsprechenden KB-Beitrag habe ich bereits durchgelesen, jedoch funktioniert das nur in Verbindung mit dem Einbinden der Seiten in phpBB. Ich würde aber anstatt dieser variabeln php-Seiten lieber statische (X)HTML Seiten erstellen und php nur dort verwenden, wo es unbedingt notwendig ist (z.B. für das Anmeldeformular).

Ich stelle mir das so vor: Mein Forum leigt im Pfad "example.com/Forum/phpBB3". Die von mir erstellten Seiten liegen auf der Hauptdomain. Die Seiten sind Passwortgeschützt und beim öffnen der "index.html" sowie bei allen anderen Seiten sollte ein Anmeldeformular erscheinen. Die einzugebenden Daten, sollten mit den Benutzerkonten des Boards übereinstimmen (d.h. selbes PW und selber Benutzername) und es wäre gut, wenn man sich nicht noch einmal beim Board einloggen müsste, wenn man sich schon bei der Hauptseite eingeloggt hat. Außerdem sollte das Anmeldeformular alle Eigenschaften des originalen Formulars haben, wie z.B. CAPTCHA bei fehlgeschlagenen Loginversuchen.

Kann mir da vielleicht jemand eine kleine Hilfestellung geben, damit ich weiß wie ich das anstellen muss? Ich kenne mich in php nicht wirklich aus, also würde ich gerne sowenig php wie möglich verwenden.

Ich freue mich über jede Hilfe!

Lg
gamexover

Re: Anmeldeformular verwenden

Verfasst: 16.03.2010 20:46
von Pyramide
gamexover hat geschrieben:Ich würde aber anstatt dieser variabeln php-Seiten lieber statische (X)HTML Seiten erstellen und php nur dort verwenden, wo es unbedingt notwendig ist (z.B. für das Anmeldeformular).

(...)

Die Seiten sind Passwortgeschützt und beim öffnen der "index.html" sowie bei allen anderen Seiten sollte ein Anmeldeformular erscheinen.
Mit statischen HTML-Seiten kannst du aber nicht prüfen, ob der Benutzer eingelogt ist und bei Bedarf auf die Login-Seite weiterleiten. Du wirst also nicht drumherum kommen, die Seiten als .php anzulegen und zumindest folgenden Minimal-Code einzubinden:

Code: Alles auswählen

<?php

define('IN_PHPBB', true);
// Specify the path to you phpBB3 installation directory.
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
// The common.php file is required.
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);

$user->setup();


//your PHP and/or HTML code goes here

?>

Re: Anmeldeformular verwenden

Verfasst: 21.04.2010 19:36
von gamexover
Hallo!

Leider habe ich mich in letzter Zeit mit anderen Dingen beschäftigen müssen und habe daher hier nicht weiterarbeiten können.

Ich habe jetzt die Seite erstellt und das mit der Verwendung des Anmeldeformulars funktioniert auch schon gut. Nur komme ich nach der Anmeldung nicht mehr auf meine Seite zurück.

Meine Seite "example.php" befindet sichim Hauptverzeichnis, das Forum im Unterverzeichnis "./Forum/phpBB3". Wenn ich jetzt die Seite "example.php" aufrufe, erscheint das Anmeldeformular. Nach der Anmeldung werde ich auf "./Forum/phpBB3/ucp.php?mode=login" weitergeleitet, wo mir mitgeteilt wird, dass ich erfolgreich angemeldet worden bin. Dann versucht phpBB mich wieder auf die vorherige Seite zu schicken, was allerdings nicht funktioniert. Es wird die Seite "./Forum/phpBB3/example.php?&sid=5a7cc684375627462d78f83ed1d97109" geöffnet, die es natürlich nicht gibt, da die originnale Seite im Hauptverzeichnis liegt.
Was muss ich tun, damit ich auf die richtige Seite geleitet werde?

Hier ist der Quellcode der Seite "example.php":

Code: Alles auswählen

 <?php
     //Das ist der normale, bereits oben erwähnte, Code
   
    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './Forum/phpBB3/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);

    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();


//Hier der von mir hinzugefügte Code
    if ($user->data['user_id'] == ANONYMOUS)
{
    login_box();
}
else
{ 
echo <<<END 
<html>
Meine Seite
</html>
END;
}
  ?>
Das Syntax-Highlighting scheint das "END;" nicht zu erkennen, die php-datei funktioniert trotzdem ;-)

Ich bin um jede Hilfe dankbar!

Lg gamexover

Re: Anmeldeformular verwenden

Verfasst: 22.04.2010 03:00
von tas2580
Hallo,
versuch es mal mit

Code: Alles auswählen

login_box('../../example.php'); 
Gruß Tobi

Re: Anmeldeformular verwenden

Verfasst: 22.04.2010 16:29
von gamexover
Hallo,

es funktioniert leider nicht.

Ich kenne mich mit PHP nicht gut aus, aber vielleicht könnte man ja die "ucp.php" von phpBB so ändern, dass der gewünschte Effekt erreicht wird. Also wenn ich von meiner Seite "example.php" komme, dann werde ich auch wieder auf "../../example.php" weitergeleitet.
Vielleicht gibt es auch noch andere Möglichkeiten, aber so könnte es funktionieren.
Leider weiß ich nicht, wie ich das Codetechnisch anstelle.

Gruß gamexover

Re: Anmeldeformular verwenden

Verfasst: 23.04.2010 08:46
von Dr.Death
Hallo,

schau mal bitte auf diese Wiki Seite: http://wiki.phpbb.com/Function.login_box

und teste das mal:

Code: Alles auswählen

login_box('http://www.url-zu-deiner-seite.de', $user->lang['LOGIN']);
Die angegebene feste Url ist die "Redirect" URL, die nach einem erfolgreichen Login aufgerufen wird.

Re: Anmeldeformular verwenden

Verfasst: 26.04.2010 20:08
von gamexover
Hallo!

Es hat leider nicht funktioniert, aber trotzdem Danke!

Ich habe einen Lösungsansatz gefunden, der vielleicht funktionieren könnte, nur habe ich es nicht geschafft das ganze codetechnisch umzusetzen. Hoffentlich kann mir dabei jemand helfen.

Bei einem normalen Login wird man ja auf die ucp.php?mode=login geleitet. Im Quellcode der ucp.php steht folgendes:

Code: Alles auswählen

case 'login':
        if ($user->data['is_registered'])
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }

        login_box(request_var('redirect', "index.$phpEx"));
    break; 
Meine Idee wäre es jetzt einen weiteren Case zu erstellen, der so aussehen könnte:

Code: Alles auswählen

case 'login_external':
    if ($user->data['is_registered'])
    {
      redirect(append_sid("../../index.$phpEx"));
    }
    
    login_box(request_var('redirect', "index.$phpEx"));
    break; 
Dadurch dürfte man bei Aufruf der ucp.php?mode=login_external auf die im Hauptverzeichnis liegende Datei weitergeleitet werden. Nun muss ich nur dafür sorgen, dass beim Login über meine example.php ?mode=login_external und nicht ?mode=login verwendet wird.

Diese Unterscheidung habe ich in der functions.php gefunden und die Datei folgendermaßen geändert:

Code: Alles auswählen

//Das war schon da
if ($user->data['user_id'] != ANONYMOUS)
    {
        $u_login_logout = append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout', true, $user->session_id);
        $l_login_logout = sprintf($user->lang['LOGOUT_USER'], $user->data['username']);
    }
    else
    {
        $u_login_logout = append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login');
        $l_login_logout = $user->lang['LOGIN'];
    }

//NEU
  $_referer = $_SERVER["HTTP_REFERER"];
  if ($user->data['user_id'] != ANONYMOUS && $_referer == 'http://domain.net/example.php')
{
        $u_login_logout = append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login_external');
        $l_login_logout = $user->lang['LOGIN'];
} 
Damit sollte der Referrer ausgelesen werden und bei übereinstimmenden Referrer ?mode=login_external verwendet werden, sonst ?mode=login.
Leider hat es so nicht funktioniert und mein Board hat es dabei zerschossen; erst nach einer Wiederherstellung der functions.php ging es wieder.

Vielleicht habe ich hier Ideen geliefert, wie man das Problem lösen kann und hoffentlich kann mir auch jemand dabei helfen.

Gruß, gamexover

Re: Anmeldeformular verwenden

Verfasst: 09.05.2010 18:58
von gamexover
Weiß denn keiner weiter? :(

Re: Anmeldeformular verwenden

Verfasst: 30.05.2010 10:49
von gamexover
Kann denn keiner helfen?

Irgendwie muss das doch möglich sein. http://phpbb.de hat ja auch externe Seiten, auf denen man sich anmelden kann oder täusche ich mich? :-? Man kann sich ja bereits auf der Startseite anmelden, ohne in die Community gehen zu müssen.

Eigentlich müsste so etwas ja ganz simpel gehen, wenn man weiß wie...

Re: Anmeldeformular verwenden

Verfasst: 31.05.2010 06:44
von Dr.Death
Moin,

Du könntest auch einen Blick hierhin werfen:

[Snippet] Externer Login / Logout für phpBB3