Hey jongens.

Ik ben bezig met een formcontrole voor een form op mijn website.

http://www.lost-platoon.be/aanmelden.php

Wat ik graag zou hebben is, dat wanneer de gebruiker bepaalde gegevens niet invult, dat er dan een melding komt te staan naast het teskvak. Is er wel iets correct ingevuld, maar er zijn nog andere zaken verkeerd ingevuld, dat dan de juiste waarde al ingevuld staat.

Snappen jullie wat ik bedoel.

Eigenlijk is het zoals op Jan zijn site, voor het phphulp uitje.

Hoe begin ik hier best aan?

Groetjes

Reinhart
Ik zou even naar JavaScript kijken. I.p.v. een submit-button maak je een button die een JS-functie uitvoert die kijkt of alle ingevuld is. Als dat zo is submit je het form (document.forms('formnaam').submit();) en anders zet je de tekst neer (na elk veld een <span> met een id, en dan met innerHTML iets erin zetten)
<?php
if (empty($variabele1) OR empty($variabele2)) {
echo "alle velden invullen";
}
else {
//Goed
}
?>

of

<?php
if (empty($variabele1)) {
echo "alle velden invullen";
}
elseif (empty($variabele2)) {
echo "alle velden invullen";
}
else {
//Goed
}
?>
@markiej: waarom empty(); ? dit lijkt mij een beter oplossing:

<?php
if( isset( $var1, $var2, $var3, $var4 ) ) {
//form versturen
}
else {
//waarschuwing geven
}
?>
Moet je voor elk veld appart doen:

<?php

if ($_SERVER['request_method']=="post"){
  if (empty($_POST['veld1'])){
    // veld is niet ingevuld
    $veld1error= 'Je moet veld1 invullen';
    }
  elseif(!regex(voorwaarde,$_POST['veld1'])){
    //er wordt niet aan voorwaarde voldaan
    veld1error= 'Er wordt niet aan de voorwaarde voldaan';
    }
?>
<input type="text" name="veld1"><?php if(isset($veld1error)){ echo $veld1error } ?>
Reinhart,

Hier heb je de bron van mijn contactformulier, dit is de totale bron, dus de helft zul je wel niet nodig hebben, maar beter te veeel dan te weinig ;-)


<?php
session_start();
include 'config.php';

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	$melding = NULL;
	
	foreach ($_POST as $key => $value) //split de $_POST op in key en value
    {
		if(empty($_POST[$key]))
		{
			$melding[$key] = '<font color="red"><b>vul het '.$key.' veld in</b></font>';
		}
		
		$_SESSION['contactform'][$key] = $value;
	}
	
	if(!isset($melding))
	{
		if((!stristr($_POST['e-mail'], '@')) || (!stristr($_POST['e-mail'], '.')))
		{
			$melding['e-mail'] = '<font color="red"><b>vul een geldig e-mail adres in</b></font>';
		}
		else
		{
			$message = $_POST['naam'].' heeft contact opgenomen via de site.<br />';
			$message .= 'Zijn/haar e-mail adres is: '.$_POST['e-mail'].'.<br />';
			$message .= 'Zijn haar bericht is: '.$_POST['bericht'];

			$headers = "From: test <[email protected]>\n"; //set From header
			$headers .= "Content-type: text/html; charset=iso-8859-1\n"; //zet html header
			$headers .= "X-Priority: 3\n"; //zet priority (3 voor hoge prioriteit)
			$headers .= "X-MSMail-Priority: High\n"; //header voor het zo snel mogelijk versturen door de mail server
			$headers .= "X-Mailer: PHP/".phpversion(); //header die aangeeft waarvan gemailt is

			if(@mail($mailnaar, 'Mail vanaf de site, met onderwerp: '.$_POST['onderwerp'], $message, $headers))
			{
				echo 'Succesvol gemailt';
				unset($_SESSION['contactform']);
			}
			else
			{
				$melding['bericht'] = 'Error tijdens mailen, uw e-mail is niet verzonden. U kunt handmatig een e-mail sturen naar '.$mailnaar.', of het later nog een proberen.
							<br />
							Uw invoer is onthouden';
			}
		}
	}
}

	include 'header.php';
?>
  <h1 class="title">Contact</h1>
  <p>
		<form action="#" method="post">
		<table>
			<tr>
				<td>
					Naam:
				</td>
				<td>
					<input name="naam" type="text" <?=isset($_SESSION['contactform']['naam']) ? 'value="'.$_SESSION['contactform']['naam'].'"' : '' ?> />
					<?=isset($melding['naam']) ? $melding['naam'] : '' ?>
				</td>
			</tr>
			<tr>
				<td>
					E-mail adres:
				</td>
				<td>
					<input name="e-mail" type="text" <?=isset($_SESSION['contactform']['e-mail']) ? 'value="'.$_SESSION['contactform']['e-mail'].'"' : '' ?> />
					<?=isset($melding['e-mail']) ? $melding['e-mail'] : '' ?>
				</td>
			</tr>
			<tr>
				<td>
					Onderwerp:
				</td>
				<td>
					<input name="onderwerp" type="text" <?=isset($_SESSION['contactform']['onderwerp']) ? 'value="'.$_SESSION['contactform']['onderwerp'].'"' : '' ?> />
					<?=isset($melding['onderwerp']) ? $melding['onderwerp'] : '' ?>
				</td>
			</tr>
			<tr>
				<td>
					Bericht:
				</td>
				<td>
					<textarea name="bericht" cols="50" rows="5"><?=isset($_SESSION['contactform']['bericht']) ? $_SESSION['contactform']['bericht'] : '' ?></textarea>
					<?=isset($melding['bericht']) ? $melding['bericht'] : '' ?>
				</td>
			</tr>
			<tr>
				<td>
					<input name="submit" type="submit" value="Verstuur!">
				</td>
			</tr>
		</table>
		</form>
		<?php
	include 'footer.html';
?>

Reageren