HTML Kontaktseite mit PHP

fredolin

Erfahrenes Mitglied
Hey Tutorialjaner,

Leute echt ich kann mich uffen Kopf stellen.. Dieses Formular macht mich NERVIG..
Letzter Ausweg seit IHR...

PHP:
<?php
error_reporting(E_ALL);
ini_set("display_errors","1");

$achtungImages = '<img src="pic/gif/achtung.gif" width="14" height="12" />';
	
	$orgidatum = date("d.m.Y", $row['datum']);  // ISO-8601 Format
			
			$feldvname = true;
			$feldnname = true;
			$feldemail = true;
			$feldmessages = true;
						
			$fehler = false;
			$ausgabe = '';
			
			echo 'Sendtest<br />';
			print_r($_POST);
			
		if(isset($_POST['senden'])){
			
						
			if(isset($_POST['vname']) && !is_array($_POST['vname']) && $_POST['vname'] != ''){
				$ausgabe .= 'Test';
			} else {
				$fehler[] .= ' Bitte Vorname angeben ';
				$feldvname = false;
			}
			
			if(isset($_POST['nname']) && !is_array($_POST['nname']) && $_POST['nname'] != ''){
				$ausgabe .= 'Test';
			} else {
				$fehler[] .= ' Bitte Nachname angeben ';
				$feldvname = false;
			}
			
			if(isset($_POST['email']) && !is_array($_POST['email']) && $_POST['email'] != ''){
				$ausgabe .= 'Test';
			} else {
				$fehler[] .= ' Bitte Email Adresse angeben ';
				$feldvname = false;
			}
			// Überprüfung ob die E-Mail auch eine richtig eingegeben ist @ und .domain
          	if(preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-z]{2,6}$/i", $_POST['email'])){
            	$fehler[] .= 'Bitte geben Sie ihre E-Mail Adresse <strong>richtig</strong> an!<br />';
            	$feldemail = false;
          	}
			if(isset($_POST['messages']) && !is_array($_POST['messages']) && $_POST['messages'] != ''){
				$ausgabe .= 'Test';
			} else {
				$fehler[] .= ' Bitte ein kurz Nachricht an Uns angeben <br />
					Mit wieviele Personen Sie anreisen<br />
					Ob wir uns um ein Hotel, Verpflegung usw. kümmern müssen?<br /> ';
				$feldvname = false;
			}
		}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
<!-- CSS //-->
<link rel="Stylesheet" type="text/css" href="scripts/css/style.css" />
<link rel="stylesheet" type="text/css" href="scripts/css/default.css" />
<link rel="stylesheet" type="text/css" href="scripts/css/lightwindow.css" />
<link rel="stylesheet" type="text/css" href="scripts/css/demo.css" />

<!-- JavaScript -->
<script type="text/javascript" src="scripts/js/prototype.js"></script>
<script type="text/javascript" src="scripts/js/effects.js"></script>
<script type="text/javascript" src="scripts/js/lightwindow.js"></script>
<script type="text/javascript" src="scripts/js/showpanel.js"></script>
</head>

<body>

	
			<div class="clear"></div>
			<div class="anfrageform" style="background-color: #D9D9D9;margin: 0;padding: 8px 8px 8px 8px;width:534px; height: 534px;-moz-opacity: 0.7;-khtml-opacity: 0.7;opacity: 0.7;filter:Alpha(opacity=70);">
				<form action="<?php htmlspecialchars($_SERVER['PHP_SELF'])?>?ID=<?php echo $row['ID'] ?>" method="post" enctype="text/plain">
				<div class="formular">
					<h1 class="h1text">Buchungsnafrage</h2>
					<span class="feld">Aktuelles Datum: </span>
					<span class="formfeld"><input type="text" name="senddatum" value="<?php echo $datum ?>"></span>
					<div class="clear"></div>
					<br>
					<h2 class="h2text"><strong>Kurze Angaben von Ihnen</strong></h2><br />
					<span class="feld">Ihren Vornamen:<br />
					<?php
						if(!$feldvname){
	      				echo '<span class="error">'. $achtungImages.''.$fehler[0].'</span>';
	     				} 
					?> </span>
					<span class="formfeld"><input type="text" name="vname" value="" /></span>
					<div class="clear"></div>
					<span class="feld">Ihren Nachnamen:<br />
					<?php
						if(!$feldnname){
	      				echo '<span class="error">'. $achtungImages.''.$fehler[1].'</span>';
	     				} 
					?> </span>
					<span class="formfeld"><input type="text" name="nname" value="" /></span>
					<div class="clear"></div>
					<span class="feld">Ihre E-Mail Adresse:<br />
					<?php
						if(!$feldemail){
	      				echo '<span class="error">'. $achtungImages.''.$fehler[2].'</span>';
	     				} 
					?> </span>
					<span class="formfeld"><input class="email" type="text" name="email" value="" /><br />
					<?php
						if(!$feldemail){
	      				echo '<span class="error">'. $achtungImages.''.$fehler[3].'</span>';
	     				}  
					?></span>
					<div class="clear"></div>
					<span class="feld">Kurzmitteilungen an uns von Ihnen<br />
					<?php
						if(!$feldmessages){
	      				echo '<span class="error">'. $achtungImages.''.$fehler[4].'</span>';
	     				}  
						?></span>
					<span class="formfeld"><textarea name="messages" rows="8" cols="35"></textarea></span>
					<div class="clear"></div>
					<span class="feld">Anfrage abschicken</span>
					<span class="formfeld"><input type="submit" name="senden" value="Absenden" onclick="javascript:alert('Butten wurde geklickt');" /></span>
				</div>
				</form>
			</div>
			<div class="clear"></div>
		<?php
closedb($dbhandle);
	?>	
</body>
</html>

Schaut einfach mal rein, kopiet Euch den COde.. ABer bitte sag mir warum die Feldüberprüfung ned klappt.. Hab dies so an die tausendmal gemacht.. aber es klappt net und es kommt keine Fehlermessages..

Danke vorab..
Fredolin
 
Zuletzt bearbeitet:
sehr komplex gemacht so eine formularprüfung geht auch einfacher ;o)
zb:
PHP:
if ((isset($_POST['senden'])) && ($_POST['senden'] ="insert")); {
if(strlen($_POST['vname']) <3) {
$fehler[0]="bitte Vorname eingeben"; } 
f(strlen($_POST['nname']) <3) {
$fehler[1]="bitte Nachname eingeben"; } 
if(!preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-z]{2,6}$/i", $_POST['email'])){
                $fehler[2] .= 'Bitte geben Sie ihre E-Mail Adresse <strong>richtig</strong> an!<br />';
              
              }
//usw//
if (count($fehler)=0) {
///Formular übertragen//
} 

}
HTML:
<span class="formfeld"><input type="text" name="vname" value=" <? if (!empty($fehler[0])) { echo $fehler[0]; } else echo $_POST[''vname'] ?>" /></span>
                    <div class="clear"></div>
 
danke für deine Antwort froog06

doch leider zeigt mir dann der Browser das Formular nicht an.. somit klappt es, zu mindesten bei mir, auch nicht.. aber warum mein script nicht funktioniert hat keiner heraus gefunden

Danke für Eure Mithilfe..

Ciao
Fredolin
 
Hi

Ich denke, dass du keine Fehlermeldung erhählst, weil du $fehler als false initialiserts, aber mit $fehler[] Elemente an ein array Anhängen würdest.
Abhilfen:
PHP:
// Entweder
$fehler = '';
$fehler .= 'KEin Vorname';
//Oder
$fehler = array();
$fehler[] = 'Kein Vorname';
for( $i = 0; $i < count($fehler); $i++){
   echo $fehler[$i];
}
Sollte funktionieren.
 
So Leute hab da mal wieder ne ganze Nacht durch gemacht.. aber mit Erfolg..
ich habe noch mal die Überprüfung neu geschrieben und nach einigen Fehlerhinweisen, habe ich doch zum Schluss es hin bekommen das die Überprüfung klappt. So wie ich die hier gepostet hab..

Aber fragt ned was falsch war..

Nochmals herzlichen Dank an Eure Mithilfe.. DANKE


Ciao
Fredolin
 
Dein Formular könntest du noch verbessern, indem du HTML Code, Javascript und Leerzeichen entfernst,... filterst. Dafür lässt du deine Variabeln durch folgende Funktion von mir laufen.

Code:
		 function clean($dokument){
	
			$suche = array ('@<script[^>]*?>.*?</script>@si',
						'@<[\/\!]*?[^<>]*?>@si', 
						'@([\r\n])[\s]+@',
						'@&(quot|#34);@i',
						'@&(amp|#38);@i',
						'@&(lt|#60);@i',
						'@&(gt|#62);@i',
						'@&(nbsp|#160);@i',
						'@&(iexcl|#161);@i',
						'@&(cent|#162);@i',
						'@&(pound|#163);@i',
						'@&(copy|#169);@i',
						'@&#(\d+);@e');
			
			$ersetze = array ('',
							  '',
							'\1',
							 '"',
							 '&',
							 '<',
							 '>',
							 ' ',
						chr(161),
						chr(162),
						chr(163),
						chr(169),
					  'chr(\1)');
			$cleantext = preg_replace($suche, $ersetze, $dokument);
			
			return htmlspecialchars($cleantext);
		}
 
Zurück