einfaches Kontaktformular Problem

designerstudio

Grünschnabel
Hallo zusammen ich bin relativ neu hier und brauche dringend hilfe...

Wenn ich das Kontaktformular absende erhalte ich eine mail mit der zusammenfassung.Die Checkboxen (fett markiert) die man ausgewählt hat werden nicht angezeigt...

Hier mein Code:


PHP:
<?php 
$your_email ='test@gmail.com';// <<=== update to your email address

session_start();
$errors = '';
$firma= '';
$vorname= '';
$nachname = '';
$strassenr = '';
$plzort = '';
$telefon = '';
$emailen = '';
$telefonisch = '';
$preislisteunterlagen = '';
$displaymiete = '';
$displayverkauf = '';
$led_lampen = '';
$visitor_email = '';
$user_message = '';

if(isset($_POST['submit']))
{
	$firma = $_POST['firma'];
	$vorname = $_POST['vorname'];
	$nachname = $_POST['nachname'];
	$strassenr = $_POST['strassenr'];
	$plzort = $_POST['plzort'];
	$telefon = $_POST['telefon'];
	$telefonisch = $_POST['telefonisch'];
	$emailen = $_POST['emailen'];
	$displaymiete = $_POST['displaymiete'];
	$displayverkauf = $_POST['displayverkauf'];
	$led_lampen = $_POST['led_lampen'];
	$preislisteunterlagen = $_POST['preislisteunterlagen'];

	$visitor_email = $_POST['email'];
	$user_message = $_POST['message'];
	///------------Do Validations-------------
	if(empty($nachname)||empty($visitor_email))
	{
		$errors .= "\n $nachname und Email sind erforderliche Felder. ";	
	}
	if(IsInjected($visitor_email))
	{
		$errors .= "\n Geben Sie eine g&uuml;ltige Email-Adresse an!";
	}
	if(empty($_SESSION['6_letters_code'] ) ||
	  strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
	{
	//Note: the captcha code is compared case insensitively.
	//if you want case sensitive match, update the check above to
	// strcmp()
		$errors .= "\n Der Captcha Code stimmt nicht &uuml;berein!";
	}
	
	if(empty($errors))
	{
		//send the email
		$to = $your_email;
		$subject="Formular test.ch";
		$from = $your_email;
		$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
		
		$body = "$nachname hat das Kontaktformular von Swissdisplay.ch ausgefüllt\n".
		"Firma: $firma\n".
		"Vorname: $vorname\n".
		"Nachname: $nachname\n".
		"Strasse / Nr: $strassenr\n".
		"PLZ / Ort: $plzort\n".
		"Telefon: $telefon\n".
		"kontaktaufnahme: $telefonisch\n".
		"kontaktaufnahme: $emailen\n".
		"kontaktaufnahme: $preislisteunterlagen\n".
		"Information: $displaymiete\n".
		"Information: $displayverkauf\n".
		"Information: $led_lampen\n".
		"Email: $visitor_email \n".
		"Message: \n ".
		"$user_message\n".
		"IP: $ip\n";	
		
		$headers = "From: $from \r\n";
		$headers .= "Reply-To: $visitor_email \r\n";
		
		mail($to, $subject, $body,$headers);
		
		header('Location: thank-you.html');
	}
}

// Function to validate against any email injection attempts
function IsInjected($str)
{
  $injections = array('(\n+)',
              '(\r+)',
              '(\t+)',
              '(%0A+)',
              '(%0D+)',
              '(%08+)',
              '(%09+)'
              );
  $inject = join('|', $injections);
  $inject = "/$inject/i";
  if(preg_match($inject,$str))
    {
    return true;
  }
  else
    {
    return false;
  }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
	<title>Contact Us</title>
<!-- define some style elements-->
<style>
label,a, body 
{
	font-family : Arial, Helvetica, sans-serif;
	font-size : 12px; 
		
}

.eingabe{
position:relative;

float:left;	
margin-top:-17px;
margin-left:37px;
width:190px;

	
		}
label{
position:relative;
float:left;	
text-align:left;
margin-left:-40px;
		}	
		

.err
{
	font-family : Verdana, Helvetica, sans-serif;
	font-size : 12px;
	color: red;
}
</style>	
<!-- a helper script for vaidating the form-->
<script language="JavaScript" src="scripts/gen_validatorv31.js" type="text/javascript"></script>	
</head>

<body>





<div id='contact_form_wrapper'>
<div id='contact_icon'></div>
<?php
if(!empty($errors)){
echo "<p class='err'>".nl2br($errors)."</p>";
}
?>
<div id='contact_form_errorloc' class='err'></div>
<form method="POST" name="contact_form" 
action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> 

<p><br>
<label for='firma'>Firma:</label><br>
<input type="text" name="firma" class="eingabe" value='<?php echo htmlentities($firma) ?>' >
</p>

<p>
<label for='vorname'>Vorname:</label><br>
<input type="text" name="vorname" class="eingabe" value='<?php echo htmlentities($vorname) ?>' >
</p>


<p>
<label for='nachname'>Nachname:</label><br>
<input type="text" name="nachname" class="eingabe" value='<?php echo htmlentities($nachname) ?>' >
</p>


<p>
<label for='strassenr'>Strasse / Nr.:</label><br>
<input type="text" name="strassenr" class="eingabe" value='<?php echo htmlentities($strassenr) ?>' >
</p>


<p>
<label for='plzort'>PLZ / Ort:</label><br>
<input type="text" name="plzort"  class="eingabe"value='<?php echo htmlentities($plzort) ?>' >
</p>


<p>
<label for='telefon'>Telefon:</label><br>
<input type="text" name="telefon"  class="eingabe" value='<?php echo htmlentities($telefon) ?>' >
</p>


<p>
<label for='kontaktaufnahme'>Kontaktaufnahme:</label><br>

<input type="checkbox" name="telefonisch" value='<?php echo htmlentities($telefonisch) ?>' > Telefon<br>

<input type="checkbox" name="emailen" value='<?php echo htmlentities($emailen) ?>' > E-Mail<br>

<input type="checkbox" name="preislisteunterlagen" value='<?php echo htmlentities($preislisteunterlagen) ?>' > Preisliste / Unterlagen f&uuml;r LED-Werbung<br>
</p>



<p>
<label for='information'>Information:</label><br>

<input type="checkbox" name="displaymiete" value='<?php echo htmlentities($displaymiete) ?>' > Displaymiete<br>

<input type="checkbox" name="displayverkauf" value='<?php echo htmlentities($displayverkauf) ?>' > Displayverkauf<br>

<input type="checkbox" name="led_lampen" value='<?php echo htmlentities($led_lampen) ?>' > LED-Lampen<br>
</p>


<p>
<label for='email'>Email: </label><br>
<input type="text" name="email" class="eingabe" value='<?php echo htmlentities($visitor_email) ?>'>
</p>

<p>
<label for='message'>Mitteilung:</label> <br>
<textarea name="message"  class="eingabe" rows=8 cols=30><?php echo htmlentities($user_message) ?></textarea>
</p><br><br><br><br>
<p>


<img src="captcha_code_file.php?rand=<?php echo rand(); ?>" id='captchaimg'><br>

<label for='message'>Code hier einf&uuml;gen :</label><br>

<input id="6_letters_code" name="6_letters_code" cols=10 type="text"><br>

<small>Can't read the image? click <a href='javascript: refreshCaptcha();'>here</a> to refresh</small>
</p>


<input type="submit" value="Abschicken" name='submit'>
</form>

<script language="JavaScript">
// Code for validating the form
// Visit http://www.javascript-coder.com/html-form/javascript-form-validation.phtml
// for details
var frmvalidator  = new Validator("contact_form");
//remove the following two lines if you like error message box popups
frmvalidator.EnableOnPageErrorDisplaySingleBox();
frmvalidator.EnableMsgsTogether();

frmvalidator.addValidation("firma","req","Please provide your firma"); 
frmvalidator.addValidation("vorname","req","Please provide your vorname"); 
frmvalidator.addValidation("nachname","req","Please provide your nachname"); 
frmvalidator.addValidation("strassenr","req","Please provide your Strasse"); 
frmvalidator.addValidation("plzort","req","Please provide your plzort"); 
frmvalidator.addValidation("telefon","req","Please provide your telefon"); 
frmvalidator.addValidation("email","req","Please provide your email"); 
frmvalidator.addValidation("email","email","Please enter a valid email address"); 
</script>
<script language='JavaScript' type='text/javascript'>
function refreshCaptcha()
{
	var img = document.images['captchaimg'];
	img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
}
</script>


</div><!-------End contact_form_wrapper-------->

</body>
</html>
 
Zuletzt bearbeitet:
Nichts für ungut aber es ist grausam so viel Code zu lesen wenn er nicht richtig formatiert ist. Schau dir mal bitte diese Seite an und bearbeite dann deinen Beitrag nochmal.

Davon abgesehen hast du wohl der POST-Variablen den falschen Namen gegeben. Das Textfeld heißt "strassenr" die POST-Variable aber "strassennr".

Mehr habe ich mir noch nicht angeschaut weil es so wiklich kaum zu lesen ist.
 
Hab mal PHP-Tags gesetzt und beim Text das Boild entfernt.

Ich habe aber keine Lust soviel unkomentierten Code zu lesen und zu versuchen zu verstehen was da überhaubt abgeht
 
Der Fehler mit den Checkboxen wird der sein das sie (die Checkboxen) keinen festen Value-Wert haben.

In einem Textfeld kannst du etwas eingeben, deshalb muss da der Value-Wert entsprechend der Eingabe gesetzt werden.

Eine Checkbox kann aber nur markiert sein oder eben nicht, für den Fall das sie markiert ist liefert sie aber immer den gleichen Wert.

PHP:
<input type="checkbox" name="led_lampen" value="led" <?php if (isset($_POST["led_lampen"])) echo 'checked="checked"'; ?> >

Ist die Checkbox markiert, gibt es beim Auswerten die entsprechende POST-Variable, deshalb immer mit ISSET prüfen und entsprechend auswerten.
 
Das hatte dir Yaslaw schon abgenommen.

Das was du jetzt nochmal geändert hast, hat nichts gebracht. Hättest du aber eigentlich sehen müssen nachdem du es gespeichert hast.

Die Frage ist ob du dir angeschaut hast was ich dir als Lösungsvorschlag geschrieben habe und ob es was geholfen hat!
 
Zurück