Formular / header-Problem

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

  • Formular / header-Problem

    Hallo,

    ich bin neu hier im Forum und blutiger Anfänger.
    Und hoffentlich poste ich hier an der richtigen Stelle.
    Zum Problem:
    1. eine Seite "Registrierung", HTML-Formular ohne php, ein paar javascript-Prüfungen, php-script mit weiteren Prüfungen und
    Funktionsaufruf für die Datenbankaktionen, abhängig vom Rückgabewert Weiterleitung auf andere Seiten.
    Alles schön, funktioiniert !
    2. Nachbearbeitung Registrierung ( Struktur wie bei Registrierung )
    Füllen der Formular-Defaultwerte per <?php echo $variable; ?>
    Das reicht offensichtlich für das Senden eines neuen headers. ( vermute ich )
    Sobald am Ende der Verarbeitung auf eine neue Seite weitergeleitet wird.
    kommt :
    Warning: Cannot modify header information -
    headers already sent by (output started at C:\xampp\htdocs\site\men1sub\reg1cont.php:40)
    in C:\xampp\htdocs\site\inclphp\register_nb.inc.php on line 20
    -------------
    register_nb.inc.php on line 20 verweist auf ein "header("Location: ......."
    reg1cont.php:40 verweist auf eine Stelle mitten im Formular. Merkwürdigerweise nicht
    auf die erste Zeile mit einem "<?php echo $variable; ?>" .......?!

    -------------
    Ist meine Vermutung richtig ?
    Was muss ich tun um, wie bei der Registrierung, auf andere Seiten weiterleiten zu können ?
    Oder anders --- was mache ich falsch........................ ?

    danke

    Klaus-Peter

  • #2
    Du hältst das EVA-Prinzip nicht ein. Vor dem Aufruf von header() darf keinerlei Ausgabe erfolgen.

    Davon abgesehen solltest du Ausgaben innerhalb von HTML-Code immer mit htmlspecialchars() maskieren. Das hat allerdings nichts mit dem Problem zu tun, sondern ist nur Wurzel vieler anderer möglicher Probleme und außerdem ein Sicherheitsrisiko.

    Kommentar


    • #3
      Zitat von kpc Beitrag anzeigen
      Oder anders --- was mache ich falsch........................ ?
      Du hast offenbar
      - weder vernünftig gesucht (diese Fehlermeldung ist schon zigfach diskutiert worden, hier und im restlichen WWW),
      - noch die Hinweise zur Funktion im Handbuch gelesen (das auch explizit darauf hinweist, dass vor dieser Funktion noch keine Ausgabe erfolgt sein darf),
      - noch den extra in diesem Forum oben angepinnten und als wichtig markierten Beitrag http://www.php-resource.de/forum/php...formation.html zur Kenntnis genommen
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Zitat von h3ll Beitrag anzeigen
        Du hältst das EVA-Prinzip nicht ein. Vor dem Aufruf von header() darf keinerlei Ausgabe erfolgen.
        Das verstehe ich, ich habe ja selbst die echo-Anweisungen als Ursache erkannt,
        aber --- was soll ich tun --- vor der Prüfung und Weiterleitung muss ja nun mal die Formulareingabe erfolgen.
        Eine Datennachbearbeitung im Formular mit Defaultwerten ist doch nichts besonderes, wie wird in einem solchen Fall denn
        üblicherweise die Weiterleitung realisieren ? Ist der Ansatz falsch oder die Struktur oder ---- ich weiß es nicht......

        Klaus-Peter

        Kommentar


        • #5
          Wurde schon drauf hingewiesen: EVA-Prinzip – Wikipedia

          aber --- was soll ich tun --- vor der Prüfung und Weiterleitung muss ja nun mal die Formulareingabe erfolgen.
          Das Formular – der HTML-Code, der ausgegeben wird, um das Formular im Browsern anzuzeigen – muss sich nicht vor dem PHP-Code befinden, der eine potentielle Eingabe überprüft, und ggf. weiterleitet.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            @wahsaga
            Das Formular – der HTML-Code, der ausgegeben wird, um das Formular im Browsern anzuzeigen – muss sich nicht vor dem PHP-Code befinden, der eine potentielle Eingabe überprüft, und ggf. weiterleitet.
            Das war es Zwei Zeilen getauscht und alles ist gut
            Ich habe übrigens zwei Tage gelesen ( ganz viel EVA ) und blanks gesucht.
            Falls mal wieder jemand blöd fragt, etwas freundlicher wäre nett, vielleicht hat er sich ja doch schon bemüht.

            trotzdem noch einmal, vieeeelen Dank

            Klaus-Peter

            Kommentar

            Lädt...
            X