exit und Templatesystem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • exit und Templatesystem

    Hallo,

    folgendes Problem: Meine HP läuft auf einem Templatesystem. Ich programmiere derzeit an einer Community. Nun habe ich eine Datei loggedin.php, die am Anfang jeder Seite per include eingebunden ist und überprüft, ob der user eingeloogt ist (sprich, ob eine bestimmte Session Variable gesetzt ist). Wenn dies nicht der Fall ist, wird das Script per exit abgebrochen. Das Problem ist, dass dann die Hälfte meiner Seite fehlt, weil natürlich das parsen des Rest des Templates auch abgebrochen wird.

    Ich zerbrech mit schon seit Tagen den Kopf:

    if (!isset ($_SESSION["id"]))
    {
    echo "Sie haben nicht die Berechtigung, diese Seite anzuzeigen. Bitte loggen sie sich (neu) ein!";
    exit;
    }

    Gibts in PHP die Möglichkeit, alle PHP Aktionen abzubrechen, aber das, was zwischen den <?php ?> Tags steht weiter auszuführen, oder kann ich eine Art GOTO Befehl verwenden und damit an den Anfang vom Templaterest springen?

    Irgendwelche Ideen?

  • #2
    Bau dir ne zusätzliche Seite '403', die die entsprechende Meldung enthält
    und leite an die weiter statt des echo:

    die(header(forward('.....')));

    Da du vorher schon was ausgibst, wird das so nicht gehen ...

    also bau an den Anfang des Skripts ein ob_start()
    und nach erfolgreicher Prüfung ob_end_flush()
    (LXXIII. Funktionen zur Ausgabesteuerung)
    Zuletzt geändert von Titus; 23.05.2004, 11:12.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      okay, werds probiern. Danke.

      Kommentar


      • #4
        Okay, habs folgendermaßen gelöst (metarefresh generiert einfach nur eine Seite mit der Fehlermeldung und ner weiterleitung).

        Oben im template ob_start() eingebaut, unten im template ob_flush().

        if (!isset ($_SESSION["id"]))
        {
        ob_clean();
        metarefresh("Sie haben nicht die erforderliche Berechtigung, diese Seite anzuzeigen!", "5", "View.php?content=Community/login.txt");
        exit;
        }

        Danke für die Hilfe. Der Tipp mit dem Puffern is gold wert.

        Kommentar

        Lädt...
        X