Problem mit header und echo (fortgeschrittene)

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

  • Problem mit header und echo (fortgeschrittene)

    Hallo zusammen,

    ich bin neu hier, und hoffe, dass Ihr mir bei meinem doch äußerst merkwürdigen Problem helfen könnt




    Hintergrundwissen:
    • Meine Seite startet immer mit index.php?go=seitexyz&anderenvariablen=wert
    • Sämtliche Textausgaben sind durch variablen ersetzt, da die seite mehrsprachig funktionieren muss (werden über eine includierte sprachdatei geladen)
    bisher lief die seite immer 1a. das problem ist dass ich nun in meiner navigation ein zusätzliches menü erstellt habe (per copy&paste) und nun funktionieren meine header()-angaben nicht mehr.

    des weiteren weiß ich, dass vor einer header-funktion keine ausgabe erfolgen darf (bisher hat ja auch alles wunderbar funktioniert)

    funktionstuechtig sieht meine navigation wie folgt aus:


    PHP-Code:
    ...
             <tr>
              <td class="mainnavi">
               <b><?php echo $leftnavi_customer_title?></b><br><hr>
               <a href="index.php?go=customerlist"><?php echo $leftnavi_customer_list?></a><br>
               <?php if($_SESSION['s_levelid'] == 1) { ?>
                <a href="index.php?go=customercreate"><?php echo $leftnavi_customer_create?></a><br>
               <?php ?>
              </td>
             </tr>
             <?php if($_SESSION['s_levelid'] == 1) { ?>
             <tr>
              <td class="mainnavi">
               <b><?php echo $leftnavi_user_title?></b><br><hr>
               <a href="index.php?go=user_list"><?php echo $leftnavi_user_list?></a><br>
               <a href="index.php?go=user_create"><?php echo $leftnavi_user_create?></a><br>
              </td>
             </tr>
             <?php ?>
    ...
    wenn ich jedoch mein neues menü dazupacke:

    PHP-Code:
             <tr>
              <td class="mainnavi">
               <b><?php echo $leftnavi_nagios_title?></b><br><hr>
               <a href="index.php?go=nagios_grouplist"><?php echo $leftnavi_nagios_grouplist?></a><br>
               <a href="index.php?go=nagios_groupcreate"><?php echo $leftnavi_nagios_groupcreate?></a><br>
               <a href="index.php?go=nagios_contactlist"><?php echo $leftnavi_nagios_contactlist?></a><br>
               <a href="index.php?go=nagios_contactcreate"><?php echo $leftnavi_nagios_contactcreate?></a><br>
              </td>
             </tr>
    wenn ich diese neue zeile in das navigationsmenü auf der index.php einbaue, dann funktionieren sämtliche header() - Weiterleitungen nicht mehr. Wenn ich jedoch aus diesem nagios-block nur ein einziges echo aktiv lasse, und alle anderen auskommentiere (egal welches ich aktiv lasse) dann funktionieren die header() - weiterleitungen auf einmal wieder.

    ergänzend sollte ich vielleicht erwähnen, dass ich die einzelnen seiten, die über das menü aufgerufen werden, nur in die index.php includiere. ich hab also quasi oben über die gesamte breite meinen header von der seite (unten den footer mit gleichen eigenschaften), links die navigation und rechts im größten teil des bildschirms dann die ausgabe der includierten datei. ich includiere diese wie folgt:

    PHP-Code:
               <?
                if(!isset($_GET['go']))
                {
                 include("./home.php");
                }
                 elseif(!file_exists("./".$_GET['go'].".php"))
                {
                 include("./error.php");
                }
                else
                {
                 include("./".$_GET['go'].".php");
                }
               ?>
    abschließend möchte ich noch anmerken, dass ich auch das funktionierende menü schon 1 zu 1 an stelle des nagios-menüs kopiert habe, jedoch auch dort ohne erfolg..

    ich hoffe sehr, dass ich mein problem verständlich niedergeschrieben habe, und dass mir hier jemand helfen kann und möchte

    bis dahin verbleibe ich erstmal mit bestem dank im voraus
    pkrix

  • #2
    Hallo,

    aus deinem Code geht nicht hervor, wo du header aufrufst und ob davor wirklich keine Ausgabe erfolgt. Typische Probleme sind z. B. Byte Order Marks. Wenn du etwas eingefügt hast und es danach nicht mehr funktioniert, könnte es auch sein, dass du schon immer Ausgaben vor dem header-Aufruf hattest, diese aber bisher durch das in der php.ini eingestellte Output Buffering geschluckt wurden. Wenn du diese Puffergröße jetzt aber zufällig gerade überschritten hast, würde das auch erklären, warum es plötzlich knallt.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      hm.. das würde das ganze erklären.. weil rein von meiner programmierlogik hab ich ausgaben vor dem header.. dieser puffer könnte es echt sein.. aber mir kommt grad ne idee..
      ich hab in diesen includierten dateien fast immer irgendwelche formulare, die nach folgendem schema aufgebaut sind:
      • session
      • berechtigungskontrolle
      • aktion, die nach absenden des formulars ablaufen soll (hier sind auch die header drinne)
      • formular
      bei den formularen hab ich normal immer als action index.php?go=seite&mancheine=variable&action=1

      wenn ich jetzt statt dem index.php?go=.... einfach seite.php?mancheine=variable&action=1 nehme, und dann über den header weitergehe, dann hab ich definitiv keine ausgaben mehr davor..

      melde mich dann nochmal. ich wusste ja schon vorher, dass davor eigentlich nix kommen darf.. aber bis jetzt hats immer geklappt (ist gewachsen aus meinen programmier-anfängen )

      danke und gruß

      Kommentar


      • #4
        Done *close*

        so.. hat funktioniert immer diese dusselfehler aber so ist das nunmal, wenn man als anfänger ein system anfängt, und das ding dann immer weiter wächst ^^

        auf die idee mit dem puffer bin ich zunächst gar nicht gekommen

        ich bedanke mich nochmal recht herzlich!!

        greetz

        *close*

        Kommentar

        Lädt...
        X