PHP Formular wird leer abgeschickt

RobnN

Aktives Mitglied
Thread Starter
Dabei seit
06.11.2004
Beiträge
373
Reaktionspunkte
1
Hallo,

ich habe auf einer Website ein Buchungsformular angelegt. Leider kommen des Öfteren vom Formular abgeschickte E-Mails an, wo die Formulardaten fehlen.
Ich habe im Internet recherchiert und gesehen, dass man anstatt "GET" lieber "POST" verwenden sollte. Daraufhin habe ich das Formular geändert, das Problem mit den leeren E-Mails besteht jedoch weiterhin.

Für Hilfe wäre ich sehr dankbar, hier nun der Code der einzelnen Scripte.

Danke!

Robin

Code:
/// Beginn—Formular in Html definieren

        <form action="buchung.php" name="buchung" enctype="standard" target="_top" method="post" >
      		<table width="600px">
				<tr>
					<td id="spalte1">Vorname:</td>
                    <td><input type="text" name="vorname" size="30" tabindex="1" id="buchung"/></td>
                </tr>
                <tr><td></td></tr>
				<tr>
					<td id="spalte1">Name:</td>
                    <td><input type="text" name="name" size="30" tabindex="2" id="buchung"/></td>
                </tr>
                <tr><td></td></tr>
				<tr>
					<td id="spalte1">Geburtsdatum:</td>
                    <td><input type="text" name="gebdatum" size="10" tabindex="3" id="buchung"/></td>
                </tr>
                <tr><td></td></tr>
                <tr>
					<td id="spalte1">E-Mail:</td>
                    <td><input type="text" name="email" size="30" tabindex="4" id="buchung"/></td>
                </tr>
                <tr><td></td></tr>
                <tr>
					<td id="spalte1">Straße und Hausnr.:</td>
                    <td><input type="text" name="straßenr" size="30" tabindex="5" id="buchung"/></td>
                </tr>
                <tr><td></td></tr>
                <tr>
					<td id="spalte1">PLZ:</td>
                    <td><input type="text" name="plz" size="5" tabindex="6" id="buchung"/></td>
                </tr>
                <tr><td></td></tr>
                <tr>
					<td id="spalte1">Ort:</td>
                    <td><input type="text" name="ort" size="30" tabindex="7" id="buchung"/></td>
                </tr>
                <tr><td></td></tr>
                <tr>
					<td id="spalte1">Telefon:</td>
                    <td><input type="text" name="telefon" size="30" tabindex="8" id="buchung"/></td>
                </tr>
                     <tr><td></td></tr>
     				<tr>
					<td id="spalte1">Anmerkungen <br />zur Buchung:</td>
					<td><textarea name="anmerkung" rows="5" cols="30" tabindex="15" id="buchung"></textarea></td>
				</tr>
                 <tr height="20px"><td></td></tr>			
				<tr>
					<td colspan="2" align="left"><input class="submit" type="submit" name="submitButton" value="Buchung abschicken"  tabindex="17" onClick="return EingabenUeberpruefen();"/>&nbsp;&nbsp;&nbsp;<input class="submit" type="reset" value="Eingabe l&ouml;schen" tabindex="18"/></td>
				</tr>
			</table>
		</form>

/// Ende—Formular in Html definieren

Code:
/// Beginn—JAVA Script zur Überprüfung der Formularfelder

<script language="JavaScript">
// AC_FL_RunContent = 0;

<!--
function EingabenUeberpruefen()
{
var Fehlermeldung = "";

	if(document.buchung.vorname.value == "")
		{
		Fehlermeldung += "Bitte gib deinen Vornamen an!\n";
	}

	if(document.buchung.name.value == "")
		{
		Fehlermeldung += "Bitte gib deinen Namen an!\n";
	}
	
	if(document.buchung.gebdatum.value == "")
		{
		Fehlermeldung += "Bitte gib dein Geburtsdatum an!\n";
	}
	
	if(document.buchung.email.value == "")
		{
		Fehlermeldung += "Bitte gib deine E-Mail-Adresse an!\n";
	}
	
	if(document.buchung.straßenr.value == "")
		{
		Fehlermeldung += "Bitte gib deine Straße und Hausnummer an!\n";
	}
	
	if(document.buchung.plz.value == "")
		{
		Fehlermeldung += "Bitte gib deine Postleitzahl an!\n";
	}
	
	if(document.buchung.ort.value == "")
		{
		Fehlermeldung += "Bitte gib deinen Ort an!\n";
	}
	
	if(document.buchung.telefon.value == "")
		{
		Fehlermeldung += "Bitte gib deine Telefonnummer an!\n";
	}
		
	if(document.buchung.agb.checked == false)
		{
		Fehlermeldung += "Bitte lies die Reisebedingungen (AGB) und setze ein Häkchen!\n";
	}

 
	if(Fehlermeldung)
		{
		alert(Fehlermeldung);
		return false;
		}
		else
			{
			return true;
		}

	}

// -->
</script>
  
/// Ende—JAVA Script zur Überprüfung der Formularfelder

Code:
/// Beginn—PHP Script zur Übermittlung der Formulardaten als Mail

<?php
header("Content-Type: text/html; charset=utf-8");

// Settings

	$empfaenger = 'mail@otto0815.de';
    
// Holen der Daten aus dem Formular
 
	$vorname      = $_POST['vorname'];
	$name      = $_POST['name'];
	$gebdatum      = $_POST['gebdatum'];
	$email     = $_POST['email'];
	$straßenr = $_POST['straßenr'];  
	$plz = $_POST['plz'];  
	$ort = $_POST['ort'];  
	$telefon = $_POST['telefon'];
	$agb = $_POST['agb'];
	

// Email Text Generieren
	$mailtext .=  "Eine neue Buchung von otto0815.de ist eingetroffen:";
	$mailtext .=  "\n";
	$mailtext .=  "\n";
	$mailtext .=  "Vorname: ".$vorname;
	$mailtext .=  "\n";
	$mailtext .=  "Name: ".$name;
	$mailtext .=  "\n";
	$mailtext .=  "Geb. ".$gebdatum;
	$mailtext .=  "\n";
	$mailtext .=  "Strasse: ".$straßenr;
	$mailtext .=  "\n";
	$mailtext .=  "PLZ: ".$plz;
	$mailtext .=  "\n";
	$mailtext .=  "Ort: ".$ort;
	$mailtext .=  "\n";
	$mailtext .=  "Telefon: ".$telefon;
	$mailtext .=  "\n";
	$mailtext .=  "AGB akzeptiert: ".$agb;
	$mailtext .=  "\n";
	$mailtext .=  "\n";
	$mailtext .=  "\n";
  
    
// Absender
    $absender  =  "From:";
    $absender .=  $email;
  
// Email Versenden
mail($empfaenger,"otto0815.de – Anfrage",$mailtext,$absender);
header("location: danke.html"); /* Browser umleiten */

exit;

/// Ende—PHP Script zur Übermittlung der Formulardaten als Mail
 
Dann prüf doch erstmal ob die Daten wirklich da sind in PHP bevor Du die e-mail generierst!
Wenn jemand javascript deaktiviert kann er Dir ohne Probleme leere Mails schicken!
 
Gute Idee—hast Du, oder vielleicht jemand anderes, ein gut verständliches Tutorial dafür oder kann mir evt. den Code bereitstellen? Meine PHP-Kenntnisse sind nicht sehr ausgeprägt. Danke!
 
Meine PHP-Kenntnisse sind nicht sehr ausgeprägt.

Hmm....umso bedenklicher finde ich es in vollkommen ungeschütztes Mail Formular ins Netz zu stellen. Die Spambots werden sich freuen. Nicht umsonst gibt es für solche Dinge Profis. Just my 2 Cents....
 
Zurück
Oben Unten