Cannot modify header information

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

  • Cannot modify header information

    Hallo, ich weiß das man vor dem session_start() und bestimmten anderen Funktionen keine Ausgabe bringen darf, weiß auch sehr wohl das momentan eine Ausgabe in meinem Script vor dem Aufruf der Pear Klasse Auth stattfindet, jedoch weiß ich nicht wie ich ansonsten das Formular an der gewünschten Stellen, also zwischen der Tabelle die sich in meiner header.inc.php und footer.inc.php befindet ausgeben soll.

    Wenn ich die Funktion an den Anfang der Seite stelle ist die Meldung zwar weg, aber das Formular steht nicht dort wo ich es haben will. Also wie kann ich den Aufruf der Funktion so manipulieren, dass die Ausgabe an der gewünschten Stelle ist und die Fehlermeldung nicht mehr kommt?

    PHP-Code:
    <?php
    include("header.inc.php");

    // Auth
    function login_function() {
        
    ?>
        <center>
        <table>
        <form method="post" action="<? $_SERVER[PHP_SELF]; ?>">
        <tr>
        <td>Benutzer:</td>
        <td><input type="text" name="username"></td>
        </tr>
        <tr>
        <td>Passwort:</td>
        <td><input type="password" name="password"></td>
        </tr>
        <tr>
        <td><a href="registrierung.php">Neu anmelden</a></td>
        <td><input type="submit" value="Login"></td>
        </tr>
        </form>
        </table>
        </center>
        <?php
    }

    $params = array(
                
    "dsn" => "mysql://root:xxx@xxx/xxx",
                
    "table" => "stammdaten",
                
    "usernamecol" => "benutzer",
                
    "passwordcol" => "passwort",
                
    "db_fields" => "id"
                
    );

    $my_auth = new Auth('DB'$params'login_function');

    $my_auth->start();

    if(
    $_GET['logout'] == 1) {
        
    $my_auth->logout();   
    }

    $test $my_auth->getAuth();

    if (
    true === $my_auth->getAuth())
    {
        echo (
    "Sie sind drin!");
        print 
    "<a href=\"index.php?logout=1\">Logout</a>";
    }
    else
    {
        print 
    "nicht eingeloggt!";
    }

    #print_r($_SESSION);

    include("footer.inc.php");
    ?>
    Vielen Dank!
    » http://www.htaccess-generator.com

  • #2
    du kannst die ausgabe buffern (http://de.php.net/ob_start).

    Kommentar


    • #3
      vielleicht machst Du den header.inc.php auch in die login_function, falls diese wirklich html Code erzeugen muss.
      Zuletzt geändert von vierteln; 02.05.2006, 23:11.

      Kommentar


      • #4
        LESEN: http://www.php-resource.de/forum/sho...threadid=62965

        Kommentar


        • #5
          @asp2php: ich habe mir den artikel bereits mehrmals durchgelesen und finde ihn auch sehr gut. jedoch ist das nicht die antwort auf meine frage. ich weiß das eine ausgabe kommt, die dort eigentlich nicht sein darf, aber ich frage mich ja gerade wie ich sonst die login funktion zwischen die beiden tabellen in der header.inc.php und footer.inc.php bekommen soll. stelle ich das ganze an den anfang ist der fehler weg, jedoch die login funktion am rande der welt positioniert wo ich sie nicht haben will.

          die lösung von daniela funktioniert ohne weiteres, allerdings ist das meiner meinung nach eher eine notlösung wenn man so wie ich nicht weiß, wie man die funktionsaufrufe so anordnen kann, dass sie an der richtigen stelle stehen und keinen fehler verursachen.
          » http://www.htaccess-generator.com

          Kommentar


          • #6
            vermutlich muss die ganze Seite, inkl. header und footer, in die Funktion login_function.

            Das bedeutet, dass Du header und footer in den anderen Fällen wiederholen musst.

            Kommentar

            Lädt...
            X