Nach einer PHP Abfrage auf eine HTML Seite weiterleiten

Diskutiere das Thema Nach einer PHP Abfrage auf eine HTML Seite weiterleiten im Forum Web-Programmierung

  1. taz1978

    taz1978 Thread Starter Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    Mitglied seit:
    12.06.2004
    Hallo zusammen,
    ich hab ein kontaktformular und wenn dies ausgefüllt ist und der user es absendet hat soll die webseite danke_mail.html angzeigt werden. wie kann ich das machen?

    <?php
    if($abschicken) {
    if(empty($name) || empty($email) || empty($text)){
    echo "Bitte gehen Sie zur&uuml;ck und f&uuml;llen Sie alle Felder aus!";
    }else{
    while(list($feld,$wert)=each($HTTP_POST_VARS)){
    if($feld!="abschicken"){
    $mailnachricht.=ucfirst($feld).": $wert\n";
    }
    }
    $mailnachricht.="\nDatum/Zeit: ";
    $mailnachricht.=date("d.m.Y H:i:s");
    $mailbetreff="Kontakt: ";
    $mailbetreff .=$HTTP_POST_VARS[betreff];
    mail("info@localhost.de", $mailbetreff, $mailnachricht, "From: $email");
    Hier soll die weiterleitung zu danke_mail.html hin!


    }
    }else{
    echo "Ein Fehler ist aufgetreten.";
    }
    ?>


    ich will statt den echo befehlen html seiten angeben. kann mir jemand helfen?
    gruß!
     
  2. balufreak

    balufreak Mitglied

    Beiträge:
    1.562
    Zustimmungen:
    28
    Mitglied seit:
    12.10.2003
    mit
    PHP:
    if (mail("info....")) {
    header("Location: danke_mail.html");
    }
     
  3. taz1978

    taz1978 Thread Starter Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    Mitglied seit:
    12.06.2004
    bei mir kommt dann folgende fehlermeldung
    Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/51150/www........de/mailer.php:5) in /is/htdocs/51150/www......de
     
  4. balufreak

    balufreak Mitglied

    Beiträge:
    1.562
    Zustimmungen:
    28
    Mitglied seit:
    12.10.2003
    Vor dem befehl header darfst du kein einziges zeichen ausgeben. Also kein echo und nix. Dann muss es es gehen.
     
  5. taz1978

    taz1978 Thread Starter Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    Mitglied seit:
    12.06.2004
    hab die echos ausgeklammert aber es geht leider immer noch nicht, bin nicht so fit in php;-(

    <?php
    if($abschicken) {
    if(empty($name) || empty($email) || empty($text)){
    //echo "Bitte gehen Sie zur&uuml;ck und f&uuml;llen Sie alle Felder aus!";
    }else{
    while(list($feld,$wert)=each($HTTP_POST_VARS)){
    if($feld!="abschicken"){
    $mailnachricht.=ucfirst($feld).": $wert\n";
    }
    }
    $mailnachricht.="\nDatum/Zeit: ";
    $mailnachricht.=date("d.m.Y H:i:s");
    $mailbetreff="Kontakt: ";
    $mailbetreff.=$HTTP_POST_VARS[betreff];
    if (mail("info@localhost.de", $mailbetreff, $mailnachricht, "From: $email")); {
    header("Location: http://www.localhost.de/danke_mail.html");
    }
    }
    }else{
    //echo "Ein Fehler ist aufgetreten.";
    }
    ?>
     
  6. wegus

    wegus Mitglied

    Beiträge:
    16.010
    Zustimmungen:
    2.571
    Mitglied seit:
    13.09.2004
    Wenn Du am Ende des PHP-Skriptes Leerzeichen hast, also nach der Letzten Zeile

    ?>

    noch Leerzeilen, dann werden diese mit Header-Angaben als ein Leerzeichen ausgegeben, et voila "header already sent"! Nach dem abschließenden ">"-Zeichen darf absolut nichts mehr kommen ( nat. auch nichts vor dem Skript). Dann sollte es gehen!
     
  7. mikne64

    mikne64 Mitglied

    Beiträge:
    3.105
    Zustimmungen:
    92
    Mitglied seit:
    02.04.2004
    Hallo,

    müßte es nicht
    ...
    each($HTTP_POST_VARS)){
    ....
    ohne Leerschritt?

    Viele Grüße
    Michael
     
  8. taz1978

    taz1978 Thread Starter Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    Mitglied seit:
    12.06.2004
    hab es jetzt den code nach euren tipps umgestellt
    <?php
    if($abschicken) {
    if(empty($name) || empty($email) || empty($text)){
    header("Location: http://www.localhost.de/nochmal_mail.html");
    }else{
    while(list($feld,$wert)=each($HTTP_POST_VARS)){
    if($feld!="abschicken"){
    $mailnachricht.=ucfirst($feld).": $wert\n"; }
    }
    $mailnachricht.="\nDatum/Zeit: ";
    $mailnachricht.=date("d.m.Y H:i:s");
    $mailbetreff="Kontakt: ";
    $mailbetreff.=$HTTP_POST_VARS[betreff];
    if (mail("info@localhost.de", $mailbetreff, $mailnachricht, "From: $email")){
    header("Location: http://www.localhost.de/danke_mail.html");
    }
    }else{
    header("Location: http://www.localhost.de/fehler_mail.html");
    }
    ?>
    bekomme jetzt folgende fehler meldung, komischerweise wir die mail trotz dieser fehlermeldung versendet

    Parse error: parse error, unexpected T_ELSE in /is/htdocs/51150/www.localhost.de/fever/php/mailer.php on line 20
     
  9. aguilera

    aguilera Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    Mitglied seit:
    09.03.2004
    Also Syntaxfehler musst Du schon alleine suchen...
    Tipp: zaehl mal die Klammern bzw. ruecke Deinen Code ein.
    Oder Klammere so:
    if ()
    {
    ....
    ...
    }

    Du hast ein else ohne if.
     
  10. wegus

    wegus Mitglied

    Beiträge:
    16.010
    Zustimmungen:
    2.571
    Mitglied seit:
    13.09.2004
    Genau, Besser ist ohnehin:

    (a) eine Strukturierung durch Einrücken
    (b) einen Editor verwenden,d er Klammerpaare anzeigen lassen kann!

    PHP:
    if (a==b)
    {
      if (!
    c)
      {
      } 
    // end if kein Wert für c
    // end if a==b
    else
    {

    // end else a==b
    Das ist zwar mehr Tipparbeit, aber seeehr dankbar, wenn aus einem Klammerpaar mal einige hundert Codezeilen werden! Ich mache einen TAB je Klammerpaar!
     
Die Seite wird geladen...

MacUser.de weiterempfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...