Pfad-Problem bei der Verwendung von Subdomains (und Spamschutz-Problem) secimg.php

Read-Only-Modus

Das 01-Supportforum befindet sich im Read-Only-Modus. Es ist nicht mehr möglich sich zu registrieren, neue Themen zu erstellen oder auf bestehende Themen zu antworten.

Alle Inhalte stehen bis auf absehbare Zeit jedoch weiterhin lesend zur Verfügung.


Bei Fehlern oder Problemen mit PHP-Scripten von 01-Scripts.de erstellen Sie gerne einen Issue-Eintrag auf Github oder nehmen Sie per E-Mail Kontakt auf.

  • Ich hab das 01script "01ACP + 01Artikelsystem" dementsprechend in /html/01scripts installiert, dazu auch alle Updates.


    Erstell ich nun eine Datei, (/html/test.php) und baue da den Code laut Vorgabe


    [PHP]
    <?PHP
    $subfolder = "01scripts/";
    $modul = "01article";
    $_GET['catid'] = "1,3,2";
    $flag_utf8 = FALSE;
    $flag_nocss = FALSE;
    include($subfolder."01module/".$modul."/01article.php");
    ?>
    [/PHP]


    ein, funktioniert das alles noch wunderbar. Erstelle ich aber unter /html noch ein paar Unterverzeichnisse und packe da die test.php rein, bekomm ich die Fehlermeldungen


    Zitat

    Warning: include(01scripts/01module/01article/01article.php) [function.include]: failed to open stream: No such file or directory in /var/www/webxyz/html/123456789/test.php on line 89


    Warning: include(01scripts/01module/01article/01article.php) [function.include]: failed to open stream: No such file or directory in /var/www/webxyz/html/123456789/test.php on line 89


    Warning: include() [function.include]: Failed opening '01scripts/01module/01article/01article.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/webxyz/html/123456789/test.php on line 89


    soweit ist doch klar, er kann das Verzeichnis nicht finden, also muss der include-Befehl angepasst werden. Aber wie? Selbst wenn ich den absoluten Pfad bei Include eingebe

    PHP
    1. <?PHP
    2. $subfolder = "01scripts/";
    3. $modul = "01article";
    4. $_GET['catid'] = "1,3,2";
    5. $flag_utf8 = FALSE;
    6. $flag_nocss = FALSE;
    7. include("/var/www/webxyz/html/01scripts/01module/01article/01article.php");
    8. ?>


    kommen nur Fehlermeldungen:


    Mein Ziel: Mein Verein hat mehrere Bereiche, wie Fussball, Schwimmen, Turnen usw. Jeder Bereich erhält also eine Kategorie im Artikelsystem, also lege ich für jeden Vereinsbereich (welche jeweils ihre eigenen Ordner auf den Webspace haben) eine test.php mit den entsprechenden Abfragen $_GET['catid'] = "1,3,2"; an. Ist nur die Frage, wie der include-Befehl dementsprechend in den einzelnen test.php-Dateien ausehen muss....

  • Zitat

    Original von Papi97
    ich glaub, ich hab die Lösung gefunden.


    Wo bitte können die Variablen für
    $system_link_rss und $basicdir in der page.html angepasst werden?


    Hallo,


    es sollte eigentlich reichen wenn Sie folgenden include-Befehl verwenden:
    [PHP]<?PHP
    $subfolder = "../01scripts/";
    $modul = "01article";
    $_GET['catid'] = "1,3,2";
    $flag_utf8 = FALSE;
    $flag_nocss = FALSE;
    include($subfolder."01module/".$modul."/01article.php");
    ?>[/PHP]


    MfG,
    Michael Lorer

  • meine test.php sieht also jetzt so aus:


    PHP
    1. <?PHP
    2. $subfolder = "../../../../01scripts/";
    3. $modul = "01article";
    4. $_GET['catid'] = "3";
    5. $_GET['page'] = 2;
    6. $flag_utf8 = FALSE;
    7. $flag_nocss = FALSE;
    8. include($subfolder."01module/".$modul."/01article.php");
    9. ?>


    diese liegt im Verzeichnis domain.de/12456789/123/456/789


    Im Browser ruf ich das dann so auf: domain.de/12456789/123/456/789/test.php
    Ausgabe: Alle Artikel der Kategorie 3, die Links zu den Feeds funktionieren, ebeso sämtliche Icons und Bilder werden angezeigt.


    Jetzt erstelle ich eine Subdomain (und nur damit möchte ich arbeiten) und leite die automatisch auf dieses Verzeichnis, ruf ich im Brower also die Adresse subdomain.domain.de/test.php auf. Soweit funktioniert auch hier das script, sämtliche Artikel der Kategorie 3 werden angezeigt, aber was jetzt nicht funkioniert, sind die Links zu den RSS-Feeds. Diese haben den Link http://sub.domain.de/01scripts…w_rssfeed&modul=01article
    Das Script ist aber nicht auf der Subdomain installiert...
    Deswegen fragte ich nach die Variablen für $system_link_rss und $basicdir im Template page.html.


    siehe Demo:
    mit Subdomain: http://sub.ms-weblog.de/testsub3.php


    ohne Subdomain: http://ms-weblog.de/123456789/123/456/789/testsub3.php

  • Hallo,


    das sieht dann eigentlich nach einem Bug aus. Allerdings komm ich momenan grad nicht dahinter, warum er auftritt...


    $systm_link_rss kann in der Datei 01article.php in Zeile 72 editiert werden:

    Code
    1. $system_link_rss = $subfolder."01module/".$modul."/01article.php";


    $basicdir kann in 01acp/system/headinclude in Zeile 37 geändert werden.


    Ich würde aber eher den Pfad direkt von Hand in die page.html eintragen (Absoluter Pfad sollte ja gehen) bevor ich Änderungen an den Variablen vornehme.


    Ich schau auch, ob ich den Bug der zu diesem Problem führt noch finde.


    MfG,
    Michael Lorer

  • Vielleicht bekommen Sie ja es noch irgendwie hin, dass Sie solche Pfadangaben, wie
    $system_link_rss = $subfolder."01module/".$modul."/01article.php";
    $subfolder = "01scripts/";
    usw.
    mit in die 01_config.php packen, dann müsse man nicht soviele Dateien anpassen. Dann sollte es wohl auch mit den Subdomains funktionieren.


    in diesem Fall werde ich die page.html dementsprechend ändern, bis Sie eine Lösung haben.


    trotzdem Vielen Dank

  • Zitat

    Original von Papi97
    Vielleicht bekommen Sie ja es noch irgendwie hin, dass Sie solche Pfadangaben, wie
    $system_link_rss = $subfolder."01module/".$modul."/01article.php";
    $subfolder = "01scripts/";
    usw.
    mit in die 01_config.php packen, dann müsse man nicht soviele Dateien anpassen. Dann sollte es wohl auch mit den Subdomains funktionieren.


    Diese Pfaangaben kommen nicht in die config-Dateien und haben in den jeweiligen Dateien schon ihren richtigen Platz.
    In die config-Datei kommen nur die MySQL-Zugangsdaten, da diese bei einem Update nie betroffen sind und die anderen Dateien ohne eine Funktionsstörung ausgetauscht werden können.
    Die beiden Variablen befinden sich in unterschiedlichen Dateien, weil es sich bei der einen um eine Modul-Spezifische Datei handelt und die andere Modul-Übergreifend ist.

  • so, leider hier nun weitere Probleme,
    siehe auch Demo (jetzt mit Bsp-Artikel zum Testen):
    mit Subdomain: http://sub.ms-weblog.de/testsub3.php
    ohne Subdomain: http://ms-weblog.de/123456789/123/456/789/testsub3.php


    1. Spamschutz deaktiviert, bei Kommentare alle Felder ausgefüllt, dennoch:

    Zitat

    Sie haben nicht alle benötigten Felder (Name, Kommentar, Spamschutz) ausgefüllt!


    2. Spamschutz aktiviert:
    bei beiden Testdomains wird der Sicherheitscode nicht angezeigt.


    Also funktionieren in allen Template-Dateien die Pfadangaben nicht korrekt, bei Subdomains u.a. auch die von den Smilies und den hochgeladenen (Bild)Dateien (Pfad in filemanager.js)


    Bleibt mir nur, sämtliche Templates nachbearbeiten oder ohne Subdomain arbeiten (was für mein Verein dann aber nicht möglich ist).


    PS: werde die 01article.php und headerinclude erst mal so lassen, wie sie sind, vielleicht findet sich ja noch eine Lösung.

  • Zitat

    Original von Papi97
    Bleibt mir nur, sämtliche Templates nachbearbeiten oder ohne Subdomain arbeiten (was für mein Verein dann aber nicht möglich ist).


    PS: werde die 01article.php und headerinclude erst mal so lassen, wie sie sind, vielleicht findet sich ja noch eine Lösung.


    Ich werde mich morgen nochmal intensiv um dieses Problem kümmern.


    MfG,
    Michael Lorer

  • Hallo,


    ich habe mich jetzt um das Problem gekümmert - habe allerdings schlechte Nachrichten:
    Es gibt dafür keine Lösung.
    Es liegt kein Problem im Script selber vor. Das Problem entseht, weil der Browser bei der Verwendung von Subdomains das Verzeichnis, auf das die Subdomain zeigt als lokales Root-Verzeichnis ansieht. Über den Browser ist es nun nicht möglich auf höher gelegene Verzeichnisse über einen relativen Pfad per ../../../ zuzugreifen. So ein Zugriff ist nur auf der PHP-Ebene möglich. Deshalb funktioniert der include() zwar - aber es können keine Bilder angezeigt werden.


    MfG,
    Michael Lorer

  • Zitat

    Original von Papi97
    In diesem Fall müssten also sämtliche Dateien im Templateverzeichnis manuell angepasst werden, dann sollt es ja wohl funktionieren.


    Das wird zu keiner Lösung führen, da die Bilder die in Beiträgen eingebunden werden trotzdem nicht angezeigt werden können.
    Die einzige Lösung, die mir einfällt, ist die Verwendung eines IFrames auf der Subdomain. Damit sollte es funktionieren.

  • Zitat

    Original von Papi97
    demo:
    http://fussball.tsv-godshorn.de/jfb/1ejugend-1.php


    das Script ist installiert in /html/01scripts und die Anzeige bei Subdomains per IFRAME gelöst, allerdings fehlt noch bzw. funktioniert nicht der der Sicherheitscode. Die URL zu secimg.php stimmt aber, die Grafik wird nur nicht angezeigt, woran Liegt das?


    Hallo,


    da scheint es in deinem Fall zu einem Problem bei der Pfadangabe zu kommen.
    Gib mal in der Datei 01pics/secimg.php in Zeile 27 einen relativen Pfad deines Webservers in folgender ähnlicher Form ein:

    Code
    1. /homepages/<...>/<kundennummer>/htdocs/<verzeichnis>/arialbd.ttf


    Vgl.
    http://forum.de.selfhtml.org/archiv/2006/10/t139276/


    MfG,
    Michael Lorer

  • OK, soweit funktioniert der Spamschutz im IFRAME, aber wenn man diesen in ACP deaktiviert, können keine Kommentare mehr abgeschickt werden

    Zitat

    Sie haben nicht alle benötigten Felder (Name, Kommentar, Spamschutz) ausgefüllt!


    Also lassen wir erst mal den Spamschutz an, ist ja auch besser so....


    Weiteres Problem:
    Demo: http://tsv-godshorn.de/fussball/jfb/1ejugend-1.php
    in den Kommentaren wird der BB-Code nicht richtig angezeigt bzw. umgewandelt, sondern nur als Text angezeigt (siehe Demo, Kommentar von Beitrag 2)

    Zitat

    [ B]testkomm[ /B]
    [ I]testcomm[ /I]
    [ QUOTE]testkomm[ /QUOTE]

  • Hallo,


    die Meldung Sie haben nicht alle benötigten Felder (Name, Kommentar, Spamschutz) ausgefüllt! ist ein Fehler, der eigentlich mit der Version 1.0.0.1 des ACP behoben wurde.
    Wenn das nicht der Fall ist einfach die functions.php-Datei aus dem Anhang ins Verzeichnis 01scritps/01acp/system kopieren.


    Die Sache mit den BB-Codes ist hingegen kein Fehler.
    Wenn beim Verfassen eines Kommentars BB-Code verwendet wird - gleichzeitig aber die Checkbox Smilies & BB-Code deaktivieren? angeklickt wird, wird der Kommentar eben so ausgegeben.
    Die verwendeten BB-Codes werden - genau wie die Smilie-Zeichen - NICHT entfernt, da die Verwendung dieser Konstrukte in manchen Fällen erwünscht sein kann.


    MfG,
    Michael Lorer

  • Im ACP


    Smilies aktivieren? comments_smilies Nein
    BB-Code aktivieren? comments_bbc Ja


    Verfassen eines Kommentars
    Checkbox Smilies & BB-Code deaktivieren nicht angeklickt


    Demnach sollten die BB-Codes dementsprechend umgewandelt werden, also der Code [ b]fett[ /b] sollte den Text fett darstellen und genau das macht es nicht.
    siehe Demo http://tsv-godshorn.de/n1.php?artid=19&search=&page=&catid=#01id19
    -------------------------------------------------------------------------------------------
    die beigefügte function.php brachte hingegen den gewünschten Erfolg, obwohl 01ACP-Version: 1.0.0.1 schon längst bzw. kurz nach Veröffentlichung installiert wurde.


  • In dem Fall scheint das doch ein Fehler zu sein. Bitte mal die Datei aus dem Anhang ausprobieren.

  • Zitat

    Original von Papi97
    danke, sieht gut aus, funktioniert. Und dabei hab ich doch nur ganz normal hier den Download vollzogen, wie jeder andere auch. Denn muss es ja bei den anderen Usern ebenfalls nicht funktioniert haben, oder hat da noch keiner was bemerkt....


    Hallo,


    es kann sein, dass du in dem Fall einfach fast ein bisschen zu schnell warst.
    Die Version 1.0.0.1 wurde am Tag der Veröffentlichung noch 2x korrigiert (ohne neue Versionsnummer). Dabei war vermutlich auch der von dir genannte kleine Fehler dabei.


    MfG,
    Michael Lorer