S
Suppentopf
Guest
Hallo,
ich habe Xampp heruntergeladen und installiert. Nun will ich ein Formular, genauer gesagt, die PHP-Mailfunktion testen. Das Formular beinhaltet also ein PHP-Skript. Das Formular ist in einer HTML-Seite eingebettet. Über action=formular.php im Action-Tag wird die formular.php dem kontakt.html zugewiesen.
Nun will ich das Formular in Xampp testen. Dazu gebe ich folgendes in die Adresszeile von Firefox ein: localhost/test/index.html. Den Ordner „test“ habe ich neu angelegt und dort die Daten meiner Webseite rein kopiert. Nun öffnet sich die Startseite der Webseite. Dann klicke ich auf Kontakt. Jetzt öffnet sich die kontakt.html mit Bezug auf das formular.php über action=formular.php. Im Formular gebe ich dann Testdaten ein und klicke auf den Buttom „Abschicken“.
Dann ist folgende Meldung zu sehen: Notice: Undefined variable: nr in C:\xampp\htdocs\test\html\formular.php on line 14
Ich verstehe diese Meldung nicht. So lautet der Code in der formular.php in Zeile14:
!empty($telefon) && is_numeric($nr)
Diese Zeile stammt aus diesem Abschnitt:
if( !empty($vorname) && strlen($vorname) >=2 &&
!empty($nachname) && strlen($nachname) >=2 &&
!empty($email) && filter_var($email, FILTER_VALIDATE_EMAIL) &&
!empty($nachricht) && strlen($nachricht) >=5 &&
!empty($anrede) &&
!empty($telefon) && is_numeric($nr)
)
Ich weiss nicht, wass ich in Zeile 14 falsch gemacht habe. Ich habe das so gemacht, wie in dem www.tutkit.com Tutorial Formular-Verarbeitung: Verarbeitung mit PHP - Teil 2 von Pascal Bajorat erklärt. Ich glaube, dass eine mögliche Ursache die sein könnte, dass Xampp die PHP-Mailfunktion vielleicht nicht unterstützt. So ist es zu mindestens bei Mamp auf dem Mac.
Was glaubt Ihr, was die Ursache für das Problem in „Notice: Undefined variable: nr in C:\xampp\htdocs\test\html\formular.php on line 14“ sein könnte? Ich tappe völlig im Dunkeln.
Zwecks besserem Verständniss poste ich den kompletten Code der formular.php. Vielleicht sieht Ihr da einen Fehler der sich auf „Notice: Undefined variable: nr in C:\xampp\htdocs\test\html\formular.php on line 14“ bezieht.
<?php
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$email = $_POST['email'];
$telefon = $_POST['telefon'];
$nachricht = $_POST['nachricht'];
$anrede = $_POST['anrede'];
if( !empty($vorname) && strlen($vorname) >=2 &&
!empty($nachname) && strlen($nachname) >=2 &&
!empty($email) && filter_var($email, FILTER_VALIDATE_EMAIL) &&
!empty($nachricht) && strlen($nachricht) >=5 &&
!empty($anrede) &&
!empty($telefon) && is_numeric($nr)
){
$an = 'test@gmx.de';
$betreff = 'Nachricht aus dem Kontaktformular';
$mailText = "<span style=\"color:#f00;\">Diese E-Mail beinhaltet Daten aus dem Kontaktformular:</span><br>";
$mailText .= "<strong>Vorname:</strong> $vorname <br>";
$mailText .= "<strong>Nachname:</strong> $nachname <br>";
$mailText .= "<strong>E-Mail:</strong> $email <br>";
$mailText .= "<strong>Telefon:</strong> $telefon <br>";
$mailText .= "<strong>Nachricht:</strong> $nachricht <br>";
$mailText .= "<strong>Anrede:</strong> $anrede <br>";
$mailText = '
<html>
<head>
</head>
<body style="background:#efefef;font:12px Arial;color:#333;">
<p>Diese E-Mail beinhaltet Daten aus dem Kontaktformular:</p>
<table>
<tr>
<td style="width:120px"><strong>Vorname:</strong></td>
<td>'.$vorname.'</td>
</tr>
<tr>
<td><strong>Nachname:</strong></td>
<td>'.$nachname.'</td>
</tr>
<tr>
<td><strong>E-Mail:</strong></td>
<td>'.$email.'</td>
</tr>
<tr>
<td><strong>Telefon:</strong></td>
<td>'.$telefon.'</td>
</tr>
<tr>
<td><strong>Nachricht:</strong> </td>
<td>'.$nachricht.'</td>
</tr>
<tr>
<td><strong>Anrede:</strong></td>
<td>'.$anrede.'</td>
</tr>
</table>
<p>Gesendet am: '.date('d.m.Y h:i').'</p>
</body>
</html>
';
$maiHeader = "MIME-Version: 1.0\r\n";
$maiHeader .= "Content-Type: text/html; charset=utf-8\r\n";
$maiHeader .= "From: $email\r\n";
$maiHeader .= "X-Mailor: PHP/".phpversion();"\r\n";
$mailFunktion = mail($an, $betreff, $mailText, $maiHeader);
if( $mailFunktion ){
//echo 'E-Mail versendet.';
header('Location: danke.html');
}else{
echo 'Es gab ein Problem.';
}
}
?>
ich habe Xampp heruntergeladen und installiert. Nun will ich ein Formular, genauer gesagt, die PHP-Mailfunktion testen. Das Formular beinhaltet also ein PHP-Skript. Das Formular ist in einer HTML-Seite eingebettet. Über action=formular.php im Action-Tag wird die formular.php dem kontakt.html zugewiesen.
Nun will ich das Formular in Xampp testen. Dazu gebe ich folgendes in die Adresszeile von Firefox ein: localhost/test/index.html. Den Ordner „test“ habe ich neu angelegt und dort die Daten meiner Webseite rein kopiert. Nun öffnet sich die Startseite der Webseite. Dann klicke ich auf Kontakt. Jetzt öffnet sich die kontakt.html mit Bezug auf das formular.php über action=formular.php. Im Formular gebe ich dann Testdaten ein und klicke auf den Buttom „Abschicken“.
Dann ist folgende Meldung zu sehen: Notice: Undefined variable: nr in C:\xampp\htdocs\test\html\formular.php on line 14
Ich verstehe diese Meldung nicht. So lautet der Code in der formular.php in Zeile14:
!empty($telefon) && is_numeric($nr)
Diese Zeile stammt aus diesem Abschnitt:
if( !empty($vorname) && strlen($vorname) >=2 &&
!empty($nachname) && strlen($nachname) >=2 &&
!empty($email) && filter_var($email, FILTER_VALIDATE_EMAIL) &&
!empty($nachricht) && strlen($nachricht) >=5 &&
!empty($anrede) &&
!empty($telefon) && is_numeric($nr)
)
Ich weiss nicht, wass ich in Zeile 14 falsch gemacht habe. Ich habe das so gemacht, wie in dem www.tutkit.com Tutorial Formular-Verarbeitung: Verarbeitung mit PHP - Teil 2 von Pascal Bajorat erklärt. Ich glaube, dass eine mögliche Ursache die sein könnte, dass Xampp die PHP-Mailfunktion vielleicht nicht unterstützt. So ist es zu mindestens bei Mamp auf dem Mac.
Was glaubt Ihr, was die Ursache für das Problem in „Notice: Undefined variable: nr in C:\xampp\htdocs\test\html\formular.php on line 14“ sein könnte? Ich tappe völlig im Dunkeln.
Zwecks besserem Verständniss poste ich den kompletten Code der formular.php. Vielleicht sieht Ihr da einen Fehler der sich auf „Notice: Undefined variable: nr in C:\xampp\htdocs\test\html\formular.php on line 14“ bezieht.
<?php
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$email = $_POST['email'];
$telefon = $_POST['telefon'];
$nachricht = $_POST['nachricht'];
$anrede = $_POST['anrede'];
if( !empty($vorname) && strlen($vorname) >=2 &&
!empty($nachname) && strlen($nachname) >=2 &&
!empty($email) && filter_var($email, FILTER_VALIDATE_EMAIL) &&
!empty($nachricht) && strlen($nachricht) >=5 &&
!empty($anrede) &&
!empty($telefon) && is_numeric($nr)
){
$an = 'test@gmx.de';
$betreff = 'Nachricht aus dem Kontaktformular';
$mailText = "<span style=\"color:#f00;\">Diese E-Mail beinhaltet Daten aus dem Kontaktformular:</span><br>";
$mailText .= "<strong>Vorname:</strong> $vorname <br>";
$mailText .= "<strong>Nachname:</strong> $nachname <br>";
$mailText .= "<strong>E-Mail:</strong> $email <br>";
$mailText .= "<strong>Telefon:</strong> $telefon <br>";
$mailText .= "<strong>Nachricht:</strong> $nachricht <br>";
$mailText .= "<strong>Anrede:</strong> $anrede <br>";
$mailText = '
<html>
<head>
</head>
<body style="background:#efefef;font:12px Arial;color:#333;">
<p>Diese E-Mail beinhaltet Daten aus dem Kontaktformular:</p>
<table>
<tr>
<td style="width:120px"><strong>Vorname:</strong></td>
<td>'.$vorname.'</td>
</tr>
<tr>
<td><strong>Nachname:</strong></td>
<td>'.$nachname.'</td>
</tr>
<tr>
<td><strong>E-Mail:</strong></td>
<td>'.$email.'</td>
</tr>
<tr>
<td><strong>Telefon:</strong></td>
<td>'.$telefon.'</td>
</tr>
<tr>
<td><strong>Nachricht:</strong> </td>
<td>'.$nachricht.'</td>
</tr>
<tr>
<td><strong>Anrede:</strong></td>
<td>'.$anrede.'</td>
</tr>
</table>
<p>Gesendet am: '.date('d.m.Y h:i').'</p>
</body>
</html>
';
$maiHeader = "MIME-Version: 1.0\r\n";
$maiHeader .= "Content-Type: text/html; charset=utf-8\r\n";
$maiHeader .= "From: $email\r\n";
$maiHeader .= "X-Mailor: PHP/".phpversion();"\r\n";
$mailFunktion = mail($an, $betreff, $mailText, $maiHeader);
if( $mailFunktion ){
//echo 'E-Mail versendet.';
header('Location: danke.html');
}else{
echo 'Es gab ein Problem.';
}
}
?>