Nach einer PHP Abfrage auf eine HTML Seite weiterleiten

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von taz1978, 19.01.2005.

  1. taz1978

    taz1978 Thread Starter MacUser Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    MacUser 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 MacUser Mitglied

    Beiträge:
    1.560
    Zustimmungen:
    28
    MacUser seit:
    12.10.2003
    mit
    PHP:
    if (mail("info....")) {
    header("Location: danke_mail.html");
    }
     
    Zuletzt bearbeitet: 19.01.2005
  3. taz1978

    taz1978 Thread Starter MacUser Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    MacUser 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 MacUser Mitglied

    Beiträge:
    1.560
    Zustimmungen:
    28
    MacUser 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 MacUser Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    MacUser 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 MacUser Mitglied

    Beiträge:
    15.041
    Zustimmungen:
    1.316
    MacUser 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 MacUser Mitglied

    Beiträge:
    3.097
    Zustimmungen:
    92
    MacUser seit:
    02.04.2004
    Hallo,

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

    Viele Grüße
    Michael
     
  8. taz1978

    taz1978 Thread Starter MacUser Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    MacUser 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 MacUser Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    MacUser 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 MacUser Mitglied

    Beiträge:
    15.041
    Zustimmungen:
    1.316
    MacUser 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...

Diese Seite empfehlen