Contao-Camp 2024
Ergebnis 1 bis 12 von 12

Thema: (Gelöst) XML parsen in geschütztem Bereich ohne XML selbst öffentlich zu machen

  1. #1
    Contao-Nutzer
    Registriert seit
    28.09.2009.
    Ort
    Dresden
    Beiträge
    39

    Standard (Gelöst) XML parsen in geschütztem Bereich ohne XML selbst öffentlich zu machen

    Ich mache folgendes:

    Ich habe ein XML-File welches ich unter "files" abgelegt habe.
    Mittels Template und SimpleXML zieh ich mir die Dinge, die ich haben möchte raus (abhängig davon, welcher Member eingeloggt ist) und gebe sie im Frontend in einem geschützten Bereich aus. Das funktioniert auch alles wunderbar.
    Nur ist es jetzt so, dass ich das XML (unter "files") selbst nicht schützen kann, ich muss es auf "öffentlich" setzen, damit es im Template geladen werden kann.

    Gibt es da irgendeine Möglichkeit die Datei zu schützen und trotzdem laden und verarbeiten zu können?
    Geändert von prop (24.04.2018 um 14:25 Uhr) Grund: Gelöst

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.897
    Partner-ID
    10107

    Standard

    Zitat Zitat von prop Beitrag anzeigen
    Nur ist es jetzt so, dass ich das XML (unter "files") selbst nicht schützen kann, ich muss es auf "öffentlich" setzen, damit es im Template geladen werden kann.
    Warum? Wie lädst du die XML Datei?

  3. #3
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.060
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Kannst du es nicht nach /templates verschieben? Da kommst du vom Template aus dran aber nicht vom Frontend direkt.

    Edit: Eigentlich müsstest du auch an die Datei im geschützten Ordner drankommen, indem du nicht den Pfad über den (dann nicht vorhandenen) Symlink angibst sondern den "echten" zur real existierenden Datei, also dann wohl "../files/..." anstatt "files/..."
    Geändert von tab (24.04.2018 um 14:16 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    28.09.2009.
    Ort
    Dresden
    Beiträge
    39

    Standard

    ich habe ein Template angelegt. Hier lade ich das XML:

    PHP-Code:
    $xml simplexml_load_file('files/xml/mein.xml'); 
    Das Template wird in ein Modul geladen und dieses auf einer Seite ausgegeben.
    Das funktioniert auch alles sehr gut, nur muss ich "files/xml/" auf "öffentlich" stellen und damit kommt jeder an das XML ran.

  5. #5
    Contao-Nutzer
    Registriert seit
    28.09.2009.
    Ort
    Dresden
    Beiträge
    39

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Kannst du es nicht nach /templates verschieben? Da kommst du vom Template aus dran aber nicht vom Frontend direkt.
    Das hab ich schon probiert, aber hat nicht funktioniert. File wurde nicht gefunden.

  6. #6
    Contao-Nutzer
    Registriert seit
    28.09.2009.
    Ort
    Dresden
    Beiträge
    39

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Kannst du es nicht nach /templates verschieben? Da kommst du vom Template aus dran aber nicht vom Frontend direkt.

    Edit: Eigentlich müsstest du auch an die Datei im geschützten Ordner drankommen, indem du nicht den Pfad über den (dann nicht vorhandenen) Symlink angibst sondern den "echten" zur real existierenden Datei, also dann wohl "../files/..." anstatt "files/..."
    Das probiere ich gleich mal aus. Klingt interessant!

  7. #7
    Contao-Nutzer
    Registriert seit
    28.09.2009.
    Ort
    Dresden
    Beiträge
    39

    Standard

    Ja, genau so geht es
    Danke @tab!

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.897
    Partner-ID
    10107

    Standard

    Zitat Zitat von prop Beitrag anzeigen
    ich habe ein Template angelegt. Hier lade ich das XML:

    PHP-Code:
    $xml simplexml_load_file('files/xml/mein.xml'); 
    Das Template wird in ein Modul geladen und dieses auf einer Seite ausgegeben.
    Das funktioniert auch alles sehr gut, nur muss ich "files/xml/" auf "öffentlich" stellen und damit kommt jeder an das XML ran.
    Das hat nichts mit dem auf "Öffentlich" stellen zu tun - das gilt nur für den Zugriff über das Frontend.

    Korrekt wär es so:
    PHP-Code:
    $rootDir = \System::getContainer()->getParameter('kernel.project_dir');
    $xml simplexml_load_file($rootDir.'/files/xml/mein.xml'); 
    Geändert von Spooky (24.04.2018 um 15:38 Uhr)

  9. #9
    Contao-Nutzer
    Registriert seit
    28.09.2009.
    Ort
    Dresden
    Beiträge
    39

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Das hat nichts mit dem auf "Öffentlich" stellen zu tun - das gilt nur für den Zugriff über das Frontend.

    Korrekt wär es so:
    PHP-Code:
    $rootDir = \System::getContainer()->getParameter('kernel.root_dir');
    $xml simplexml_load_file($rootDir.'/files/xml/mein.xml'); 
    Hallo Spooky, danke für die Info, aber das funktioniert bei mir leider nicht.
    Ich bekomme so keine Verbindung zum XML.

    Wenn ich mir das ausgeben lasse, lande ich in "app". Ist das richtig?
    Geändert von prop (24.04.2018 um 15:37 Uhr)

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.897
    Partner-ID
    10107

    Standard

    Zitat Zitat von prop Beitrag anzeigen
    Hallo Spooky, danke für die Info, aber das funktioniert bei mir leider nicht.
    Ich bekomme so keine Verbindung zum XML.

    Wenn ich mir das ausgeben lasse, lande ich in "app". Ist das richtig?
    Sorry, der Parameter heißt kernel.project_dir. Ich hab's in meinem ursprünglichen Code nun ausgebessert.

    Du baust hier keine "Verbindung" zu einem XML auf. Du lädst eine Datei aus dem Dateisystem

  11. #11
    Contao-Nutzer
    Registriert seit
    28.09.2009.
    Ort
    Dresden
    Beiträge
    39

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Sorry, der Parameter heißt kernel.project_dir. Ich hab's in meinem ursprünglichen Code nun ausgebessert.

    Du baust hier keine "Verbindung" zu einem XML auf. Du lädst eine Datei aus dem Dateisystem
    Ja, so funktioniert das
    Danke Spooky.

    Mit "korrekt" meinst Du bestimmt, das der Pfad so immer stimmt, auch wenn das Template mal woanders hingeschoben wird, richtig?

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.897
    Partner-ID
    10107

    Standard

    Zum Beispiel, ja.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •