title image


Smiley Client- und serverseitige Validierung
Hi,



wenn dein Webspace den Einsatz einer Serverskriptsprache wie PHP erlaubt, dann kannst du neben der folgenden ressourcen schonenden aber nicht von allen Internetsurfern geduldeten/aktivierten clientseitigen Lösung über JavaScript das Formular dann zusätzlich noch serverseitig über PHP prüfen, damit Besucher mit deaktivierten JavaScript sich nicht so durchmogeln können:



1. Lösung mit Client- und Servervalidierung UND integrierten Form Mailer (falls dein Webspace PHP unterstützt):



formular.php (Online-Demo - mit Texteingabefeld zur Empfängerangabe anstatt Hiddenfield wie bei diesem Beispielcode)







<?php



if(isset($_REQUEST["ok"]))

{

$status = true;



$felder = array("name" => "Name","absender" => "E-Mail Adresse", "nachrichtenfeld" => "Nachricht");



//Serverseitige Validierung

while(list($key, $value) = each($felder))

{

if(empty($_REQUEST[$key]))

{

$fehlende_felder[] = $value;

$status = false;

}

}



if($status)

{

$header = "From:".$_REQUEST["absender"]."\n";

$header .= "Content-Type: text/html";



$emailbody = '

<html>

<head>

<title>Mail von '.$_REQUEST["name"].'</title>

</head>

<body>

<h1>Betreff: '.$_REQUEST["betreff"].'</h1>

'.$_REQUEST["nachrichtenfeld"].'

</body>

</html>';



//Mail verschicken

mail($_REQUEST["empfaenger"],$_REQUEST["betreff"],$emailbody,$header);



//Bestätigungsseite ausgeben



?>



<html>

<head>

</head>

<body>

<p>Die E-Mail wurde erfolgreich versandt und kommt in etwa 5 Minuten beim Empfänger an.</p>

<p><a href="formular.php">zurück</a></p>

</body>

</html>



<?php



exit;

}

else

{

$meldung = "Bitte füllen Sie alle fehlenden Felder aus: ".implode(",",$fehlende_felder);

}

}



?>



<html>

<head>

<script type="text/javascript">

<!--



function check(obj)

{

var status = true;



var fehlende_felder = new Array();



var i = 0;



while(i<felder.length)

{

if(obj.elements[felder[i]].value == "")

{

fehlende_felder[fehlende_felder.length] = felder[i+1];



status = false;

}



i+=2;

}



if(status)

{

alert("Danke, dass Sie das Formular vollständig ausgefüllt haben.");

}

else

{

alert("Bitte füllen Sie folgende Felder aus: " + fehlende_felder.join(","));

}



return status;

}



var felder = new Array("name","Name","absender","E-Mail Adresse","nachrichtenfeld","Nachricht");



//-->

</script>

</head>

<body>

<form action="formular.php" method="post" onSubmit="return check(this);">

<input type="hidden" name="betreff" value="Programatrix">

<div align=center>

<h5>Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="Text" name="name" value="<?=$_REQUEST["name"]?>" size="30" maxlength="60"><br/>

Emailadresse:

<input type="Text" name="absender" value="<?=$_REQUEST["absender"]?>" size="30" maxlength="60"><br/>

<br/>

Nachricht:</h5>

<textarea name="nachrichtenfeld" cols="50" rows="10"><?=$_REQUEST["nachrichtenfeld"]?></textarea><br/>

<table>

<tr>

<td><input type="submit" name="ok" value="Abschicken"></td>

<td><img src="bilder/spacer.gif" style="width:50px;"></td></td>

<td><input type="button" value="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zur&uuml;ck&nbsp;&nbsp;&nbsp;&nbsp;" onClick="history.back()"></td>

</tr>

</table>

<br/>

<br/>

</div>

</form>

<?php



if(!empty($meldung))

{



?>



<p><b><?=$meldung?></b></p>



<?php



}



?>

</body>

</html>







2. Lösung NUR mit Clientvalidierung:



formular.html (Online-Demo - mit Texteingabefeld zur Empfängerangabe anstatt Hiddenfield wie bei diesem Beispielcode)







<html>

<head>

<script type="text/javascript">

<!--



function check(obj)

{

var status = true;



var fehlende_felder = new Array();



var i = 0;



while(i<felder.length)

{

if(obj.elements[felder[i]].value == "")

{

fehlende_felder[fehlende_felder.length] = felder[i+1];



status = false;

}



i+=2;

}



if(status)

{

alert("Danke, dass Sie das Formular vollständig ausgefüllt haben.");

}

else

{

alert("Bitte füllen Sie folgende Felder aus: " + fehlende_felder.join(","));

}



return status;

}



var felder = new Array("name","Name","absender","E-Mail Adresse","nachrichtenfeld","Nachricht");



//-->

</script>

</head>

<body>

<form action="http://free.maxhost.de/scripts/formmail.php" method="post" onSubmit="return check(this);">

<input type="hidden" name="betreff" value="Programatrix">

<input type="hidden" name="userid" value="scouty">

<input type="hidden" name="empfaenger" value="webmaster@programatrix.de">

<input type="hidden" name="ok_url" value="http://www.programatrix.de/bestaetigung.html">

<input type="hidden" name="formname" value="Programatrix">

<input type="hidden" name="pflicht" value="absender">

<div align=center>

<h5>Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="Text" name="name" value="" size="30" maxlength="60"><br/>

Emailadresse:

<input type="Text" name="absender" value="" size="30" maxlength="60"><br/>

<br/>

Nachricht:</h5>

<textarea name="nachrichtenfeld" cols="50" rows="10"></textarea><br/>

<table>

<tr>

<td><input type="submit" name="ok" value="Abschicken"></td>

<td><img src="bilder/spacer.gif" style="width:50px;"></td></td>

<td><input type="button" value="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zur&uuml;ck&nbsp;&nbsp;&nbsp;&nbsp;" onClick="history.back()"></td>

</tr>

</table>

<br/>

<br/>

</div>

</form>

</body>

</html>







MfG Murdoch!







aktuelle Winamp Playlist                Hörgewohnheiten (Last.fm)



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: