Zum Inhalt springen

Probleme mit Mailform


f4e

Empfohlene Beiträge

hallo,

ich schreibe für jemanden ein mailformular...

bekommen aber immer diese doofe meldung:

Notice: Undefined variable: sent in E:\WebServer\wwwroot\xxxx\xxxxx\test_mail.php on line 10.....

das script ist soweit ok, denke ich mal....

ich bekomme diese meldung zum verrecken nicht weg....vielleicht bin ich einfach zu blööd dazu und sollte es sein lassen...

wer kann mir helfen????

Mein system:

Win2000ADS, SP4, IIs ves.5

PHP: 4.4.7

alles an pHP läuft, nur dieses schei.... Mailform nicht

grüsse

dieter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Poste doch mal Zeile 10 von test_mail.php. Die Fehlermeldung lässt mich vermuten das du entweder irgendwo einen Syntaxfehler hast oder eine Variable nicht/falsch deklariert worden ist (Vertippt beim Namen?).

Falls das Script soweit läuft, kannst du die Meldung auch einfach mit PHP's error_reporting-Funktion ausblenden. Allerdings ist das keine 'richtige' Lösung, sondern es unterdrückt nur die Meldung.

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo, so sieht das ganze konstruckt zur zeit noch aus.......

vielelicht sehe ich wirklich vor lauter bäumen den wald nicht mehr

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<?php

//mit $sent==1 wird getestet, ob das Formular abgeschickt wurde

if ($sent==1)

{

//Ausgabe der eingegebenen Fromulardaten

echo "Anrede:<br>$anrede<br>";

echo "Ihr Vorname:<br>$vorname<br>";

echo "Ihr Nachname:<br>$nachname<br>";

echo "Ihre Anschrift:<br>$plz:,$ort,$strasse<br>";

echo "Ihre Telefon-Nr:<br>$tel<br>";

echo "Ihre Mailadresse:<br>$email<br>";

echo "Ihre Anfrage:<br>$betreff<br>";

echo "Ihre gewünschte Unterbringungart:<br>$auswahl<br>";

echo "Ihr gewünschter Buchungszeitraum:<br>$von:$bis:$jahr<br>";

echo "Anzahl der Personen:$erwachsen: Erwachsene:$kind:Kinder:$tier:Haustiere<br>";

echo "Ihre Nachricht:<br>$nachricht<br>";

// Testen ob alle Felder ausgefüllt wurden, ggf eine Fehlermeldung ausgeben und $sent löschen, damit das Formular erneut angzeigt wird

if (!$vorname) {echo 'Bitte geben Sie Ihren Vornamen an!! <br>';unset ($sent);}

if (!$nachname) {echo 'Bitte geben Sie Ihren Nachnamen an!! <br>';unset ($sent);}

if (!$plz) {echo 'Bitte geben Sie Ihre PLZ an!! <br>';unset ($sent);}

if (!$ort) {echo 'Bitte geben Sie Ihren Wohnort an!! <br>';unset ($sent);}

if (!$strasse) {echo 'Bitte geben Sie Ihre Straße an!! <br>' ;unset ($sent);}

if (!$tel) {echo 'Bitte geben Sie ihre Telefon-Nr. an!! <br>' ;unset ($sent);}

if (!$email) {echo 'Bitte geben Sie Ihre Mail-Adresse an!! <br>' ;unset ($sent);}

if (!$betreff) {echo 'Bitte geben sie den Grund Ihrer Nachricht an!! <br>' ;unset ($sent);}

if (!$auswahl) {echo 'Bitte wählen Sie eine Unterbringungsart!!<br>' ;unset ($sent);}

if (!$von) {echo 'Bitte geben Sie Ihren gewünschten Anreisetag an!! <br>' ;unset ($sent);}

if (!$bis) {echo 'Bitte geben Sie Ihren gwünschten Abreisetag an!! <br>' ;unset ($sent);}

if (!$jahr) {echo 'Bitte geben Sie das Reisejahr an!! <br>' ;unset ($sent);}

if (!$erwachsen) {echo 'Bitte geben Sie die Zahl der erwachsenen Reisenden an!! <br>' ;unset ($sent);}

if (!$kind) {echo 'Bitte geben Sie die Zahl der mitreisenden Kinder an!! <br>' ;unset ($sent);}

if (!$tier) {echo 'Bitte geben Sie die Zahl der mitreisenden Haustiere an!! <br>' ;unset ($sent);}

if (!$nachricht) {echo 'Bitte geben Sie Ihre Mitteilung an uns an!! <br>' ;unset ($sent);}

//Testen, ob alle Felder ausgefüllt sind, wenn ja Mail vorbereiten und versenden

if ($nachname AND $email AND $betreff AND $nachricht)

{

//Den Nachrichtentext für eine HTML-Mail zusammenbauen

$message= "<html><body>";

$message.= "Vorname: ";

$message.=$vorname;

$mesaage.= "Nachmane: ";

$message.=$nachname;

$message.= "PLZ: ";

$message.=$plz;

$message.= "Ort: ";

$message.=$ort;

$message.= "Strasse: ";

$message.=$strasse;

$message.= "Tel-Nr.: ";

$message.=$tel;

$message.= "E-Mail: ";

$message.=$email;

$message.= "Betreff: ";

$message.=$betreff;

$message.= "Art der Unterbringung: ";

$message.=$auswahl;

$mesage.= "Von: ";

$message.=$von;

$message.= "Bis: ";

$message.=$bis;

$message.= "Jahr: ";

$message.=$jahr;

$message.= "Erwachsene: ";

$mesage.=$erwachsen;

$message.= "Kinder: ";

$message.=$kind;

$mesage.= "Haustiere: ";

$mesage.=$tier;

$message.= "Nachricht: ";

$message.=$nachricht;

$mesage.="</body></html>";

//Den Header der Mail erstellen

$header="\n Content-Type:text/html";

//Die Mail versenden. Wenn kein Fehler auftritt, wird eine Erfolgsmeldung ausgegeben, andernfalls eine Fehlermeldung

if(mail("admin@vf.de", "Eine Mailanfrage vom Ferienhaus-Grüneweg!!",$message, $header))

{

//Erfolgsmeldung ausgeben

echo "Ihre Mail wurde erfolgreich versendet!!";

}

else

{

//Fehlermeldung ausgeben

echo "Die Übertragung Ihrer Mail ist leider fehlgeschlagen. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal!!";

//$sent löschen, damit das Formular erneut angzeigt werden kann

unset($sent);

}

}//schliessende Klammer für if($vorname AND $nachname AND....)

}//schliessende Klammer für if($sent==1)

//Das Formular anzeigen, wenn $sent nicht existiert.....dies kann der Fall sein, wenn die Seite zum 1.Mal aufgerufen wird oder wenn $sent oben bei einem Fehler gelöscht wird

if(!$sent)

{

?>

<form action="<?php echo $PHP_SELF; ?>" method=post>

<!-Verstecktes Feld um zu Testen, ob das Formular aufgerufen werden soll oder nicht->

<input type=hidden name=sent value=1>

</form>

<?php

}//schliessende Klammer für if(!$sent) !!WICHTIG!!!, diese Klammer muss in einem PHP-Teil stehen!!

?>

</body>

</html>

gruss

dieter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Vermutlich stammt das Script noch aus PHP4-Zeiten. Du kannst das jetzt auf zwei Arten Lösen.

1. Stupide, funktioniert aber und sollte keine Probleme machen. Einfach über dein ganzens Script drüber machen.

<?php
error_reporting(0);
?>[/php]

2. Um das Problem selbst zu lösen kannst du nun auch folgendes machen, ich gehe jetzt einfach mal davon aus das dein Script per die Daten per POST weitergibt. Ändere hierzu einfach Zeile 10 in folgendes um:

[php]if ($_POST['sent']==1)

2.1 Selbiges wie oben, etwas eleganter gelöst:

if (isset($sent))

Keine Ahnung obs funktioniert, probiers aus ;)

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

danke für die beiden möglichkeiten.....

die erste werde ich nicht nehmen, da ich dafür bin ein ein problem zu lösen

(denke das geht allen so:D)

ich habe mich für deine zweite möglichkeit endschieden.... ist zwar etwas arbeit aber ok

ich habe alles was mit $sent zu tun hatte auf $_POST geändert....... die fehler meldung ist wech....super

hoffe das er die mail auch abschickt.......werde ich aber dann sehn wenn es soweit ist..

ich habe deine zweite möglichkeit etwas ändern müssen, damit es passt

von: if ($_POST['sent']==1)

auf

if ($_POST==1)

ich hoffe das es passt............

danke für deine hilfe

gruss

dieter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey

Ich will meinen du könntest Probleme mit der Abfrage des Inhalts haben, wenn du das wirklich überall gemacht hast. Die Fehlermeldung mit dem $sent sollte ja immer nur dann gekommen sein, wenn die E-Mail NICHT verschickt worden ist, also wenn der Paremeter nicht übergeben worden ist. Demnach sollte es auch reichen wenn du die Methode mit dem isset benutzt und eventuell auch statt $_POST['sent'] nur $sent benutzt.

PHP: Verwendung von Register Globals - Manual

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...