Formularabfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formularabfrage

    Hallo,
    ich erstelle gerade für die Eltern meiner Freundin eine Homepage.
    Nun bastele ich schon etwas mit der Hilfe von einem Bekannten an einer Formularabfrage. Er hat mir auch das forum wärmstens empfohlen.
    (Ich hatte leider im Studium nicht wirklich in PHP aufgepasst. Muss ich mal dringend ändern, wenn ich Zeit habe).

    Ich hoffe Ihr könnt mir helfen das Formular richtig anzupassen.
    Lasst Euch auf der Seite nicht irretieren. Die Pflichtferlder habe ich noch nicht angepasst.

    Meine Fragen:
    1.Kann man an sich an der Abfrage noch etwas verbessern?
    2.Kann man die Farbe der Meldungen anpassen?
    Ich konnte es zwar selbst anpassen, aber bei der Fehlermeldung des
    Textfeldes ging es nicht. Dort wird dann der HTML-Code einschl.
    Fehlermeldung angezeigt. Die Fehlermeldung unter/neben dem textfeld
    zu schreiben geht Layoutmäßg nicht wirklich.
    3.Irgendwie scheint die Faxabfrage nicht richtig zu funktionieren.

    Auch, wenn Felder keine Pflicht sind, sollen diese, wenn etwas eingegeben wird, natürlich überprüft werden.

    4.Der Einleitungssatz, der dann in der vom Formular übersendeten Mail
    steht, ist zwar schön, aber nicht optimal.
    4.1 Kann man zusätzlich noch Anrede(falls gesetzt) und das aktuelle
    Datum einfügen?
    4.2 Was ich wichtig finde: Kann man unter dem Einleitungssatz, so dass
    es optisch gut aussieht, die gesamten Date, falls
    eingetragen, "tabellarisch aufführen?

    Bsp: Einleitungssatz
    ==============
    Datum:
    Anrede:
    Name:
    Vorname:
    [...]
    5. Kann man zusätzlich, falls eine E-Mail Adresse eingegeben wurd, eine
    entsprechende Bestätigungs-Mail an den Adressaten schicken?

    Ich hoffe ich erscheine mit meinen Fragen nicht zu unverschämt.
    Ich hoffe nämlich, dass ich Morgen, zumindest mit dem Formular, einigermaßen fertig bin, da ich Morgen zu den Eltern meiner Freundin fahre.

    Auf Hilfe hoffend

    SPMan

    Anbei die PHP-Datei im ZIP-Format und der Code, zusammengekürzt:
    Code:
    <?
    $to_email='test@test.de'; //Die Zieladresse
    $mail_success='versendet.html'; // Pfad zu einer Bestätigungsseite, wenn die Mail erfolgreich versendet wurde.
    
    
    $error=false;
    
    // Hier werden alle Pflichtfelder festgelegt. 
    
    $pflicht[]='vorname';
    $pflicht[]='name';
    $pflicht[]='telefon';
    $pflicht[]='plz';
    $pflicht[]='ort';
    $pflicht[]='nachricht';
    
    
    if($_POST)
    {
    	// prüfen, ob eines der Pflichtfelder leer ist
    	foreach($pflicht AS $key => $result)
    	{
    		if(!$_POST[$result])
    		{
    			${$pflicht[$key].'_error'}='Bitte ausfüllen';
    			$error=true;
    		}
    	}
    
    	// Prüfung der PLZ
    	$pattern_plz="/^[0-9]{5}$/";
    	if(!preg_match($pattern_plz,$_POST['plz']) && $_POST['plz']!='')
    	{
    		$plz_error='falsche PLZ';
    		$error=true;
    	}
    
    	// Prüfung der Telefonnummer
    	$pattern_tel="/^[0-9-()\/+.]*$/";
    	if(!preg_match($pattern_tel,$_POST['telefon']) && $_POST['telefon']!='')
    	{
    		$telefon_error='falsches Format';
    		$error=true;
    	}
    
    	// Prüfung der Faxnummer
    	$pattern_telefax="/^[0-9-()\/+.]*$/";
    	if(!preg_match($pattern_telefax,$_POST['telefax']) && $_POST['telefax']!='')
    	{
    		$fax_error='falsches Format';
    		$error=true;
    	}
    
    	// Prüfung der E-Mail
    	if($_POST['email']!='')
    	{
    		function checkmail($email)
    		{
    			if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$", $email, $check))
    			{
    				if(getmxrr(substr(strstr($check[0], '@'), 1), $validate_email_temp))
    				{
    					return true;
    				}
    				if(checkdnsrr(substr(strstr($check[0], '@'), 1),"ANY"))
    				{
    					return true;
    				}
    			}
    			return false;
    		}
    
    		if(!checkmail($_POST['email']))
    		{
    			$email_error='falsches Format';
    			$error=true;
    		}
    	}
    
    	// Wenn keine Fehler vorhanden, dann kann die Mail versendet werden
    	if(!$error)
    	{
    		$from_name="{$_POST['vorname']} {$_POST['name']}";
    		$from_email=$_POST['email'];
    
    		$headers  = "X-Sender: $from_name<$from_email>\n";
    		$headers .= "X-Mailer: $from_name powered by SPMan\n";
    		$headers .= "Return-Path: <$from_email>\n";
    		$headers .= "Date: ". date('r'). "\n";
    		$headers .= "From: $from_email \n";
    		$headers .= "Sender: $from_email\n";
    		$headers .= "Reply-To: $from_email\n";
    		$headers .= "Organization:  Test\n";
    		$headers .= "X-MSMail-Priority: Normal\n";
    		$headers .= "Content-Type: text/plain\n";
    
    		$comment = $from_name.'aus '.$_POST['plz'].' '.$_POST['ort'].' hat folgende Nachricht gesendet'."\n\n";
    		$comment .= $_POST['nachricht'];
    
    
    		if(mail($to_email,$_POST['betreff'],$comment,$headers))
    		{
    			header("LOCATION: $mail_success");
    		}
    	}
    }
    
    ?>
    
    <html>
    <object><form id="beispielform" method="post" action="">
      		<label for="name">Anrede</label>
      		<select style="width:60px" class="select" id="anrede" name="anrede" size="1">
             		<option></option>
        			<option value="1">Herr</option>
        			<option value="2">Frau</option>
        			<option value="2">Firma</option></select><br />
      		<label for="name">Vorname</label><input style="width:165px" class="text" type="text" id="vorname" name="vorname" value="<?=$_POST['vorname'] ?>" size="100px" /><?=$vorname_error ?><br />
      		<label for="name">Name</label><input style="width:165px" class="text" type="text" id="name" name="name" value="<?=$_POST['name'] ?>" /><font color="#2F6D28">*&nbsp;</font><?=$name_error ?><br />
     		<label for="name">Strasse</label><input style="width:165px" class="text" type="text" id="strasse" name="strasse" value="<?=$_POST['strasse'] ?>" /><?=$strasse_error ?><br />
      		<label for="name">Plz / Ort</label><input style="width:40px" class="text" type="text" id="plz" name="plz" maxlength="5" value="<?=$_POST['plz'] ?>" /><input style="width:115px" class="text" type="text" id="Ort" name="ort" value="<?=$_POST['ort'] ?>" /><?=$plz_error ?><br />
      		<label for="name">Telefon</label><input style="width:165px" class="text" type="text" id="telefon" name="telefon" value="<?=$_POST['telefon'] ?>" /><font color="#2F6D28">*&nbsp;</font><?=$telefon_error ?><br />
      		<label for="name">Telefax</label><input style="width:165px" class="text" type="text" id="telefax" name="telefax" value="<?=$_POST['telefax'] ?>" /><?=$telefax_error ?><br />
      		<label for="name">E-Mail</label> <input class="text" style="width:165px" type="text" id="email" name="email" value="<?=$_POST['email'] ?>" /><?=$email_error ?><br />
      		<label for="name">Betreff</label> <input class="text" style="width:165px" type="text" id="betreff" name="betreff" value="<?=$_POST['betreff'] ?>" /><?=$betreff_error ?><br />
      		<label for="name">Ihre Nachricht</label><textarea style="width:250px" class="text" id="nachricht" name="nachricht" cols="" rows="5"><?=$_POST['nachricht'] ?><?=$nachricht_error ?></textarea><font color="#2F6D28">*</font><br /><br />
      		<input type="submit" id="submit" /><input type="reset" id="reset" /><br />
    	</form></object>
             <p class="stern">Die mit Sternchen<font color="#2F6D28">*</font> gekennzeichneten Felder müssen ausgefüllt werden.</p><br />
    
    </html>
    Zuletzt geändert von SPMan; 31.08.2004, 18:18.

  • #2
    OffTopic:
    in der projekthilfe bist du besser aufgehoben *verschieb*
    Kissolino.com

    Kommentar


    • #3
      Aber anscheinend ist es zu viel und keiner hat Lust mir zu helfen...

      Schade...trotzdem Danke, dass ich meine Anfrage hier posten durfte.

      SPMan

      Kommentar


      • #4
        Hier nochmal das komplette Script als ZIP-Datei.
        Irgendwie konnte ich, nachdem ich die eine Varion gelöscht habe, keine neue mehr einfügen.

        SPMan
        Zuletzt geändert von SPMan; 31.08.2004, 18:16.

        Kommentar

        Lädt...
        X