include und header

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • include und header

    Hallo!

    Meine Seite besteht aus einer mehrzeiligen und -spaltigen Tabelle. Sozusagen in die mittlere Zelle werden die jeweiligen php dateien includet. z.B im Menu Impressum -> index.php?menu=impressum -> impressum.php wird includet.

    So, nun habe ich mich an einen login mit sessions gewagt. Session-Variablen werden erfolgreich erstellt, der Zugriff zur Datenbank klappt usw.

    Wenn man also erfolgreich eingeloggt ist wird dem user das "admin menü" angezeigt. Dort kann er z.b. News schreiben. Somit wird also die datei editnews.php includet in die "mittlere" Zelle der Tabellenstruktur.

    Mein Problem ist nun, wie ich die seite editnews.php schützen kann. Viele leiten hier bei nicht-eingeloggten usern einfach per header weiter, was bei mir, und nun kommen wir zum eigentlichen Problem, nicht funktioniert.

    Liegt das nun daran, das vor dem header schon etwas gesendet wurde? Also die Tabelle, das menü etc?
    Welche möglichkeiten habe ich um dieses zu umgehen?

    danke.
    gruß colo

  • #2
    Re: include und header

    Original geschrieben von colo
    Liegt das nun daran, das vor dem header schon etwas gesendet wurde? Also die Tabelle, das menü etc?
    ich denk mal schon, du solltest ja auch eine entsprechende fehlermeldung bekommen


    Welche möglichkeiten habe ich um dieses zu umgehen?
    indem du direkt nach session_start(), bevor du auch nur ein zeichen an den browser sendest, prüfst, ob der benutzer die seite sehen darf
    Ich denke, also bin ich. - Einige sind trotzdem...

    Comment


    • #3
      hm ok danke, ich werd's mal versuchen!
      gruß colo

      Comment


      • #4
        Re: include und header

        Viele leiten hier bei nicht-eingeloggten usern einfach per header weiter, was bei mir, und nun kommen wir zum eigentlichen Problem, nicht funktioniert.
        warum? wieso? fehlermeldung?
        Liegt das nun daran, das vor dem header schon etwas gesendet wurde? Also die Tabelle, das menü etc?
        wenn die fehlermeldung 'header already sent ...' lautet, ja *g
        Welche möglichkeiten habe ich um dieses zu umgehen?
        - leite weiter, bevor du ausgaben machst ...
        - zeige bei nicht-eingeloggt-sein eine fehlerseite

        eventuell kannst du auch (so mache ich es zb.) die jeweilige seite den kopf und den fuß includieren lassen, dann tritt das header problem nicht auf ...
        Die Zeit hat ihre Kinder längst gefressen

        Comment


        • #5
          Was genau meinst du mit kopf und fuß includieren lassen?
          gruß colo

          Comment


          • #6
            Was genau meinst du mit kopf und fuß includieren lassen?
            du: (vermute ich)
            PHP Code:
            echo 'ganz viel kopf, mit tabellen und so';
            include 
            'content.php';
            echo 
            'ganz viel fuss, mit tabellen und so'
            ich:
            PHP Code:
            include 'alle_grundlagen_ohne_ausgabe_zu_erzeugen.php';

            // hier habe ich alle grundlagen, db, base, session, ...
            // ohne vorher eine ausgabe gesendet zu haben
            // kann also
            header('Location: ...');
            // problemlos verwenden ...

            include 'kopfbereich.php';
            echo 
            'ganz viel seiteninhalt';
            include 
            'fussbereich.php'
            Die Zeit hat ihre Kinder längst gefressen

            Comment


            • #7
              dankeschön für deine Hilfe

              Muss ich wohl alles bisschen umstrukturieren aber es wird schon hinhauen

              edit: Nun funktionierts
              Last edited by colo; 09-09-2004, 10:43.
              gruß colo

              Comment


              • #8
                Du kannst auch einfach in der ersten Zeile Deines Scripts ein ob_start() ausführen ... im Fehlerfalle:
                PHP Code:
                <?php
                ob_start
                ();

                // Ausgabe ... Ausgabe ... Ausgabe ...

                if ( $fehler ) {
                    
                ob_end_clean();
                    
                header("Location: http://www.blah.de/wurst.php");
                    die();
                }
                ?>
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Comment

                Working...