• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP Formmailer erzeugt Fehler

Status
Für weitere Antworten geschlossen.

Domzilla

Neues Mitglied
Hallo Zusammen!

Ich möchtegerne das unten stehen PHP-Script benutzen...funktioniert allerdings nicht so wie es soll:-(! Ich bekomme die folgende Fehlermeldungen angezeigt, wenn ich den "Senden " Button in meinem Formular anklicke:

Notice: Undefined index: email in /var/www/web93/html/Test/myFormMail.php on line 62

Notice: Undefined index: vorname in /var/www/web93/html/Test/myFormMail.php on line 63

Notice: Undefined index: nachname in /var/www/web93/html/Test/myFormMail.php on line 63

Notice: Undefined index: name in /var/www/web93/html/Test/myFormMail.php on line 63


Hier das benutzte Script:
PHP:
<?php

ini_set( 'display_errors', true );
error_reporting( E_ALL );


 {
    $_GET=$HTTP_GET_VARS;
    $_POST=&$HTTP_POST_VARS;
    $_SERVER=&$HTTP_SERVER_VARS;
    $_FILES=&$HTTP_POST_VARS;
 }

     $PHP_SELF = $_SERVER['PHP_SELF']; 



    /* Generierte Eintraege.*/
    $recipients            = '[email protected]';
    $subject             = 'Anfrage';
    $introtext            = 'Sie haben folgende Formulardaten erhalten:';
    $redirect            = 'danke.html';
    $max_filesize        = '100';
    $upload_extensions    = 'jpg, gif, png, pdf';
    $max_files            = '1';
    


    /* Formularfelder einlesen */
    $inputs = &$_POST; 
    
    /* E-Mail-Text generieren */
    $body=$introtext . "\r\n";
    if(count($inputs)) {
        foreach($inputs as $key=>$val) {
            $body .= "$key: $val\n";
        }
        $mail =  new phpmailer();
        $mail->Subject = $subject;
        $mail->From     = $inputs['email'];
        $mail->FromName = "$inputs[vorname] $inputs[nachname] $inputs[name]";
        $mail->Body = $body;            
        
        //eine oder mehrere Adressen (jeweils durch Komma getrennt) werden hinzugefuegt
        $recipientList = explode(',',$recipients);
        foreach($recipientList as $recipient) {
            //Leerzeichen am Anfang und am ende entfernen
            $recipient = trim($recipient);
            $mail->AddAddress($recipient);
        }
        
        //Attachments hinzufuegen
        $count_uploaded = 0;
        foreach($_FILES as $name=>$data) {
            if(!empty($data['tmp_name'])) {
                if($count_uploaded < $max_files) {
                    $count_uploaded++;
                    $file = $data['tmp_name'];
                    $filesize = round($data['size'] / 1024, 2);
                    if($filesize <= $max_filesize) {
                        // alle Punkte falls vorhanden entfernen
                        $upload_extensions = str_replace('.','',$upload_extensions);
                        $extensions = split(',',$upload_extensions);
                        $ext_found = false;
                        foreach($extensions as $ext) {
                            $ext = trim($ext);
                            if ( strrchr($data['name'],'.') == ".$ext") { 
                                $mail->AddAttachment($file,"$name.$ext");
                                $ext_found=true;
                                break;
                            }
                        }
                        if(!$ext_found) {
                            $body .= "\r\n Datei $data[name] (Feld $name) wurde wegen nicht zugelassener Dateiendung nicht uebertragen. Erlaubt waren nur $upload_extensions \r\n";
                        }
                    }
                    else {
                            $body .= "\r\n Datei $data[name] (Feld $name) wurde wegen ueberschreitung der Dateigroesse $filesize nicht uebertragen Erlaubt waren nur $max_filesize\r\n";
                    }
                    
                }
                else {
                    $body.="\r\nAnzahl ($max_files) erlaubter Dateiuploads ueberschritten.\r\n";
                }
            }
            else {
                outputError( "Datei existiert nicht: " , $data['tmp_name']);
                die();
            }
        }
        $mail->Body = $body;
        //senden der EMail
        if($mail->Send()) {
            header("Location: $redirect");
        }else {
            outputError("Aufgrund eines Fehlers konnten die Formulareingaben nicht per E-Mail &uuml;bertragen werden");
        }
    }else {
        outputError("Das Formular wurde nicht abgeschickt, da das Formular nicht ausgef&uuml;llt wurde.");
    }


function outputError($message) {
    $html = <<<HTML_EOT
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=windows-1252" />
        <title>Fehler</title>
    </head>
    <body>
        <h3> Fehler </h3>
        <p>$message </p>
    </body>
    </html>
HTML_EOT;
}



////////////////////////////////////////////////////
// PHPMailer - PHP email class
//
// Class for sending email using either
// sendmail, PHP mail(), or SMTP.  Methods are
// based upon the standard AspEmail(tm) classes.
//
// Copyright (C) 2001 - 2003  Brent R. Matzelle
//
// License: LGPL, see LICENSE
////////////////////////////////////////////////////

/**
 * PHPMailer - PHP email transport class
 * @package PHPMailer
 * @author Brent R. Matzelle
 * @copyright 2001 - 2003 Brent R. Matzelle
 */
?>
Kann mir da vieleicht jemand helfen?
Schonmal Danke im Vorraus!
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Ich finde das ist viel zu kompliziert aufgebaut für ein normales Kontaktformular.

Die Errors geben aus, dass die gefüllten Felder leer sind, also indefinierter Index.

Wenn du willst, mache ich dir ein Formular, musst nur sagen, was es haben muss.


MfG, matibaski
 
Hi!

Das ist nicht nötig, ich versuchs nochmal so, trotzdem danke! Jetzt weis ich wenigstens was die Fehlermeldungen aussagen!

mfg,
domzilla
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben