Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Probleme mit Mailform

Empfohlene Antworten

Veröffentlicht

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

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

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

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

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.