index.php
********

[code]
<?php
if(file_exists("./includes/config.inc.php")) {
  include_once("./includes/config.inc.php");
} else {
  die("HET BESTAND \"config.inc.php\" KON NIET GEVONDEN WORDEN!!!");
}

$pagina = new Sjabloon;
$pagina->titel_Instellen("Leden registratie pagina");
$pagina->toon_Begin();

if(count($_POST)) {
if(verplichte_Velden()) {
  if(check_Email($email)) {  
    if($wachtwoord == $wachtwoordverificatie) {  
      if(check_leeftijd()) {
	    echo "<p>Je bent <span class=\"nadruk\">" . $leeftijd . "</span> jaar jong en je bent een <span class=\"nadruk\">" . $geslacht . "</span>.</p>";
	    echo "Hier kan je dan de ingegeven data verder verwerken en bijvoorbeeld wegschrijven naar een database";
	  }
    } else {
	  echo "Je wachtwoorden komen niet overeen!!!";
	}
  } else {
    echo "<p>Je hebt een foutief <span class=\"nadruk\">E-mail adres</span> ingevuld!!!</p>";
  }
}
}
?>
<h1>Vul onderstaand formulier in:</h1>
<form action="<? $_SERVER['PHP_SELF'] ?>" method="post">
  <table style=\"border-top-style: ridge" style="border-left-style: ridge" style="border-top-style: outset" style="border-top-style: outset" width="430" bgcolor="#006666" border="3" bordercolor="#FFFF99">
    <tr>
      <td>Gebruikersnaam:</td>
      <td align="center"><input id="gebrnaam" name="gebruikersnaam" type="text" value="<? echo $gebruikersnaam ?>" maxlength="15"></td>
    </tr>
    <tr>
      <td>Wachtwoord:</td>
    <td align="center"><input id="wachtwoord" name="wachtwoord" type="password" value="<? echo $wachtwoord ?>" maxlength="25"></td>
    </tr>
    <tr>
      <td>Verifiëer Wachtwoord:</td>
      <td align="center"><input id="wachtwoordverificatie" name="wachtwoordverificatie" type="password" value="<? echo $wachtwoordverificatie ?>" maxlength="25"></td>
    </tr>
    <tr>
      <td>Voornaam:</td>
      <td align="center"><input id="voornaam" name="voornaam" type="text" value="<? echo $voornaam ?>" maxlength="50"></td>
    </tr>
    <tr>
    <td>Familienaam:</td>
      <td align="center"><input id="familienaam" name="familienaam" type="text" value="<? echo $familienaam ?>" maxlength="50"></td>
    </tr>
    <tr>
      <td>Geslacht:</td>
      <td align="center">
        <input class="radio" type="radio" name="geslacht" value="M">Man
        <input class="radio" type="radio" name="geslacht" checked="checked" value="V">Vrouw
      </td>
    </tr>
    <tr>
      <td>Geboortedatum:</td>
      <td align="center">
        <? dropdownbox_Datum();?>
      </td>
    </tr>
      <td>E-Mail Adres:</td>
      <td align="center"><input id="email" name="email" type="text" value="<? echo $email ?>" maxlength="150"></td>
    </tr>
    <tr>
      <td></td>  
      <td align="right"><input class="button" name="submit" type="submit" value="Doorsturen"></td>
	</tr>
  </table>
</form><br>
<?
$pagina->toon_Einde();
?>
[/code]


functies.inc.php
*************

[code]
<?
class Sjabloon {
    var $paginatitel;
    var $begin_weergegeven;

    function __construct() {
        $this->paginatitel       = (string) "";
        $this->begin_weergegeven = FALSE;
    }

    function titel_Instellen($string) {
        $string = trim($string);
        if (strlen($string) > 0) {
            $this->paginatitel = $string;
            return TRUE; 
        } else {
            return FALSE;
        }
    }
	
    function toon_Begin() {
		global $stylesheet;
		if ($this->begin_weergegeven) {
            exit("<br /><b>Fout:</b> het paginabegin is al weergegeven.<br />");
        } elseif (strlen($this->paginatitel) < 1) {
            exit("<br /><b>Fout:</b> deze webpagina heeft geen titel.<br />");
        } else {
            echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n";
			echo "<html>\n";
            echo "<head>\n";
            echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n";
            echo "<title>". $this->paginatitel . "</title>\n";
			echo "<link href=\"" . $stylesheet . "\"  rel=\"stylesheet\" type=\"text/css\">\n";
			echo "</head>\n";
			echo "<body>\n";
            $this->begin_weergegeven = TRUE;
        }
    }

    function toon_Einde() {
        if ($this->begin_weergegeven) {
            echo "<address>Copyright &copy; ";
            echo date("Y");
            echo " JB-Services<br />";
            echo "Alle rechten voorbehouden.</address>\n";
            echo "</body>\n";
            echo "</html>\n";
        } else {
            exit("<br /><b>Fout:</b> het paginabegin is nog niet weergegeven.<br />");
        }
    }
}


/************************************************
 * Functie: toon_Melding()						*
 * Parameters: $melding -- Eigen Foutmelding	*
 * Doel: Melding weergeven met opmaak			*
 * Aanroep: toon_Melding($melding);				*
 ************************************************/
function toon_Melding($melding)
{    
  echo "<span class=\"melding\">" . $melding . "</span><br>";
  pagina_Terug();
}


/****************************************************************************
 * Functie: pagina_Terug()													*
 * Parameters:																*
 * Doel: Link weergeven met Opmaak om terug te keren naar de vorige pagina	*
 * Aanroep: pagina_Terug();													*
 ****************************************************************************/
function pagina_Terug()
{    
  echo "<p align=\"center\">";
  echo "<span class=\"pagina_terug\">Klik <a href=\"javascript:history.back(-1)\">hier</a> om terug te gaan</span>";
  echo "</p>";
}


/********************************************************
 * Functie: check_Email()								*
 * Parameters: $email -- te controleren mail adres		*
 * Doel: Nagaan of een email adres geldig is of niet	*
 * Aanroep: check_Email($email);						*
 ********************************************************/
function check_Email($email) { 
    if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) { 
        $host = explode('@', $email); if(checkdnsrr($host[1].'.', 'MX') ) 
        return true; if(checkdnsrr($host[1].'.', 'A') ) 
        return true; if(checkdnsrr($host[1].'.', 'CNAME') ) 
        return true; 
    } 
    return false; 
}


/****************************************************************
 * Functie: bereken_Leeftijd()									*
 * Parameters:	$geb_dag -- geboorte dag						*
 *				$geb_maand -- geboorte maand					*
 *				$geb_jaar -- geboorte jaar						*
 * Doel: Leeftijd berekenen adhv een geboortedatum				*
 * Aanroep: bereken_Leeftijd($geb_dag, $geb_maand, $geb_jaar);	*
 ****************************************************************/
function bereken_Leeftijd($geb_dag, $geb_maand, $geb_jaar)
{
    $dag = date("j");
    $maand = date("m");
    $jaar = date("Y");
	
	$geb_maand = 0 . $geb_maand;
 
    $leeftijd = ($jaar - $geb_jaar - 1);
    if($geb_maand < $maand) {
	  $leeftijd += 1;
    } elseif($geb_maand == $maand && $geb_dag <= $dag) {
      $leeftijd += 1;
    }
    return $leeftijd;
}


/****************************************************
 * Functie: instellen_Geslacht()						*
 * Parameters:	$geslacht -- ingave van geslacht	*
 * Doel: geslacht teruggeven als "Vrouw" of "Man"	*
 * Aanroep: instellen_Geslacht($geslacht);				*
 ****************************************************/
function instellen_Geslacht($geslacht)
{
  $geslacht = strtolower($geslacht);
  if($geslacht == "v" || $geslacht =="vrouw" || $geslacht =="vr" ) {
    $geslacht = "Vrouw";
  } elseif(($geslacht == "m" || $geslacht =="man")) {
	  $geslacht = "Man";
  }
  return $geslacht;
}


/************************************************
 * Functie: dropdownbox_Datum()					*
 * Parameters:									*
 * Doel: Drop_Down_Box met dag, maand en jaar	*
 * Aanroep: dropdownbox_Datum();				*
 ************************************************/
function dropdownbox_Datum()
{
  global $maanden;
  $dag=(isset($_POST['dag']))?$_POST['dag']:date('d');
  $maand=(isset($_POST['maand']))?$_POST['maand']:date('m');
  $jaar=(isset($_POST['jaar']))?$_POST['jaar']:date('Y');
  echo "<select name=\"dag\">";
          for($a=1;$a<=31;$a++){
            echo '<option value="'.$a.'"';
            echo ($a==$dag)?' selected': $dag;
            echo '>'.$a.'</option>'."\n";
          }
  echo "</select>";
  echo "<select name=\"maand\">";
          for($a=1;$a<=12;$a++){
            echo '<option value="' . $a . '"';
            echo ($a==$maand)?' selected':'';
            echo '>'.$maanden[$a].'</option>'."\n";
          }
  echo "</select>";
  echo "<select name=\"jaar\">";
          for($a=1900;$a<=date('Y');$a++){
            echo '<option value="'.$a.'"';
            echo ($a==$jaar)?' selected':'';
            echo '>'.$a.'</option>'."\n";
          }
  echo "</select>";
}



/********************************************
 * Functie: instellen_Veld()				*
 * Parameters:	$veld -- in te stellen veld	*
 * Doel: instellen van een verplicht veld	*
 * Aanroep: instellen_Veld($veld);			*
 ********************************************/
function instellen_Veld($veld)
{
  $veld = trim($veld);
  $veld = (isset($veld) && !empty($veld))?$veld:"verplicht veld";
  return $veld;
}


function verplichte_Velden()
{
  $controle = FALSE;
  $namen_velden = array_keys($_POST);
  $lege_velden = 0;
  $niet_ingevuld = 0;
  $tel = 0;
  foreach($_POST as $waarde) {
    $waarde = trim($waarde);
	if(empty($waarde)) {
      echo "Het veld <span class=\"nadruk\">" . $namen_velden[$tel] . "</span> mag niet blanco zijn!!!<br>";
	  $lege_velden++;
	} elseif($waarde == "verplicht veld") {
	  echo "Het is verplicht om een <span class=\"nadruk\">" . $namen_velden[$tel] . "</span> in te vullen!!!<br>";
	  $niet_ingevuld++;
	}
	$tel++;
  }
  if($niet_ingevuld == 0 && $lege_velden == 0) {
    $controle = TRUE;
  }
  return $controle;
}


function check_Leeftijd() {
  global $min_leeftijd;
  $controle = FALSE;
  if($_POST['dag'] != date('d') || $_POST['maand'] != date('m') || $_POST['jaar'] != date('Y')){
    $leeftijd = bereken_Leeftijd($_POST['dag'], $_POST['maand'], $_POST['jaar']);
    $geslacht = instellen_Geslacht($_POST['geslacht']);
    if($leeftijd < $min_leeftijd) {
      echo "<p>Je mag niet jonger zijn dan <span class=\"nadruk\">" . $min_leeftijd . "</span> jaar!!!</p>";
    } else {
	  $controle = TRUE;
    }
  } else {
    echo "<p>Je hebt nog geen <span class=\"nadruk\">Geboortedatum</span> ingegeven!!!</p>";
  }
  return $controle;
}
?>
[/code]


style.css
*******

/* CSS Document */
body {
	background-color: #000000;
	color: #FFFFFF;
}
input
{
	width : 230px;
	text-align: right;
	font-weight: bold;
	color: #000033;
	background: #CCCCCC;
	border: 1px solid #CC9900;
}

.button
{
	width: 100px;
	text-align: center;
	color: #000033;
	background: #CCCCCC;
	border: 2px outset #CC9900;
} 
.radio
{
	width: 25px;
	color: #000033;
	background: #CCCCCC;
	border: 2px outset #CC9900;
} 
.nadruk {
	color: #FF0000;
	text-decoration: underline overline;
	font-weight: bold;
}


blankfields.js
***********

[code]
// JavaScript Document
// met dank aan Peter Paul Koch - http://www.quirksmode.org
function getObj (name)
{
	if (document.getElementById) {
		this.obj = document.getElementById(name);
		this.style = document.getElementById(name).style;
	}
	else if (document.all) {
		this.obj = document.all[name];
		this.style = document.all[name].style;
	}
	else if (document.layers) {
		this.obj = document.layers[name];
		this.style = document.layers[name];
	}
}

var _gebrnaam;
var _voornaam;
var _familienaam;
var _wachtwoord;
var _wachtwoordverificatie;
var _email;

function init () {
  _gebrnaam = new getObj ('gebrnaam');
  _gebrnaam.obj.onfocus = handle_gebrnaam_focus;
  _gebrnaam.obj.onblur = handle_veld_blur;
  
  _voornaam = new getObj ('voornaam');
  _voornaam.obj.onfocus = handle_voornaam_focus;
  _voornaam.obj.onblur = handle_veld_blur;
  
  _familienaam = new getObj ('familienaam');
  _familienaam.obj.onfocus = handle_familienaam_focus;
  _familienaam.obj.onblur = handle_veld_blur;
  
  _wachtwoord = new getObj ('wachtwoord');
  _wachtwoord.obj.onfocus = handle_wachtwoord_focus;
  _wachtwoord.obj.onblur = handle_veld_blur;
  
  _wachtwoordverificatie = new getObj ('wachtwoordverificatie');
  _wachtwoordverificatie.obj.onfocus = handle_wachtwoordverificatie_focus;
  _wachtwoordverificatie.obj.onblur = handle_veld_blur;
  
  _email = new getObj ('email');
  _email.obj.onfocus = handle_email_focus;
  _email.obj.onblur = handle_veld_blur;
}
  
function handle_gebrnaam_focus () {
  if (_gebrnaam.obj.value == 'verplicht veld') {
    _gebrnaam.obj.value = '';
  }
}
	
function handle_voornaam_focus () {
  if (_voornaam.obj.value == 'verplicht veld') {
    _voornaam.obj.value = '';
  }
}
	
function handle_familienaam_focus () {
  if (_familienaam.obj.value == 'verplicht veld') {
    _familienaam.obj.value = '';
  }
}

function handle_wachtwoord_focus () {
  if (_wachtwoord.obj.value == 'verplicht veld') {
    _wachtwoord.obj.value = '';
  }
}
	
function handle_wachtwoordverificatie_focus () {
  if (_wachtwoordverificatie.obj.value == 'verplicht veld') {
    _wachtwoordverificatie.obj.value = '';
  }
}

function handle_email_focus () {
  if (_email.obj.value == 'verplicht veld') {
    _email.obj.value = '';
  }
}

function handle_veld_blur () {
  if (_gebrnaam.obj.value == '') {
    _gebrnaam.obj.value = 'verplicht veld';
  }
  if (_voornaam.obj.value == '') {
    _voornaam.obj.value = 'verplicht veld';
  }
  if (_familienaam.obj.value == '') {
    _familienaam.obj.value = 'verplicht veld';
  }
    if (_wachtwoord.obj.value == '') {
    _wachtwoord.obj.value = 'verplicht veld';
  }
  if (_wachtwoordverificatie.obj.value == '') {
    _wachtwoordverificatie.obj.value = 'verplicht veld';
  }
  if (_email.obj.value == '') {
    _email.obj.value = 'verplicht veld';
  }
}
window.onload = init;
[/code]