Ik probeer al een week om volgende 2 scripts samen te voegen. Heb al van alles geprobeerd maar krijg altijd een wit scherm.
De scripts heb ik gevonden bij phptuts.

Het gaat over de datum controle checkdate die ik in het eerste script wil invoegen.

<?php include('connect.php'); ?>


<div id="onlineboeking">
<?php
//ini_set('display_errors', 1);
//error_reporting(E_ALL);
session_start();

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    // Zorgen dat de array met errors leeg is.
    $_SESSION['errors'] = array();
    $_SESSION['input'] = array();
   // Velden in het formulier definiëren
    $formuliervelden = array(
		
		'dag'=> 'select',
       'maand'=> 'select',
       'jaar'=> 'select',
		'tocht' => 'select',
         'naam' => 'text',
        'straat' => 'text',
        'postcode' => 'text',
		'woonplaats' => 'text',
		'land' => 'text',
		'telefoon' => 'text',
		'telthuis' => 'text',
		'geboortejaar' => 'select',
		'lengte' => 'text',
		'gewicht' => 'text',
		'email' => 'text',
		'fb' => 'text',
		 'mv' => 'radio',
		 'vlucht' => 'radio',
        'idnummer' => 'text',
        'akkoord' => 'checkbox'
    );
	
    // Velden waar geen controle op uitgevoerd hoeft te worden.
    $no_check = array('idnummer');
    
    // Loop alle elementen uit de $_POST array langs
    foreach($formuliervelden as $veld => $type)
    {
        if($type == 'checkbox')
        {
            if(empty($_POST[$veld]) && !in_array($veld, $no_check))
            {
                $_SESSION['errors'][$veld] = true;
                $errors[] = 'Je moet de checkbox "'.$veld.'" aanvinken';
            }
            else
            {
                $_SESSION['input'][$veld] = $_POST[$veld];
            }
        }    
        elseif($type == 'radio')
        {
            if(empty($_POST[$veld]) && !in_array($veld, $no_check))
            {
                $_SESSION['errors'][$veld] = true;
                $errors[] = 'Kies een optie bij "'.$veld.'"';
            }
		}
        else
        {
            if(isset($_POST[$veld]))
            {
                // Spaties voor en achter input verwijderen
                $value = trim($_POST[$veld]);
                
                // Ingevulde waarden in een sessievariabele zetten.
                $_SESSION['input'][$veld] = $value;
                
                // Controle van verschillende velden.
                // Velden waar geen controle op uitgevoerd hoeft te worden overslaan.
                if(in_array($veld, $no_check))
                {
                    continue;
                }
                // Controle op geldige postcode (4 cijfers + 2 letters).
              elseif($veld == 'postcode')
                {
                  if(!preg_match('/^[0-9]{4}[[:space:]]?[a-z]{2}$/i', $value))
                {
                   $_SESSION['errors'][$veld] = true;
                    $errors[] = 'Je hebt geen geldige postcode ingevuld.';
                }
           }
			   
                // Controle of rest van de velden ingevuld is.
                else
                {
                    if(empty($value))
                    {
                        $_SESSION['errors'][$veld] = true;
                        $errors[] = 'Je bent vergeten het veld '.$veld.' in te vullen.';            
                    }
                }
            }
            else
            {
                $errors[] = 'Het veld '.$veld.' ontbreekt aan het formulier';
            }
        }   	        
    }

[size=xsmall][i]Toevoeging op 26/06/2016 13:55:56:[/i][/size]

En nu het tweede dat ik wil invoegen in het eerste:

 // Datum controle
    if(isset($aData['maand'], $aData['dag'], $aData['jaar']) && checkdate($aData['maand'], $aData['dag'], $aData['jaar']))
    {
        $sDatum = $aData['dag'].'-'.$aData['maand'].'-'.$aData['jaar'];
    }
    else
    {
        $aErrors[] = 'Dit is geen geldige datum';
    } 
?>
Het zou ermee te maken kunnen hebben dat je session_start() moet aanroepen voordat je maar ook enkele HTML gebruikt.

Edit:
Uncomment regel 2 en 3 eens, misschien zie je dan enkele errors verschijnen.
Worden er helemaal geen foutmeldingen gegeven?

Zet het volgende dan eens boven aan in je script:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>

Verder laat je geen HTML zien.
session_start(); staat erin, ik weet niet waarom het hier volledig onderlijnd staat, maar het staat er in zoals het moet.
En de foutmeldingen aanzetten helpt ook niet, ik heb dat reeds verschillende keren geprobeerd.
Ten einde raad.
Voor ons is het niet zo makkelijk om alles te overzien vanaf hier dus sorry als ik stomme suggesties geef:
heeft je bestand waar je script in staat de .php extensie?
Heb je al een zeer eenvoudige echo 'test'; geprobeerd?
Kunnen wij (ik) de pagina ergens opvragen?
Ondersteund de webserver wel PHP?
Wat zie je als je de bron van de pagina bekijkt?
ja alles heeft de php extensie.
Echo op alle mogelijke plaatsen met alle mogelijke variabelen.
webserver ondersteunt php.



Het script lijkt gewoon te werken?

En als je het tweede script erbij zet krijg je alleen een wit scherm? Als je het weghaalt dan werkt het weer?
Klopt volledig

Toevoeging op 26/06/2016 21:31:56:

Het 2° script komt hieruit:
In dit script wordt er niet met $_SESSION gewerkt en de array $aData komt niet in het eerste script voor. Dus veronderstel ik dat ik $aData moet vervangen door iets anders, en dat heb ik al door van alles en nog wat gedaan.
kun je die hele lap code op zijn minst even tussen [ c o d e ] en [ / c o d e ] tags zetten (maar dan zonder al die spaties er tussen). Zie ook https://www.phphulp.nl/veel-gestelde-vragen/#bbcode

Dan lijkt het er op dat je een datum wilt controleren. welke datum is dat dan?
Opnieuw voor mij:

Het 2° script komt uit dit formulier:
Het is de bovenste datum waar je dag, maand en jaartal kunt ingeven.

 <form action="verwerk2.php" method="post">
    <p>
        <label for="voornaam">Voornaam:</label>
        <input type="text" name="voornaam" id="voornaam" />
    </p>
    <p>
        <label for="achternaam">Achternaam:</label>
        <input type="text" name="achternaam" id="achternaam" />
    </p>
    <p>
        <label>Geboortedatum:</label>
        <select name="dag">
            <?php
            for($i = 1; $i <= 31; $i++)
            {
                echo '<option value="'.$i.'">'.$i.'</option>';
            }
            ?>
        </select>
        <select name="maand">
            <?php
            for($i = 1; $i <= 12; $i++)
            {
                echo '<option value="'.$i.'">'.$i.'</option>';
            }
            ?>
        </select>
        <select name="jaar">
            <?php
            for($i = date('Y'); $i >= 1950; $i--)
            {
                echo '<option value="'.$i.'">'.$i.'</option>';
            }
            ?>
        </select>
    </p>
    <p>
        <input type="submit" value="Verzenden" />
    </p>
       </form> 
die tweede code moet ook tussen de if($_SERVER['REQUEST_METHOD'] == 'POST') komen te staan en dan zo:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// hier je bestaande code

if(checkdate($_POST['maand'], $_POST['dag'], $_POST['jaar']))
{
$sDatum = $_POST['dag'].'-'.$_POST['maand'].'-'.$_POST['jaar'];
}
else
{
$aErrors[] = 'Dit is geen geldige datum';
}
}
?>

Reageren