Antworten auf deine Fragen:
Neues Thema erstellen

Problem mit Formular

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.';

}

}

?>
 

itstumpp

Noch nicht viel geschrieben

Hallo suppentopf,

die Fehlermeldung "Undefined variable: nr" sagt dir ja schon was das Problem ist.
In Zeile 14 prüfst du die nicht vorhandene Variable "nr" ob diese numerisch "is_numeric($nr)" ist, da diese Variable aber nicht deklariert wurde bekommst du die Fehlermeldung. Die anderen Variablen, die du prüfst hast du deklariert und mit den Formulartwerten belegt: "$anrede = $_POST['anrede'];".
Entweder hast du das Formularfeld für "nr" nicht ausgelesen, oder dir fehlt noch eine include-Anweisung in welcher die Variable "nr" deklariert wird.
 

owieortho

Aktives Mitglied

Tipp:Wenn Du Deinen Code auch als solchen hier im Editor einfügst, ist er leichter zu lesen. Die Schaltfläche ist in der Menüleiste rechts neben den "Filmstreifen" für das Einfügen von Medien.
O.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.619
Beiträge
1.538.363
Mitglieder
67.540
Neuestes Mitglied
Alex Weidner
Oben