Beste
ik heb dit formulier in elkaar gestoken en dit werkt naar behoren,

alleen zou ik graag willen dat het stuk validatie regel 41 tot 187 ergens anders willen hebben alleen weet niet hoe ik dit het best kan doen.

ook had ik graag deze validatie via Ajax laten lopen maar zou niet weten hoe ik dit moet aanpakken, vooral op het vlak van email.

hoe kan ik de gegevens die de klant heeft ingevoerd na het versturen als overzicht laten weergeven en als de klant dit wederom bevestigd dat dan de gegevens pas in de DB worden opgeslagen.

dit is mijn aanpassing

<?php
if ( $_SERVER['REQUEST_METHOD'] == 'POST'  &&
   isset($_POST['name'], $_POST['lastname'], $_POST['email'], $_POST['address1'], $_POST['towncity'], $_POST['postcode'], $_POST['phone'], $_POST['dogname'], $_POST['chip'], $_POST['ras'], $_POST['weight'], $_POST['gender'], $_POST['dinner'], $_POST['socialdog'], $_POST['socialhuman'], $_POST['flea'], $_POST['carre'], $_POST['parvovirose'], $_POST['hepatitis'], $_POST['kennelhoest'] ) )
   {
  //  Er zijn gegevens verstuurd naar deze pagina! 

  //  We gaan de errors in een array bijhouden
  $aErrors = array();

  //  Een naam bevat letters en spaties (minimaal 3)
  if ( !isset($_POST['name']) or !preg_match( '~^[\w ]{3,}$~', $_POST['name'] ) ) {
    $aErrors['name'] = 'Uw voornaam moet ingevuld zijn';
  }
  //  Een achternaam bevat letters en spaties (minimaal 3)
  if ( !isset($_POST['lastname']) or !preg_match( '~^[\w ]{3,}$~', $_POST['lastname'] ) ) {
    $aErrors['lastname'] = 'Uw Achternaam moet ingevuld zijn';
  }

  //  Een email-adres is wat ingewikkelder
  if ( !isset($_POST['email']) or !preg_match( '~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $_POST['email'] ) ) {
    $aErrors['email'] = 'Uw email adres moet ingevuld zijn';
  }

  //  Een adres heeft letters, cijfers, spaties (minimaal 5)
  if ( !isset($_POST['address1']) or !preg_match( '~^[\w\d ]{5,}$~', $_POST['address1'] ) ) {
    $aErrors['address1'] = 'Uw adres moet ingevuld zijn';
  }
  //  Een plaatsnaam heeft letters, spaties en misschien een apostrof
  if ( !isset($_POST['towncity']) or !preg_match( '~^[\w\d\' ]*$~', $_POST['towncity'] ) ) {
    $aErrors['towncity'] = 'Uw woonplaats moet ingevuld zijn';
  }

  //  Een postcode heeft vier cijfers, eventueel een spatie, en twee cijfers
  if ( !isset($_POST['postcode']) or !preg_match( '~^\d{4}~', $_POST['postcode'] ) ) {
    $aErrors['postcode'] = 'Uw postcode moet ingevuld zijn';
  }
  //  Een telefoonnummer heeft minimaal 2 cijfers, eventueel een spatie, gevolgd door 9 cijfers
  if ( !isset($_POST['phone']) or !preg_match('^[0-9]{10}$^', $_POST['phone'] ) ) {
    $aErrors['phone'] = 'Uw telefoon/gsm nummer moet ingevuld zijn';
  }
  //  Een hondenaam bevat letters en spaties (minimaal 3)
  if ( !isset($_POST['dogname']) or !preg_match( '~^[\w ]{2,}$~', $_POST['dogname'] ) ) {
    $aErrors['dogname'] = 'de naam van uw hond ingevuld zijn';
  }
 //  Een chipnummer heeft letters, cijfers, spaties (minimaal 5)
  if ( !isset($_POST['chip']) or !preg_match( '~^[\w\d ]{5,}$~', $_POST['chip'] ) ) {
    $aErrors['chip'] = 'Het chipnummer moet ingevuld zijn';
  }
//  Een rasnaam bevat letters en spaties (minimaal 3)
  if ( !isset($_POST['ras']) or !preg_match( '~^[\w ]{3,}$~', $_POST['ras'] ) ) {
    $aErrors['ras'] = 'Het ras van uw hond moet ingevuld zijn';
  }
 //  het gewicht heeft vier cijfers, eventueel een spatie, en twee letters
  if ( !isset($_POST['weight']) or !preg_match( '~^\d{2} ?[a-zA-Z]{2}$~', $_POST['weight'] ) ) {
    $aErrors['weight'] = 'het gewicht moet ingevuld zijn';
  }
  // geslacht
	if(!isset($_POST['gender'])){
		$aErrors['gender'] = "Geslacht moet ingevuld zijn.";
  }
 // voeding
	if(!isset($_POST['dinner'])){
		$aErrors['dinner'] = "Voeding moet ingevuld zijn";
 }
 // Sociaal met honden
	if(!isset($_POST['socialdog'])){
		$aErrors['socialdog'] = "Sociaal met honden moet ingevuld zijn";
 }
 // Sociaal met mensen
	if(!isset($_POST['socialhuman'])){
		$aErrors['socialhuman'] = "Sociaal met mensen moet ingevuld zijn";
 }

  // ontvlooid
	if(!isset($_POST['flea'])){
		$aErrors['flea'] = "ontvlooid moet ingevuld zijn";
 }
 // Carré
	if(!isset($_POST['carre'])){
		$aErrors['carre'] = "Carré moet ingevuld zijn";
 }
 // parvovirose
	if(!isset($_POST['parvovirose'])){
		$aErrors['parvovirose'] = "parvovirose moet ingevuld zijn";
 }
 // hepatitis
	if(!isset($_POST['hepatitis'])){
		$aErrors['hepatitis'] = "Hepatitis moet ingevuld zijn";
 }
 //Kennelhoest
	if(!isset($_POST['kennelhoest'])){
		$aErrors['kennelhoest'] = "Kennelhoest moet ingevuld zijn";
 }


  if ( count($aErrors) == 0 ) {
    //  We hebben alle gegevens

    //  Gegevens verwerken!
    
    //  Volgende pagina aub
    header('Location: http://');
    die();
  }
  
}

/************************************************************************************************************
* Hier kunnen we een hele grote streep trekken. Alles wat hierboven was, was verwerking van de data, acties *
* bepalen etc. Alles wat hieronder staat, draait alleen maar om de uitvoer en de feedback. Niets hieronder  *
* schrijft dingen naar de database, niets hierboven schrijft iets naar het scherm. Zo houden we het model   *
* van de pagina gescheiden van de weergave!                                                                 *
************************************************************************************************************/

?>

En wat werkt er niet en wat wel?
zoals eerder gezegd als ik nu het formulier submit krijg ik niet de melding dat de niet ingevulde verplichte velden ingevuld dienen te worden

terwijl dat bij het origineel wel het geval is

ik doe dus iets verkeerd maar ik weet niet wat
Bestaan die velden wel?

Wat zegt een print_r($_POST);
Heb je wel een echo in een foreach() ergens?
waar moet ik deze invoeren?
Alle fouten die gevonden zijn in de validatie, worden in een array verzameld.
Deze array moet je wel doorlopen d.m.v. een foreach().
die staat in mijn formulier

 <form action="contact.php" method="post" class="cmxform">
      <?php
      if ( isset($aErrors) and count($aErrors) > 0 ) {
        print '<ul class="errorlist">';
        foreach ( $aErrors as $error ) {
          print '<li>' . $error . '</li>';
        }
        print '</ul>';
      }
      ?>
- Aar - op 26/07/2011 13:07:03

Bestaan die velden wel?

Wat zegt een print_r($_POST);


Op de eerste regel.
<?php
echo '<pre>' . print_r($_POST, true) . '</pre>';
?>
SanThe moet ik deze op de eerste regel van de code die ik om 12u58 gepost heb in voeren?

Reageren