Beste,

Het volgende heb ik aan de hand:

Zodra ik de pagina bezoek met het formulier word dit direct gepost op een of andere manier.

<?php
//initialisatie | geef begin waarde aan variabelen|
$naam = '';
$leeftijd = '';
$lijnkleurnaam = '#CCCCCC';
$lijnkleurleeftijd = '#CCCCCC';

//verwerk formulier | als er op submit/proceed word geklikt
if(isset($_POST['proceed'])){
	$naam =  trim($_POST['naam']); // Storing value naam
	$leeftijd = trim($_POST['leeftijd']);  // Storing value leeftijd
}

//als het veld naam leeg is geef error
if ($_POST['naam'] == '') {
	$lijnkleurnaam = '#FF0000';
}

//als het veld leeftijd leeg is geef error
if ($_POST['leeftijd'] == ''){
    	$lijnkleurleeftijd = '#FF0000';
}
?>

en het formulier

<form action="" method="post">
<input type="text" name="naam"/>
<input type="text" name="leeftijd"/>  
<input type="submit" name="proceed" value="Verzenden">
</form>


De velden zijn leeg als de pagina geladen word, maar toont dus nu al de errors terwijl het pas na de submit moet worden gecontroleerd zoals in de code staat.
wat gaat er fout?


Gr. Jop
Dat zijn Notice-errors. Dit komt omdat je de $_POST-variabelen al oproept zonder dat je gecontroleerd hebt of er ge-POST is. De oplossing is om dit eerst te controleren:


<?php
//initialisatie | geef begin waarde aan variabelen|
$naam = '';
$leeftijd = '';
$lijnkleurnaam = '#CCCCCC';
$lijnkleurleeftijd = '#CCCCCC';

//verwerk formulier | als er op submit/proceed word geklikt
if($_SERVER['REQUEST_METHOD']=="POST"){
    $naam =  trim($_POST['naam']); 
    $leeftijd = trim($_POST['leeftijd']);

	if ($_POST['naam'] == '') {
	    $lijnkleurnaam = '#FF0000';
	}

	//als het veld leeftijd leeg is geef error
	if ($_POST['leeftijd'] == ''){
     	   $lijnkleurleeftijd = '#FF0000';
	}
}
?>

Inderdaad, Thanks :)

Reageren