php-Seite außerhalb des Roots einbinden

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Malte

php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Hallo,

ich habe mich mal ein wenig in diese Seite gewagt:
http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten

Die php-Seite, die ich einbinden möchte, ist jedoch außerhalb des Roots. Sie ist eine Ebene höher und in dem Fall die index-Datei (index.php)
Nun habe ich ein Problem, was die Wer ist online Anzeige betrifft.

Da steht ich soll folgendes einfügen:

Code: Alles auswählen

case 'neueseite':
			$location = 'Betrachtet "Eure Seite"';
			$location_url = append_sid("{$phpbb_root_path}neueseite.$phpEx");
		break;
bzw. ich muss das ja noch anpassen. :wink: Daran hapert es ein wenig. Es wurde zwar noch dieser Tipp, gegeben, aber ich komme irgendwie nicht voran:
$phpbb_root_path: Wenn die Datei in einem anderen Verzeichnis als phpBB liegt, hier den relativen Pfad zu phpBB mit abschliessendem Slash (/) eintragen.
Nun ist die Frage, wie soll ich das eingeben? Ich muss ja 2 Stellen verändern. Die Stelle mit dem Case muss die dann case 'index': heißen, oder wird das Verwechslungen mit der eigentlichen index.php im Root geben? Ich meine, durch den URL-Befehl unten, wird selbiges Ausgeschlossen.

An der 2 Stelle bin ich mir auch nicht so ganz sicher, was ich da eingeben muss:

Code: Alles auswählen

$location_url = append_sid("{$phpbb_root_path}neueseite.$phpEx");
Ich habe zwar den Tipp (Siehe oben) gelesen, doch komme in dem Sinne nicht so ganz voran.

Kann mir da jemand helfen?

Gruß
Malte
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Miriam »

zu 1: Dein Pfad muss also $phpbb_root_path = './phpbb3/'; heissen (wenn dein Forum im Verzeichnis phpbb3 ist. [Und scheinbar ist deine neue Datei im Root Verzeichnis, nur nicht im Foren-Root.]
zu 2: die Case-Anweisung muss dem Namen der Datei entsprechen. Zweimal Index ist zwar prinzipiell möglich. führt aber nicht zum gewünschten Ergebnis, da das Abarbeiten der Case-Anweisung durch das break; "beendet" wird.
zun 3: $location_url = append_sid("{$phpbb_root_path}neueseite.$phpEx"); muss den Namen der datei widerspiegeln.

Da dein Kardinalproblem das zweifache Vorhandensein der Datei index.php zu sein scheint, schlage ich vor, im (wahren) Root-Verzeichnis (also da wo die neue index.php sein soll) eine .htaccess Datei zu erstellen, die diesen Inhalt hat:

Code: Alles auswählen

DirectoryIndex neueseite.php
nun ist die Datei neueseite.php dein Index für das Verzeichnis und du kannst dich zu 100% an die Vorlage halten.
Zuletzt geändert von Miriam am 10.01.2012 18:32, insgesamt 1-mal geändert.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Malte

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Hallo,

ich weiß jetzt nicht so ganz, warum BlackHawk87 seinen Beitrag gelöscht hat, aber ich habe ja noch einen anderen. :D

Ich werde das ganze, was du geschrieben hast mal demnächst befolgen Miriam, danke. Das mit der .htaccess habe ich sogar gerade eingebaut, der lenkt auf meiner Webseite damit ich ordentlich an der index.php pfuschen kann, auf die alte index-Datei im html-Format weiter, die im Moment bei mir unter portal.php vorhanden ist.

Das mit den beiden index-Dateien finde ich persönlich nicht so gut, wenn ich eine umbenennen müsste, da ich persönlich finde, das in jedes Verzeichnis eine ordentliche Index-Datei gehört. :D Es ist zum Beispiel Schwachsinn, wenn jemand den vollen Pfad eingeben sollte, dass auf einmal eine 404 Seite erscheinen sollte.

Gruß
Malte
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 12113
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Crizzo »

Malte hat geschrieben:Hallo,

ich weiß jetzt nicht so ganz, warum BlackHawk87 seinen Beitrag gelöscht hat, aber ich habe ja noch einen anderen. :D
Stand ja nur das Gleiche drin wie bei Miriam, nützt dir ja nix. :wink:
Malte

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Ich weiß, dass der selbe Inhalt drinnen stand, ich habe mir deinen noch durchlesen können. :D
Malte

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Mal eine kleine Verständnisfrage: Ich kann zwar html und css programmieren, aber kenne mich nicht sonderlich mit php aus, deswegen wollte ich das erlernen und kenne auch schon grundlegende Dinge, trotzdem taucht eine Frage auf:

Wenn ich beispielsweise den Befehl include($phpbb_root_path . 'common.' . $phpEx); enthalten habe, muss ich den nicht auch entsprechen anpassen? Die Datei liegt ja weiterhin nicht im Root. Durch was muss ich das ersetzen?


PS: Zu der Online-Anzeige, komme ich in ein paar Tagen zurück.

Gruß
Malte
hackepeter13
Valued Contributor
Beiträge: 3557
Registriert: 21.04.2004 12:22
Wohnort: Berlin
Kontaktdaten:

Re: php-Seite außerhalb des Roots einbinden

Beitrag von hackepeter13 »

Malte hat geschrieben:Wenn ich beispielsweise den Befehl include($phpbb_root_path . 'common.' . $phpEx); enthalten habe, muss ich den nicht auch entsprechen anpassen? Die Datei liegt ja weiterhin nicht im Root. Durch was muss ich das ersetzen?
Nein!

In der Datei, die sich ausserhalb des phpbb-root befindet, änderst du nur:
$phpbb_root_path = './';
Wenn sich also dein Forum bspw. im Ordner "forum" befindet und gibst du in deiner externe Datei als phpbb_root_path ./forum/ an, also:
$phpbb_root_path = './forum/';

Alles andere wie include($phpbb_root_path . 'common.' . $phpEx); und so musst du nicht anpassen, da diese ja die Pfadangabe phpbb_root_path aus $phpbb_root_path = './forum/'; übernehmen. ;)

Oder anders gesagt, $phpbb_root_path = './forum/'; definiert den Pfad zum phpbb-root und überall wo dann in der selben Datei "phpbb_root_path" vorkommt, wird quasi der Pfad "./forum/" eingesetzt.
Malte

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Heißt das jetzt, dass ich muss in dem Falle include($phpbb_root_path . 'common.' . $phpEx); durch include($phpbb_root_path = './forum/)'; ohne irgendwelche Hintergründe wie Common ersetzen oder verstehe ich das falsch?

Danke für deine Hilfe, beim lernen. :D
hackepeter13
Valued Contributor
Beiträge: 3557
Registriert: 21.04.2004 12:22
Wohnort: Berlin
Kontaktdaten:

Re: php-Seite außerhalb des Roots einbinden

Beitrag von hackepeter13 »

Nein!
Du hast doch eine Datei nach der Vorlage erstellt:
Malte hat geschrieben:ich habe mich mal ein wenig in diese Seite gewagt:
http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten
und da steht am Anfang:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
Und wenn die Datei extern liegt, dann wird nur das ./ bei $phpbb_root_path = './'; angepasst!

Alles andere mit include bleibt wie es ist, da diese ja auf den Wert den du anpassen sollst zurückgreifen!
Malte

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Achso jetzt verstehe ich das. :D Du wirst es nicht glauben, aber das da oben habe ich schon abgeändert und dann dachte ich dummerweise noch, ich müsste unten noch was ändern, was ich ja dann oben schon getan habe. :-?

Dank für deine Hilfe.
Verschoben von Coding & Technik nach phpBB 3.0: Mod-Bastelstube am 21.01.2012 15:42 durch Pyramide

Antworten

Zurück zu „[3.0.x] Mod Bastelstube“