Fehler im Formmailerscript !?

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

  • Fehler im Formmailerscript !?

    Hallo PHP-Spezialisten,

    ich als Newbie in Sachen PHP hab ein Problem mit einem Formmailerscript. Das Script funktioniert in Verbindung mit einem HTML-Formular und dort hinterlegten Hidden-Feldern einwandfrei.

    Jetzt habe ich es erweitert um ein Pflichtfeld ("Mail") und um eine Fehlerseite ("fehler"), wenn jemand das Feld "Mail" nicht ausfüllt.

    Nun funktioniert zwar die Fehlerseite und derjenige der das Pflichtfeld Mail nicht ausgefüllt hat bekommt die Fehlerseite mit dem Hinweis. Passt. Doch wenn alles in Ordnung ist funktioniert jetzt mit dem geänderten Script die Dankesseite ("topage") nicht mehr!!

    Ich denke, es liegt wohl an dem zweimaligen verwenden der Header-Weiterleitung, aber ich weiß nicht wie es anders geht.

    Für die Fehlermeldung (fehler):

    if(empty($Mail)) header('Location: '.$HTTP_POST_VARS['fehler']); exit;

    Und für die Dankesseite (topage):

    // Redirecten
    header('Location: '.$HTTP_POST_VARS['topage']); exit;


    Oder ist es doch ein anderer Fehler? Sieht einer von Euch den Fehler? Danke schon mal.

    Gruß
    mayer


    Hier der Script komplett:

    <?

    // Einstellungen
    $domain = 'meinewebsite.de';
    $dontsend = array('to','subject','topage','senden','fehler'); // Dateien, die nicht angezeigt werden

    // Formular überprüfen
    function error($msg){
    echo '<font color="red"><b>Fehler:</b></font><br>';
    echo $msg;
    exit;
    }
    $msg = '';
    if(!$HTTP_POST_VARS) error('Direktaufruf nicht möglich!<br>');
    if(!isset($HTTP_POST_VARS['to'])) $msg .= '- Empfängerfeld fehlt<br>';
    if(!isset($HTTP_POST_VARS['Mail'])) $msg .= '- Absenderfeld (eMail) fehlt<br>';
    if(!isset($HTTP_POST_VARS['subject'])) $msg .= '- Betreff fehlt<br>';
    if(!isset($HTTP_POST_VARS['topage'])) $msg .= '- Dankesseite fehlt<br>';
    if(!isset($HTTP_POST_VARS['fehler'])) $msg .= '- Fehlerseite fehlt<br>';
    $empf = split("@", strtolower($HTTP_POST_VARS['to']));
    if($empf[1] != strtolower($domain) && isset($HTTP_POST_VARS['to'])) $msg .= 'Es können nur eMails an

    die Domain <b>'.$domain.'</b> gesendet werden!';

    if($msg != '') error($msg);

    if(empty($Mail)) header('Location: '.$HTTP_POST_VARS['fehler']); exit;

    $mailtext = '<font face="Arial" size="2">';
    $mailtext .= 'Mail generiert aus Website Test <br>';
    isset($HTTP_REFERER) ? $mailtext .= 'Absender: <b>'.$Mail.'</b> <br><br>' : $mailtext .= '

    <br><br>';

    reset($HTTP_POST_VARS);
    foreach($HTTP_POST_VARS as $key => $value){
    if(!in_array($key, $dontsend)) $mailtext .=

    '<b>'.$key.':</b>&nbsp;&nbsp;&nbsp;'.htmlspecialchars($value).' <br>';
    }
    $mailtext .= '</font>';

    // Mailen
    mail($HTTP_POST_VARS['to'], $HTTP_POST_VARS['subject'], $mailtext, "From:

    ".$HTTP_POST_VARS['Mail']." <".$HTTP_POST_VARS['Mail'].">\nContent-Type: text/html");

    // Redirecten
    header('Location: '.$HTTP_POST_VARS['topage']); exit;

    ?>

  • #2
    LESEN

    Kommentar


    • #3
      er diskutiert sein problem offenbar lieber hier weiter:

      http://forum.de.selfhtml.org/?t=102988&m=633868

      *close*
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        und warum schiebst du nicht in trash?

        *trash*

        Kommentar

        Lädt...
        X