Seite 1 von 4

php-Seite außerhalb des Roots einbinden

Verfasst: 10.01.2012 18:14
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

Re: php-Seite außerhalb des Roots einbinden

Verfasst: 10.01.2012 18:31
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.

Re: php-Seite außerhalb des Roots einbinden

Verfasst: 10.01.2012 18:56
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

Re: php-Seite außerhalb des Roots einbinden

Verfasst: 10.01.2012 19:00
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:

Re: php-Seite außerhalb des Roots einbinden

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

Re: php-Seite außerhalb des Roots einbinden

Verfasst: 10.01.2012 19:47
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

Re: php-Seite außerhalb des Roots einbinden

Verfasst: 10.01.2012 19:56
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.

Re: php-Seite außerhalb des Roots einbinden

Verfasst: 10.01.2012 20:01
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

Re: php-Seite außerhalb des Roots einbinden

Verfasst: 10.01.2012 20:08
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!

Re: php-Seite außerhalb des Roots einbinden

Verfasst: 10.01.2012 20:17
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.