Ankündigung

Einklappen
Keine Ankündigung bisher.

header Weiterleitungsproblem

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • header Weiterleitungsproblem

    Hallo

    Ich habe mir gerade ein PHP Formular gebastelt und möchte gerne, dass nach dem Submit eine Bestätigunsseite aufgerufen wird.
    Ich habe es mit dem header probiert aber leider bekomme ich folgende Fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at anmeldung.php:6) in anmeldung.php on line 250

    Mein Aufruf:
    PHP-Code:
    header('location: danke.html'); 
    Könnte mir jemand helfen? Ich wäre sehr dankbar.

    Mein Code

    PHP-Code:
       <?php
      
      $formularAnzeigen 
    false;
      if (!empty(
    $_POST["senden"]) && (
          empty(
    $_POST["vorName"]) ||
          empty(
    $_POST["nachName"]) ||
          empty(
    $_POST["eMail"]) ||
          empty(
    $_POST["plz"]) ||
          empty(
    $_POST["bday"]) ||
          empty(
    $_POST["strasse"]) ||
          empty(
    $_POST["ort"]))) {
        
    $formularAnzeigen true;
        echo 
    '<span style="color: #FF0000; font-size: x-medium;">*&nbsp;Bitte alle Pflichtfelder ausfüllen!</span>';
      } else if (!empty(
    $_POST["senden"]) &&
                 !
    isEmail($_POST["eMail"])) {
        
    $formularAnzeigen true;  
        echo 
    '<span style="color: #FF0000; font-size: x-large;">*&nbsp;Die E-Mail-Adresse ist nicht korrekt!</span>';
      } else if (empty(
    $_POST["senden"])) {
        
    $formularAnzeigen true;  
      }
      if (
    $formularAnzeigen) {
    ?>

    <?php
      
    echo'';
      
      } else {
        
    $eMail '
            
    Anrede:
    '
    .$_POST['anrede'].'
            
    Vorname:
    '
    .$_POST['vorName'].'
            
    Nachname:
    '
    .$_POST['nachName'].'

    Straße:
    '
    .$_POST['strasse'].'

    PLZ:
    '
    .$_POST['plz'].'

    Ort:
    '
    .$_POST['ort'].'

    Geburtstag:
    '
    .$_POST['bday'].'
            
    E-Mail:
    '
    .$_POST['eMail'].'';
        
        if (@
    mail("email@email.de",
             
    "Neue Nachricht vom shop-shop Kontaktformular",
             
    $eMail)) {
    header('location: danke.html');    
        } else {
          echo 
    "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
        }
        if (
    $_POST['kopie']) {
          if (@
    mail($_POST['eMail'],
               
    "Hier die Kopie Ihrer Nachricht an uns",
               
    $eMail)) {
            echo 
    "Sie haben eine Kopie der Nachricht zugeschickt bekommen.<br />";
          }
        }
      }
      
      function 
    isEmail($email) {
        
    $nonascii      "\x80-\xff"
        
    $nqtext        "[^\\$nonascii\015\012\"]";
        
    $qchar         "\\[^$nonascii]";
        
    $protocol      "(?:mailto:)";
        
    $normuser      "[a-zA-Z0-9][a-zA-Z0-9_.-]*";
        
    $quotedstring  "\"(?:$nqtext|$qchar)+\"";
        
    $user_part     "(?:$normuser|$quotedstring)";
        
    $dom_mainpart  "[a-zA-Z0-9][a-zA-Z0-9._-]*\.";
        
    $dom_subpart   "(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*";
        
    $dom_tldpart   "[a-zA-Z]{2,5}";
        
    $domain_part   "$dom_subpart$dom_mainpart$dom_tldpart";
        
    $regex         "$protocol?$user_part\@$domain_part";
        if (
    preg_match("/^$regex$/",$email)) {
          return 
    true;
        }
        return 
    false;
      }
    ?>


  • #2
    Ich würde sagen: Das Thema wurde hinreichend behandelt. Bitte Forensuche oder Goolge verwenden.
    Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

    Kommentar


    • #3
      du darfst vor dem header kein echo "bla bla" machen. ich weis nicht ob es hilft aber versuch das hier mal

      PHP-Code:
      header('Refresh: 1; url=danke.html'); 
      apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

      Kommentar


      • #4
        header ist header...
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Zitat von lstegelitz Beitrag anzeigen
          header ist header...
          Eben. Es sollte auch für jeden halbwegs verständlich sein, dass man am Header nichts mehr verändern kann, wenn die Ausgabe schon begonnen hat.
          Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
          Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

          Kommentar


          • #6
            Zitat von dennis81 Beitrag anzeigen
            Ich würde sagen: Das Thema wurde hinreichend behandelt. Bitte Forensuche oder Goolge verwenden.
            Lieber dennis81 auf so eine Antwort habe ich nur gewartet. Zur deiner Info habe ich jetzt schon seit 3 Stunden das Internet durchforstet und viele Foren und Google durchsucht. Sicher kommt überall der header vor, aber es hat mir leider auch nicht weitergeholfen. Ich bin kein PHPler, muss aber so ein kleines Formular eben zusammen basteln. Und es funktioniert alles, nur diese kleine Sache nicht. Deswegen kann man nicht gleich PHP auswendig lernen für einen kleinen Befehl
            Dafür gibt es nun mal Foren und für all die Energie "Bla bla besuch' Google ey" hätte man es auch gleich erklären können wenn man doch so der tolle Profi ist, gelle?

            @BlackScorp
            Danke für deinen Code, leider kommt die gleiche Fehlermeldung.
            "Cannot modify header information - headers already sent "

            Kommentar


            • #7
              Dann hast du falsch gegooglet. Einfach mal den ersten Teil der Fehlermeldung googlen:

              Google Suche

              Du wirst 100%ig fündig.

              mfg

              Kommentar


              • #8
                Zitat von Superhero360 Beitrag anzeigen
                Lieber dennis81 auf so eine Antwort habe ich nur gewartet. Zur deiner Info habe ich jetzt schon seit 3 Stunden das Internet durchforstet und viele Foren und Google durchsucht.
                Das Problem wurde wirklich schon zigfach behandelt - es gibt jede Menge Erklärungen im Netz, warum das Problem auftritt, und was man also tun muss, um es zu vermeiden.

                Wenn du die alle nicht verstehst - dann ist stark anzunehmen, dass du es genauso wenig begreifen wirst, wenn man es dir hier noch mal erklärt. Viel anders als an den zigtausend anderen Stellen im Netz kann man es hier nämlich auch nicht mehr erklären.

                Deswegen kann man nicht gleich PHP auswendig lernen für einen kleinen Befehl
                Es geht nicht darum, irgendetwas komplett auswendig zu lernen, sondern die Beschreibung der simplen Ursache eines simplen Problems zu verstehen.

                Dafür gibt es nun mal Foren und für all die Energie "Bla bla besuch' Google ey" hätte man es auch gleich erklären können wenn man doch so der tolle Profi ist, gelle?
                Nein, verflixt noch mal.

                Foren sind nicht dafür da, dass jeder Newbie immer und immer wieder verlangt, dass man ein Thema extra für ihn noch mal erklärt, weil er die vielen vorhandenen Erklärungen angeblich nicht versteht ...

                @BlackScorp
                Danke für deinen Code, leider kommt die gleiche Fehlermeldung.
                "Cannot modify header information - headers already sent "
                Siehst du, das hat dich noch weniger weiter gebracht.


                Wenn du dir ein paar der vorhandenen Erklärungen mal aufmerksam gelesen hast, dann ist dir inzwischen zumindest klar, dass vor dem Aufruf von header keinerlei Ausgabe erfolgt sein darf - egal was, kein Buchstabe, kein Leerzeichen, kein sonstwas.
                Und mit ein bisschen Grundkenntnissen weisst du bspw. auch, dass alles, was ausserhalb von <?php ... ?> steht, direkt an den Client ausgegeben wird.


                Darüber hinaus hat PHP dich in der Meldung schon deutlich darauf hingewiesen, wo die erste Ausgabe stattfand.
                Mit all diesen Informationen kann es nicht wirklich so schwer sein, die problematische Stelle zu finden, wenn man sich ein bisschen Mühe gibt.

                Kommentar


                • #9
                  Foren sind da um anderen Leuten zu helfen. Dafür gibt es auch eine Anfänger Abteilung.
                  Geeks die sich "SO GENERVT" fühlen, wenn doch mal jemand eine einfache Frage hat, sollten dann einfach mal die sogenannte Fresse halten, nichts für ungut

                  So und so einfach war es und wäre auch super einfach zu beantworten gewesen,
                  Statt header, einfach dies:

                  PHP-Code:
                  echo "<script>document.location.href='danke.html'</script>"
                  Bis dann.

                  Kommentar


                  • #10
                    Zitat von Superhero360 Beitrag anzeigen
                    Geeks die sich "SO GENERVT" fühlen, wenn doch mal jemand eine einfache Frage hat, sollten dann einfach mal die sogenannte Fresse halten, nichts für ungut
                    Und Leute, die zu !%$& sind, vielfach gegebene und ausführliche Erklärungen einer Problematik zu verstehen, sollten nicht an Scripten herumpfuschen.

                    So und so einfach war es und wäre auch super einfach zu beantworten gewesen
                    Nur, wenn man dir etwas vollkommen falsches hätte erzählen wollen.

                    Das ist überhaupt keine „Lösung“ des Problems, weil es eine ganz andere Technik nutzt, und diese auch noch optional ist, so dass es genug Fälle gibt, in denen diese schlicht und einfach nicht funktionieren wird.

                    Kommentar


                    • #11
                      Du hast Leerzeichen vor <?php.
                      Die müssen weg.

                      Kommentar


                      • #12
                        Genau.
                        PHP-Code:
                         <== Das darf nicht sein!!!
                        <?php
                        .....
                        ?>

                        Kommentar


                        • #13
                          Das Thema wurde hinreichend behandelt. Bitte Forensuche oder Google verwenden.
                          Im Wiki steht auch was.

                          [MOD: Thread geschlossen]
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          Kommentar

                          Lädt...
                          X