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

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

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

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

    taz1978 Thread Starter MacUser Mitglied

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

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    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

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

    Mitglied seit:
    13.09.2004
    Beiträge:
    15.307
    Zustimmungen:
    1.809
    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

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

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

    Viele Grüße
    Michael
     
  8. taz1978

    taz1978 Thread Starter MacUser Mitglied

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

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

    Mitglied seit:
    13.09.2004
    Beiträge:
    15.307
    Zustimmungen:
    1.809
    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!