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

  • Superhero360
    hat ein Thema erstellt header Weiterleitungsproblem.

    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;
      }
    ?>

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

    [MOD: Thread geschlossen]

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Genau.
    PHP-Code:
     <== Das darf nicht sein!!!
    <?php
    .....
    ?>

    Einen Kommentar schreiben:


  • chuvak
    antwortet
    Du hast Leerzeichen vor <?php.
    Die müssen weg.

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    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.

    Einen Kommentar schreiben:


  • Superhero360
    antwortet
    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.

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Google Suche

    Du wirst 100%ig fündig.

    mfg

    Einen Kommentar schreiben:


  • Superhero360
    antwortet
    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 "

    Einen Kommentar schreiben:


  • dennis81
    antwortet
    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.

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    header ist header...

    Einen Kommentar schreiben:


  • BlackScorp
    antwortet
    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'); 

    Einen Kommentar schreiben:


  • dennis81
    antwortet
    Ich würde sagen: Das Thema wurde hinreichend behandelt. Bitte Forensuche oder Goolge verwenden.

    Einen Kommentar schreiben:

Lädt...
X