Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PHPBB-Board integrieren (https://www.delphipraxis.net/77903-phpbb-board-integrieren.html)

TheMiller 26. Sep 2006 16:52


PHPBB-Board integrieren
 
Hallo,

ich habe seit neuem ein PHPBB-Forum, dass ich in meine Homepage integrieren möchte. D.H, wenn sich ein User auf meiner Seite einloggt, dann soll er auch automatisch im Forum eingeloggt sein.

Dieses Tutorial habe ich schon erfolgreich durchgearbeitet und die User werden auch als einloggt angezeigt. Doch wenn ich jetzt einen Beitrag (o.Ä) schreiben möchte, erkennt das Forum nicht, dass ich ein eingeloggter User bin und fordert mich zum Einloggen auf.

Ich hoffe ihr könnt mir helfen!

Danke im Voraus!

fwsp 26. Sep 2006 16:53

Re: PHPBB-Board integrieren
 
ich würde dir emphelen, es anders rum zu machen. das phpBB aufzusetzen und dann deine page integrieren, dürfte einfacher und unkomplizierter sein.

TheMiller 26. Sep 2006 16:55

Re: PHPBB-Board integrieren
 
Das ist leider angesichts der Größe der Homepage nicht mehr machbar...

mkinzler 26. Sep 2006 17:31

Re: PHPBB-Board integrieren
 
Zitat:

Das ist leider angesichts der Größe der Homepage nicht mehr machbar...
Warum?
Der Umfang einer Homepage hindert dich doch nicht, diese zu erweitern.

alcaeus 26. Sep 2006 17:36

Re: PHPBB-Board integrieren
 
Glaub mir, es ist immer einfacher, ein anderes Session-System an jenes des phpBB anzupassen. Du musst nur ein paar Zeilen einfuegen:
Code:
define('IN_PHPBB', True);
$phpbb_root_path = './'; // ggf. anpassen, ist der pfad zur index.php des forums

include('extension.inc');
include($phpbb_root_path .'common.'. $phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX); // ggf. neue Konstanten in includes/constants.php definieren und hier verwenden
init_userprefs($userdata);
Dann noch alle Links, die ausgegeben werden, in append_sid() wickeln, und gut is. Ach, und den Database-Layer sowie das Template-System des phpBB kannste dann auch gleich mitverwenden. Sorry, aber primitiver gehts echt nicht *g*

Die Login-Seite des Forums kannst du ganz normal weiterverwenden, ueber den redirect-Parameter beim Aufruf kannst du den User nach dem Login woanders hinleiten:
Code:
http://deinserver/forum/login.php?redirect=../index.php
;)

Greetz
alcaeus

TheMiller 26. Sep 2006 19:20

Re: PHPBB-Board integrieren
 
Alter!

Wenn das klappt, bist du mein persönlicher Held :wink:

Werde es, denke ich, morgen testen!

Danke Dir/Euch

Bye

alcaeus 26. Sep 2006 19:27

Re: PHPBB-Board integrieren
 
Joa, kein Problem. Wenn du dann noch die Ausgabe des headers und Footers durch phpBB erledigen laesst:
Code:
$page_title = 'Foo';
include($phpbb_root_path .'includes/page_header.'. $phpEx);

//...

include($phpbb_root_path .'includes/page_tail.'. $phpEx);
Dann hast automatisch immer den richtigen Header usw. ;)

Greetz
alcaeus

TheMiller 28. Sep 2006 13:54

Re: PHPBB-Board integrieren
 
Hallo,

ich habe jetzt folgendes in die Datei eingebunden, die auf jeder Seite nach dem Login prüft:

Code:
define('IN_PHPBB', True);
$phpbb_root_path = './'; // ggf. anpassen, ist der pfad zur index.php des forums

include('extension.inc');
include($phpbb_root_path .'common.'. $phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX); // ggf. neue Konstanten in includes/constants.php definieren und hier verwenden
init_userprefs($userdata);
Diese Zeilen habe ich natürlich angepasst. Doch was meinst du jetzt mit

Zitat:

Zitat von alcaeus
Dann noch alle Links, die ausgegeben werden, in append_sid() wickeln

Muss ich jetzt den Link in append_sid wickeln, der zum Forum führt, alle Links aus dem Forum in append_sid oder alle Links von meiner HP in append_sid packen?

Danke nochmal!

alcaeus 28. Sep 2006 14:14

Re: PHPBB-Board integrieren
 
Moin,

nehmen wir an, du hast in deiner Seite irgendwo sowas:
Code:
[url="foobar.php?id=<?= $id ?>"]Foo[/url]
dann muss das am Ende so aussehn:
Code:
[url="<?= append_sid('foobar.php?id='. $id) ?>"]Foo[/url]
Das sorgt dafuer, dass die alle Links die SID enthalten, und man auch mit deaktivierten Cookies die Seite noch verwenden kann ;)

Greetz
alcaeus

TheMiller 28. Sep 2006 14:26

Re: PHPBB-Board integrieren
 
Ok, es müssen aber nur die Links die SID enthalten, die zum Forum führen, oder?

alcaeus 28. Sep 2006 14:27

Re: PHPBB-Board integrieren
 
Falsch, alle. Du hast ja die Website auch ins Session-System des phpBB eingebunden ;)

Greetz
alcaeus

TheMiller 28. Sep 2006 14:41

Re: PHPBB-Board integrieren
 
Hm... moment...

Ich habe jetzt die Zeilen, die du hier gepostet hast, in meine Session-Datei eingebunden. Im Session-System des Forum habe ich nichts verändert.

Ich glaube, ich habe da was falsch verstanden, oder?

alcaeus 28. Sep 2006 14:42

Re: PHPBB-Board integrieren
 
Wo du es einbindest, ist egal...du musst auf alle Faelle das Session-System des phpBB starten, sobald du eine deiner Seiten aufrufst. Ob du das woanders machst, ist egal.

Mein Tipp ist, das eigene Session-System wegzuwerfen, und es mit dem vom phpBB zu ersetzen. (gut, der eigentliche Tipp ist, die Seiten so aufzubauen wie die phpBB-Seiten selbst, inklusive DBAL und TPL-System)

Greetz
alcaeus

Phoenix 28. Sep 2006 14:44

Re: PHPBB-Board integrieren
 
Äh..

Also: Da Du für Deine Seite jetzt das Session-System des phpBB benutzt müssen natürlich auch - wenn ein User eingeloggt ist - alle Deine Seiten die Session mitführen.

Will heissen alle Links die auf einer von Deinen Seiten auf eine andere Deiner Seiten verweisen müssen mit der SID gespickt sein - sonst geht die Session nämlich flöten wenn ein User keine Cookies an hat und zwischen Deinen Seiten wechselt. Das betrifft insbesondere das Menü Deiner Seite.

TheMiller 28. Sep 2006 14:45

Re: PHPBB-Board integrieren
 
Dann würde es ja reichen, wenn ich die Session jeweils in der Datei aufrufe, die sowieso meine Session prüft. Diese Datei ist nämlich in jeder anderen Datei per include eingebunden. Ich kann doch nicht alle Links ändern. Sind wirklich viele...

alcaeus 28. Sep 2006 14:47

Re: PHPBB-Board integrieren
 
Zitat:

Zitat von DJ-SPM
Dann würde es ja reichen, wenn ich die Session jeweils in der Datei aufrufe, die sowieso meine Session prüft. Diese Datei ist nämlich in jeder anderen Datei per include eingebunden.

Genau.

Zitat:

Zitat von DJ-SPM
Ich kann doch nicht alle Links ändern. Sind wirklich viele...

Tja, das Leben ist hart, da musst du durch :mrgreen:

Greetz
alcaeus

Phoenix 28. Sep 2006 14:47

Re: PHPBB-Board integrieren
 
Zitat:

Zitat von DJ-SPM
Ich kann doch nicht alle Links ändern. Sind wirklich viele...

Dann musst Du aber damit rechnen dass ein Benutzer ohne Cookies nach der Anmeldung aus der Session fliegt wenn er einen von den nicht angepassten Links innerhalb Deiner Seite anklickt.

TheMiller 28. Sep 2006 14:55

Re: PHPBB-Board integrieren
 
Gut,

dann steht jetzt noch die Frage aus, wie ich die SID speichere.

Meine Datei fängt so an:

Code:
<?php session_start();
include("connettodb.php");

...
So, wie muss ich jetzt die SID speichern? So:

Code:
$_SESSION['sid'] = session_id();
$sid = session_id();
oder ganz anders? Weil: Wenn ich die Session in der Session-Datei aufrecht erhalte fällt ja der Aufruf mit append_sid weg, oder?

Phoenix 28. Sep 2006 15:02

Re: PHPBB-Board integrieren
 
Zitat:

Zitat von DJ-SPM
Weil: Wenn ich die Session in der Session-Datei aufrecht erhalte

Wie soll das gehen? Ich komme - ohne Cookies - auf Deine Seite.
Ich mache eine Session auf. Ich wechsele die Seite - und auf dem Link ist kein append_Sid gewesen.
--> Ich komme auf die neue Seite und die Session ist weg. Weg. Punkt. Das ist wie wenn ich frisch auf die Seite kommen würde. Da kann nichts mit Session in der Session-Datei aufrecht erhalten gehen.

Deswegen musst Du die SID über die Links mitgeben und auf jeder Seite (bzw. in Deinem Include) nachgucken, ob eine SID mit dem Aufruf übergeben wurde und wenn ja die Session über die SID wieder holen. Aber das macht eigentlich das phpBB für Dich. Du musst ihm nur die Hilfestellung mitgeben - nämlich die Sid. Und zwar in jedem Link der von Deiner Seite auf Deine Seite geht. Durch diese hohle Gasse musst Du gehen. Es führt kein anderer Weg nach Küssnacht.

Cyberbob 17. Nov 2006 14:30

Re: PHPBB-Board integrieren
 
Servus,

ich hab, wie hier beschrieben, mein Seit an das Forum angepasst. Nur as mit dem append_sid funktioniert nicht. er fügt einfach keine sid an. Was mach ich falsch?
Und noch etwas:
Wie kann ich nun auf meinen anderen Seiten feststellen, welchen Benutzernamen und welche Rechte ich habe (Admin, Mod)?


Gruss
Christian

jakobwenzel 17. Nov 2006 15:41

Re: PHPBB-Board integrieren
 
Die SID wird nur angehängt, wenn Cookies deaktiviert sind.
Da hing ich auch schon nen halben Tag, bis ich dann mal in die Doku vom PHP geguckt hab. :wall:

alcaeus 17. Nov 2006 17:09

Re: PHPBB-Board integrieren
 
Korrektur: beim ersten Seitenaufruf nachm Login und im ACP wird die SID angehaengt, auch wenn Cookies akzeptiert werden. Ersteres weil man da noch nicht weiss, ob die Cookies aktiviert sind, letzteres aus Sicherheitsgruenden ;)

Greetz
alcaeus

Cyberbob 17. Nov 2006 18:23

Re: PHPBB-Board integrieren
 
Gut, danke!

Hat noch einer ne Idee wegen dem Benutzernamen und den Rechten?

[EDIT]
Mir ist noch was eingefallen:
Im ACP kann man auf "Benutzer finden" klicken. Wenn man nun in diesem Popup einen Benutzer ausgewählt hat und auf "Auswählen" klickt, wird der Benutzername in ein Inputfeld der Hauptseite übernommen. Wie kann ich das selbst auf meiner Seite machen?
[/EDIT]

Gruss
Christian

alcaeus 17. Nov 2006 18:57

Re: PHPBB-Board integrieren
 
Das ist JS...mit window.opener kannst du auf das oeffnende Fenster zugreifen :)
Alles weitere verratet dir das JS auf der Seite selbst ;)

Greetz
alcaeus

Cyberbob 17. Nov 2006 20:13

Re: PHPBB-Board integrieren
 
Jo, danke! Funktioniert bestens.

U wie löse ich das mit den Benutzernamen und den Rechten?


Gruss
Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz