Fehler in einen Kontaktformularfeld Rot markieren

andreano

Mitglied
Guten Morgen/ Tag,
ich habe in Kontaktformular erstellt, der Senden die Daten an eien Bestimmte E-Mail Adresse.
Das Funktioniert alles einwandfrei und Perfekt, auch die Meldung das die Daten abgeschickt bzw. mann die *Pfllichtfelder nciht Ausgefühlt hat kommt.

Mein nächster Problem/wunsch ist das ich was ganz besonderes haben will.

Beispiel:
Kunde Füllt nicht alles aus -> Folge es erscheint ein Text "Bla bla bla nicht allles ausgefühlt!" dazu will ich noch mein Spezial habe, dass nähmlich die *Pflichtfelder im .css ein boarder von 2 px bekommen.
Das alles soll nur dann passieren wenn der Kunde die Pflichtfelder nciht Ausgefühlt hat!

ps. sorry für die grammatik ( wenn was nicht stimmt )

Danke im Voraus

Gruß Aleks

-----------------------------------------------------------------------------------------------------------------------------

So jungs/mädels hier ist die von mir versprochene Lösung zu meinem einem Problem:
Das ist der Callback Formular:
PHP:
<?php
$errorvorname = false;
$errornachname = false;
$errortext = false;
$errortelefonnummer = false;

if ($_POST["Senden"] == 'Absenden'){
		if (!($_POST["vorname"] != '' && $_POST["nachname"] != ''  && $_POST["text"] != ''  && $_POST["telefonnummer"] != '')){
			if ($_POST["vorname"] == '' ) $errorvorname = true;
			if ($_POST["nachname"] == '') $errornachname = true;
			if ($_POST["text"] == '') $errortext = true;
			if ($_POST["telefonnummer"] == '') $errortelefonnummer = true;
		}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
	<div class="call-back">
	<span class="special-info">* Pflichtfelder</span><br><br>
	<label for="vorname">Vorname<span class="special-info">*</span></label><input value="<?php echo $_POST["vorname"]; ?>" type="text" name="vorname" id="vorname" class="block-input<?php if ($errorvorname){echo ' error';}?>"><br>
	<label for="nachname">Nachname<span class="special-info">*</span></label><input value="<?php echo $_POST["nachname"]; ?>" type="text" name="nachname" id="nachname" class="block-input<?php if ($errornachname){echo ' error';}?>"><br>
	<label for="telefonnummer">Telefonnummer<span class="special-info">*</span></label><input value="<?php echo $_POST["telefonnummer"]; ?>" type="text" name="telefonnummer" id="telefonnummer" class="block-input<?php if ($errortelefonnummer){echo ' error';}?>"><br>
	<label for="text">Anlegen<span class="special-info">*</span></label><textarea value="<?php echo $_POST["text"]; ?>" rows="8" cols="69" type="text" name="text" id="text" class="block-input<?php if ($errortext){echo ' error';}?>"></textarea><br>
	<?php
	/**
	* Simple example script using PHPMailer with exceptions enabled
	* @package phpmailer
	* @version $Id$
	*/
	require './PHPMailer_5.2.0/class.phpmailer.php';
	$emailContent[] = '
	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
	<html>
	  <head>
	    <title>Email test</title>
	    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	  </head>
	  <body>
	  ';
	//Empfang-anfang
	$nachricht = $_POST["text"];
	$vorname = $_POST["vorname"];
	$nachname = $_POST["nachname"];
	$telefonnummer = $_POST["telefonnummer"];
	//Empfang-ende
	if ($_POST["Senden"] == 'Absenden'){
		if ($_POST["vorname"] != '' && $_POST["nachname"] != ''  && $_POST["text"] != ''  && $_POST["telefonnummer"] != ''){
		$emailContent[] = '<p>Folgende Daten wurden über das Kontaktformular übermittelt:</p>';
		$emailContent[] = '<p>Vorname: '.$vorname.'</p>';
		$emailContent[] = '<p>Nachname: '.$nachname.'</p>';
		$emailContent[] = '<p>Telefonnummer: '.$telefonnummer.'</p>';
		$emailContent[] = '<p>Anfrage: '.$nachricht.'</p>';
		$emailContent[] = '
		</body>
		</html>
		';
		$emailCompleteContent = implode( '', $emailContent );
		try {
			$mail = new PHPMailer(true); //New instance, with exceptions enabled
			//$body             = file_get_contents('contents.html');
			$body = $emailCompleteContent;
			$body             = preg_replace('/\\\\/','', $body); //Strip backslashes
		
			$mail->IsSMTP();                           // tell the class to use SMTP
			$mail->SMTPAuth   = true;                  // enable SMTP authentication
			$mail->Port       = 25;                    // set the SMTP server port
			$mail->Host       = "localhost"; // SMTP server
			//$mail->Username   = "name@domain.com";     // SMTP server username
			//$mail->Password   = "password";            // SMTP server password
		
			$mail->IsSendmail();  // tell the class to use Sendmail
		
			$mail->AddReplyTo("grins@trash-mail.de","name");
		
			$mail->From       = "sender email@email.de";
			$mail->FromName   = "Name";
		
			$to = "empfänge@mail";
		
			$mail->AddAddress($to);
		
			$mail->Subject  = "Test Rückrufformular";
		
			$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
			$mail->WordWrap   = 80; // set word wrap
		
			$mail->MsgHTML($body);
		
			$mail->IsHTML(true); // send as HTML
		
				$mail->Send();
				echo 'Wir werden so schnell wie möglich mit Ihnen in Kontakt treten.<br>';
			} catch (phpmailerException $e) 
				{
					echo $e->errorMessage();
				}
			}
			else{
				echo '<br>Sie haben nicht alle <span class="special-info">* Pflichtfelder</span> Ausgefühlt.<br>';
			}
		}
		//pflichtfelder anfrage ende
		?>
	<input type="submit" value="Absenden" name="Senden" class="input-submit">





-------------------------------------------------------------------------------------------------------------------------

Und das hier ist der Kontaktformular:
PHP:
<?php

$errorname = false;
$errorstrasse = false;
$errorstadt = false;
$errorplz = false;
$erroremail = false;
$errortext = false;

if ($_POST["Senden"] == 'Absenden'){
	if (!($_POST["name"] != '' && $_POST["strasse"] != ''  && $_POST["stadt"] != ''  && $_POST["plz"] != ''  && $_POST["email"] != ''  && $_POST["text"] != '' )){
		if ($_POST["name"] == '' ) $errorname = true;
		if ($_POST["strasse"] == '' ) $errorstrasse = true;
		if ($_POST["stadt"] == '' ) $errorstadt = true;
		if ($_POST["plz"] == '' ) $errorplz = true;
		if ($_POST["email"] == '' ) $erroremail = true;
		if ($_POST["text"] == '' ) $errortext = true;
	}
}

?>
	<h2 class="headline"><br />Kontaktformular</h2>
	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
	<div class="block">
	<span class="special-info">* Pflichtfelder</span><br><br>
		<label class="label-block" for="name">Name<span class="special-info">*</span></label><input value="<?php echo $_POST["name"]; ?>" type="text" name="name" id="name" class="block-input<?php if ($errorname){echo ' error';}?>"><br>
		<label class="label-block" for="firma">Firma</label><input value="<?php echo $_POST["firma"]; ?>" type="text" name="firma" id="firma" class="block-input"><br>
		<label class="label-block" for="strasse">Stra&szlig;e<span class="special-info">*</span></label><input value="<?php echo $_POST["strasse"]; ?>" type="text" name="strasse" id="strasse" class="block-input<?php if ($errorstrasse){echo ' error';}?>"><br>
		<label class="label-block" for="stadt">Stadt<span class="special-info">*</span></label><input value="<?php echo $_POST["stadt"]; ?>" type="text" name="stadt" id="stadt" class="block-input<?php if ($errorstadt){echo ' error';}?>"><br>
		<label class="label-block" for="plz">Postleitzahl <span class="special-info">*</span></label><input value="<?php echo $_POST["plz"]; ?>" type="text" name="plz" id="plz" class="block-input<?php if ($errorplz){echo ' error';}?>"><br>
		<label class="label-block" for="staat">Staat</label><input value="<?php echo $_POST["staat"]; ?>" type="text" name="staat" id="staat" class="block-input"><br>
		<label class="label-block" for="telefon">Telefon</label><input value="<?php echo $_POST["telefon"]; ?>" type="text" name="telefon" id="telefon" class="block-input"><br>
		<label class="label-block" for="fax">Fax</label><input value="<?php echo $_POST["fax"]; ?>" type="text" name="fax" id="fax" class="block-input"><br>
		<label class="label-block" for="email">E-Mail <span class="special-info">*</span></label><input value="<?php echo $_POST["email"]; ?>" type="text" name="email" id="email" class="block-input<?php if ($erroremail){echo ' error';}?>"><br>
		<label class="label-block" for="homepage">Homepage</label><input value="<?php echo $_POST["homepage"]; ?>" type="text" name="homepage" id="homepage" class="block-input" ><br><br>
		<label class="label-block" for="text">Anfrage <span class="special-info">*</span></label><textarea value="<?php echo $_POST["text"]; ?>" rows="8" cols="69" name="text" id="text" class="block-input<?php if ($errortext){echo ' error';}?>"></textarea><br>
		<?php
		/**
		* Simple example script using PHPMailer with exceptions enabled
		* @package phpmailer
		* @version $Id$
		*/
		
		require './PHPMailer_5.2.0/class.phpmailer.php';
		$emailContent[] = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
		<html>
		  <head>
		    <title>Email test</title>
		    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		  </head>
		  <body>';
		
		//Empfang-anfang
		
		$name = $_POST["name"];
		$firma = $_POST["firma"];
		$strasse = $_POST["strasse"];
		$stadt = $_POST["stadt"];
		$plz = $_POST["plz"];
		$staat = $_POST["staat"];
		$telefon = $_POST["telefon"];
		$fax = $_POST["fax"];
		$email = $_POST["email"];
		$homepage = $_POST["homepage"];
		$text = $_POST["text"];
		
		//Empfang-ende
		
		//pflichtfelder abfrage anfang
		if ($_POST["Senden"] == 'Absenden'){
			if ($_POST["name"] != '' && $_POST["strasse"] != ''  && $_POST["stadt"] != ''  && $_POST["plz"] != ''  && $_POST["email"] != ''  && $_POST["text"] != '' )
			{
			$emailContent[] = '<p>Folgende Daten wurden über das Kontaktformular übermittelt:</p>';
			$emailContent[] = '<p>Name: '.$name.'</p>';
			$emailContent[] = '<p>Firma: '.$firma.'</p>';
			$emailContent[] = '<p>Straße: '.$strasse.'</p>';
			$emailContent[] = '<p>Stadt: '.$stadt.'</p>';
			$emailContent[] = '<p>Postleitzahl: '.$plz.'</p>';
			$emailContent[] = '<p>Staat: '.$staat.'</p>';
			$emailContent[] = '<p>Telefon: '.$telefon.'</p>';
			$emailContent[] = '<p>Fax: '.$fax.'</p>';
			$emailContent[] = '<p>E-Mail: '.$email.'</p>';
			$emailContent[] = '<p>Homepage: '.$homepage.'</p>';
			$emailContent[] = '<p>Anfrage: '.$text.'</p>';
			
			$emailContent[] = '</body>
			</html>
			';
			
			$emailCompleteContent = implode( '', $emailContent );
			
			try {
				$mail = new PHPMailer(true); //New instance, with exceptions enabled
			
				//$body             = file_get_contents('contents.html');
				$body = $emailCompleteContent;
				$body             = preg_replace('/\\\\/','', $body); //Strip backslashes
			
				$mail->IsSMTP();                           // tell the class to use SMTP
				$mail->SMTPAuth   = true;                  // enable SMTP authentication
				$mail->Port       = 25;                    // set the SMTP server port
				$mail->Host       = "localhost"; // SMTP server
				//$mail->Username   = "name@domain.com";     // SMTP server username
				//$mail->Password   = "password";            // SMTP server password
			
				$mail->IsSendmail();  // tell the class to use Sendmail
			
				$mail->AddReplyTo("mail@trash-mail.de","name");
			
				$mail->From       = "sender@mail.net";
				$mail->FromName   = "name";
			
				$to = "empfänger@mail.de";
			
				$mail->AddAddress($to);
			
				$mail->Subject  = "Test Kontaktformular";
			
				$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
				$mail->WordWrap   = 80; // set word wrap
			
				$mail->MsgHTML($body);
			
				$mail->IsHTML(true); // send as HTML
			
				$mail->Send();
				echo 'Wir werden so schnell wie möglich mit Ihnen in Kontakt treten.<br>';
			} catch (phpmailerException $e) 
				{
					echo $e->errorMessage('Fehler');
				}
			}
			else
			{
				echo '<br>Sie haben nicht alle <span class="special-info">* Pflichtfelder</span> Ausgefühlt.<br>';
			}
		}
		//pflichtfelder anfrage ende

		?>
		
		<input type="submit" value="Absenden" name="Senden" class="input-submit">
 
Zuletzt bearbeitet:

javaDeveloper2011

Erfahrenes Mitglied
Hi,

beim Form giebts nen onsubmit-Attribut, schreib da "return deinePrueffunktion();" rein.
deinePrueffunktion muss true zurückgeben, wen alles richtig ist (Überprüfung der Felder mit JS vor Absenden und Prüfung durch PHP). Ansonsten false zurückgeben und die fehlerhaften inputs markieren.
Rahmen per Javascript setzen kannst du so:
Javascript:
document.getElementById('idDesInputs').style.border = 'red 2px solid';

Gruß javaDeveloper2011
 
Zuletzt bearbeitet von einem Moderator:

andreano

Mitglied
to javaDelevoper2011 ich habe das auch so ungefähr gelöst wie du es schon gesagt hast.
blos ein bisschen anders dazu werde ich in kürze ( wenn ich fertig bin ) die lösund hier posten.

Gruß Aleks und danke