Seite 1 von 2

Forum und Page verbinden

Verfasst: 16.05.2009 22:32
von andybabe
Hi,

Ich habe gelesen, dass es eine vordefinierte Klasse von phpBB gibt, mit der ich den Login auf meine Page bauen kann. Wie genau gehe ich damit um, damit es funktioniert?
Egal ob der User sich jetzt registrieren oder einloggen will, soll er die Möglichkeit haben, wieder auf die eine Seite zurück zu kommen. Ist das möglich, auch wenn ich die vordefinierte Klasse verwende? Oder muss ich mir da selbst etwas bauen?

Der User soll also schon das Gefühl bekommen, als wären das Forum und die Page ein und das Selbe.

Re: Forum und Page verbinden

Verfasst: 17.05.2009 08:49
von ralf-isi
so ganz schlau aus deiner frage werde ich (leider) nicht.

meinst du damit, dass sich deine user auf einer externen seite einloggen können?
wenn ja: Dr. Death hat das sehr gut beschrieben/erklärt.
wo? hier:http://www.lpi-clan.de/viewtopic.php?f=26&t=3550 funktioniert einwandfrei.

schöner sonntag

Re: Forum und Page verbinden

Verfasst: 17.05.2009 11:06
von andybabe
Die Anleitung ist aber genau das, was ich brauche :)

Was ich da jetzt noch gelesen habe:
Was ggf. angepasst werden muss ist das phpBB3 Forums Root Verzeichnis.
Ich kann mich aber dann schon noch im Forum einloggen oder? Oder wird der Login dadurch auf die Page verlegt?

Re: Forum und Page verbinden

Verfasst: 17.05.2009 11:33
von oxpus
Hallo,

die Verzeichnisangabe betrifft nur dein neues Anmeldeformular in der externen Seite und nicht das phpBB 3 selber!
Wenn du das Anmeldescript ausserhalb des phpBB 3 ablegst, ist dort auch der Pfad zum phpBB 3 selber zu ändern, wie es Dr.Death beschrieben hat.
Du änderst dabai ja nichts am phpBB 3 ;)

Re: Forum und Page verbinden

Verfasst: 17.05.2009 14:33
von andybabe
Also folgendes:

Das Script funktioniert nur zum Teil. Außerdem habe ich auch schon einen Fehler gefunden. Ich kann mich über das Formular einloggen. Es steht dann auch dran, dass ich eingeloggt bin. ABER es kommt zu einem Fehler.
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
Du bist angemeldet.

Zum Abmelden hier klicken
So und wenn ich da jetzt auf Abmelden klicke, komme ich zur Login Seite. Allerdings wird mir dann 404 Error angezeigt, weil es die Seite nicht gibt. Ist ja klar, im Verzeichnis vom Forum gibt es keine Datei mit dem Namen login.php.

Wenn ich also das Rootverzeichnis anpasse, dann kann ich mich einloggen. Passe ich es nicht an, kann ich mich theoretisch nur ausloggen, aber nicht einloggen. Also sind ein paar Fehler im Script und es kann somit nicht so richtig funktionieren, wenn das Forum in einem extra Verzeichnis liegt (was man ja normal auch so machen sollte. Oder nicht?)

So, jetzt hatte ich es dann zum Testen mal etwas geändert, so, dass ich zur Datei login.php geführt werde, wenn ich mich auslogge. Allerdings passiert dann das:
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 990: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/g/de/gmmts/web/login.php:1)
Du bist abgemeldet

Nochmal versuchen?
Funktioniert dieses Script also nur, wenn die 2 Dateien da liegen, wo das Forum liegt? Muss ich die Dateien also dort hinbauen und das Formular muss dann so gebaut werden, dass ich genau dort hingeführt werde? Dann kann ich das Teil ja gleich ins normale Forum führen lassen.


EDIT: Selbst wenn ich es im Verzeichnis vom Forum teste, klappt es nicht richtig. Ich bin dann zwar auch eingeloggt, aber nicht im Forum. Das scheint irgendwie nicht zu klappen. Ist es überhaupt mit dem Script möglich? Also ich will, dass man sich im Forum und auf der Page einloggen kann. Wenn man sich auf der Page einloggt, sollte man auch im Forum surfen können und wenn man sich im Forum einloggt, soll man auch auf der Page surfen können. Also ganz egal wo man sich einloggt, man soll überall surfen können.

Re: Forum und Page verbinden

Verfasst: 17.05.2009 15:55
von Momosche
Ich habe mich an diesem Script auch schon sehr oft versucht. Wenn ich beide Dateien im gleichen Ordner hatte in dem auch das Forum war hat alles super funktioniert. Habe ich die beiden Dateien aber in den Ordner gelegt in dem meine Homepage liegt kam eine Fehlermeldung nach dem anderen.

Aber du kannst das Script sehr gut als Vorlage nutzen um dir selbst eins zu schreiben und dann in deine Homepage einzubinden. Ich habe das Script - angepasst - in meine Homepage eingebaut. Loggt man sich ein kann man auf der Homepage und im Forum surfen, ohne sich im Forum extra noch mal einloggen zu müssen. Genauso geht es dann logischweise auch mit dem ausloggen.

Falls du mit diesem Script hier immer noch nicht weiter gekommen bist kannste mir ja gerne ne PN schreiben ich schicke dir dann meine beide Dateien.

Liebe Grüße :)

Re: Forum und Page verbinden

Verfasst: 17.05.2009 20:11
von ralf-isi
nur keine panik. :lol:
das funktioniert absolut einwandfrei.
als beispiel: im home, also der root von meinem web-platz habe ich die index.php abgelegt.
das phpBB forum (3.0.4) mit B3P liegt im ordner board. in board seinerzeit das forum ganz normal installiert. mit der URL http://www.meine-seite.ch/ landest du im root.
mit der URL http://www.meine-seite.ch/board/ landest du direkt im verzeichnis vom forum mit B3p.
soweit so gut.
die index.php im root sieht so aus:

Code: Alles auswählen

</head>

<body >
<?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 : '[color=#FF0000]board/[/color]';
    $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
        redirect('[color=#FF0000]board/portal[/color].'.$phpEx);
    }
    else
    {
        //Wenn Du hier landest bist Du nicht eingeloggt.
    ?>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="18" blabla
das rot markierte (das da:
mit dem ende!) musst du an deine einstellung/ordner anpassen.

guten wochenstart wünsche ich allen
ralf

Re: Forum und Page verbinden

Verfasst: 17.05.2009 21:26
von andybabe
Ist das ein abgeänderter Code?

Re: Forum und Page verbinden

Verfasst: 17.05.2009 22:39
von ralf-isi
andybabe hat geschrieben:Ist das ein abgeänderter Code?
*grübel.
ich sag mal: so dass es bei mir funktioniert wie ich es haben will / brauche (und spass macht).

gib bescheid ob es bei dir klappt.

Re: Forum und Page verbinden

Verfasst: 18.05.2009 14:11
von andybabe
Test test und? Es klappt nicht.

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 : 'Forum/';
    $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
        redirect('login.'.$phpEx);
    }
    else
    {
        //Wenn Du hier landest bist Du nicht eingeloggt.
    }
?>
Da mein Forum im Verzeichnis Forum habe, habe ich dein Board in Forum geändert. Da ich kein Portal habe, habe ich Portal weggelassen. Was passiert, wenn ich mich jetzt einloggen möchte?
Umleitungsschleife

Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.