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

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Aha ok.
Also ich bin der Meinung, wenn der es auch in dem komplett leeren Testforum nicht erkennt, dann muss irgendwas am Pfad falsch sein.
Aber

Code: Alles auswählen

case 'home':
         $location = $user->lang['HOME_ONLINE_LISTE'];
         $location_url = append_sid("../home.$phpEx");
      break;
muss doch eigentlich richtig sein, da die 2 Punkte sagen, dass es ein Verzeichnis höher ist. :-?
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Miriam »

>Ist es auch, aber wie gesagt: Deine error.php kann die Datei etwas "höher" am Stammverzeichnis nicht sehen. So scheint es zumindest. Wirf mal einen Blick in die error.php.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Malte

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Ist es auch
Wenn der Pfad falsch ist, wie ist er dann richtig? Oder verstehe ich da was falsch?

Ich habe die Error.php (Die ist übrigens im Root-Verzeichnis der Forums und nicht in dem Ordner mit der home.php) mal in den Pastebin getan:
https://www.phpbb.de/support/pastebin.p ... view&s=939
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Miriam »

Also ich habe das mal eingebaut. Nach Kochrezept. Auch diese Errorpage Mod.

phpBB liegt in einem Unterverzeichnis, daher muss die Eintragung in der .htaccess angepasst werden ->

Code: Alles auswählen

ErrorDocument 400 /phpbb3/error.php?mode=400
ErrorDocument 401 /phpbb3/error.php?mode=401
ErrorDocument 403 /phpbb3/error.php?mode=403
ErrorDocument 404 /phpbb3/error.php?mode=404
ErrorDocument 500 /phpbb3/error.php?mode=500
Dann funktioniert schon mal diese Mod.

In der vViewonline.php bekam ich (wie oben beschrieben) die Ausgabe für $row['session'], wenn jemand auf der neueseite.php war: Das also noch anpassen mit:
  • finde in der viewonline.php

    Code: Alles auswählen

        preg_match('#^([a-z0-9/_-]+)#i', $row['session_page'], $on_page); 
    davor füge ein:

    Code: Alles auswählen

        $row['session_page'] = str_replace('../', '', $row['session_page']); 
Mein Eintrag für die case clause ist:
  • Code: Alles auswählen

            case 'neueseite':
                $location = 'Betrachtet "Eure Seite"';
                $location_url = append_sid("../neueseite.$phpEx");
            break; 
     
...wenn man den Link in der viewonline Liste anklickt... also den zur neuenseite.php, dann ist man auch noch eingeloggt.

Fazit: Es geht im Prinzip.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Malte

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Hallo Miriam,

nur damit es einfacher geht nochmal kleine Hinweise:
Mein Forum liegt im Verzeichnis /forum und die Seite heißt home.php. :D

Zum Error: Ja das ist bereits so bei mir steht bereits

Code: Alles auswählen

ErrorDocument 400 /forum/error.php?mode=400
ErrorDocument 401 /forum/error.php?mode=401
ErrorDocument 403 /forum/error.php?mode=403
ErrorDocument 404 /forum/error.php?mode=404
ErrorDocument 500 /forum/error.php?mode=500
So ich habe jetzt mal die Codeänderung von dir mit

Code: Alles auswählen

$row['session_page'] = str_replace('../', '', $row['session_page']); 
gemacht und getestet. Auch nach Cache leeren ändert sich nichts, es bleibt irgendwie das gleiche Problem. :-?

Nachdem ich wieder

Code: Alles auswählen

echo $row['session_page'] . "<br /><br />"; 
eingefügt habe, zeigte er wieder Error an.
Um mich zu versichern, dass ich alle Codeänderungen korrekt durchgeführt habe, habe ich das ganze nochmal in den Pastebin getan:
https://www.phpbb.de/support/pastebin.p ... view&s=940

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 »

Malte hat geschrieben:Mein Forum liegt im Verzeichnis /forum und die Seite heißt home.php. :D
Na, /phpbb3 und neueseite.php mit /forum und home.php zu substituieren, werden wir ja wohl noch hinbekommen... denke ich zumindest.

Wie gesagt, ich habe es so eingebaut, wie beschrieben; bei mir funzt es, bei dir nicht. Also irgendwas läuft dann bei dir auf dem Webspace anders / falsch. Wieso der 404er ausgegeben wird, kann ich von hier aus nicht nachvollziehen.

Die viewonline.php ist nicht das Kardinalproblem, sondern besagter Error 404. Wenn du rausfindest, wieso er wo / wie provoziert wird, hast du fast gewonnen.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Malte

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Dann habe ich wohl verloren. :-? Ich werde mal sehen, was ich tun kann.
Malte

Re: php-Seite außerhalb des Roots einbinden

Beitrag von Malte »

Hallo,

leider bin ich immer noch nicht zu einem Ergebnis gekommen, obwohl ich in letzter Zeit viele verschiedene Möglichkeiten ausprobiert habe...
Mich wundert es nur immer noch, wieso es in meinem Testforum auch nicht klappt, aber in deinem schon.
Kannst du mal genau schreiben, wie du es eingebunden hast? Also ich habe eine interessante Entdeckung gemacht:

Der Downloadmod von Oxpus hat es folgendermaßen gemacht:

Code: Alles auswählen

case 'download/file':
			$location = $user->lang['DOWNLOADING_FILE'];
			$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
		break;
Der Unterschied ist nur, dass er in dem Fall nicht eine Ebene Höher, sondern eine tiefer gelegen ist. Aber die wichtige Entdeckung ist, dass er den Case-Befehl Ebenfalls verändert hat. Da steht nicht nur file, sondern entsprechend dem Pfad auch Download/file. Berichtige mich, wenn ich da einen Katastrophalen Fehler mache, aber ich meine, es kann damit zu tun haben...

PS: Ich habe die Sprachvariable mal in den Sprachdateien verlagert und den ohnehin nicht funktionierenden Befehl noch weiter verpfuscht:

Code: Alles auswählen

case 'home':
			$user->add_lang('mods/webseiteindex');
			$location = $user->lang['HOME_ONLINE_LISTE'];
			$location_url = append_sid("../home.$phpEx");
		break;
Die Verlagerung in die Sprachdatei sollte aber nicht zu weiteren Fehler führen, so wie ich mir das denke...
Antworten

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