PHP Form validatie

Status
Niet open voor verdere reacties.

feint

Gebruiker
Lid geworden
3 jun 2008
Berichten
273
hey allemaal.

ik zit nog steeds met hetzelfde probleem als een paar weken geleden...
mijn form werkt op het feit na dat de foutmelding voor foutief email en telefoonnummer er al staan vanaf het begin.

het betrekt zich om dit stukje php.
PHP:
if (isset($_POST['email']) && $_POST['email']=="") {
echo "<div style='color: red;'>U heeft geen E-mail adres ingevuld.<br></div>";
$ok = "0"; }


if(!eregi('^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3})?)$', $_POST['email'])) {
 echo "<div style='color: red;'>Dit is geen geldig E-mail adres.<br></div>";
$error = "0";
}

else {
$error="1";
}

de $error is voor controle van het versturen van de mail.
het probleem is dat het formulier altijd: dit is geen geldig e-mail adres aangeeft. dit geld ook voor telefoonnummer

PHP:
if (isset($_POST['telefoonnummer']) && $_POST['telefoonnummer']=="") {
echo "<div style='color: red;'>U heeft geen Telefoonnummer ingevuld.<br></div>";
$ok = "0"; }

if(!eregi('^[0-9]{10}$', $_POST['telefoonnummer'])) {
 echo "<div style='color: red;'>Dit is geen geldig Telefoonnummer.<br></div>";
$error = "0";
}

else{
$error="1";
}
het formulier is opgesteld als het volgende

HTML:
<tr> 
   <td width="20%">Telefoonnummer:*</td> 
   <td width="80%"><input type="text" name="telefoonnummer" size="30" value="<?php echo $_POST['telefoonnummer'];?>"></td> 
</tr>

een test staat online op http://www.mathvandermullen.nl/checkinput2.php
mocht je de rest nodig denken te hebben, laat het even weten ;)

alvast bedankt:thumb:
 
Laatst bewerkt door een moderator:
Code:
(isset($_POST['email']) && $_POST['email']=="")

Volgens mij geef je hier aan dat de mail zowel vol als leeg moet zijn ?

Vandeweek had ik wat uitleg geschreven en toen kreeg ik de opmerking dat het allemaal teveel letters waren, maar ik kan het echt niét genoeg benadrukken:
Schrijf je code zo makkelijk mogelijk, vooral als je bugs hebt.

Dus zo:

$mail=$_Post['email'];
if ($mail=='')
{if ($mail!='')
{allebei ok}
else
{niet allebei ok}};

(of zoiets)

Als alles werkt kun je je code eventueel shortenen. :)
 
De validatie op lege velden klopt.. het enige wat die daar doet is: Als submit word gebruikt en email word gepost maar email is leeg geef error.. dit klopt en werkt ook naar behoren..

alleen bij de email validatie op inhoud doet die direct de foutmelding bij het begin... nu snap ik wel waarom die dat doet.. omdat het veld niet klopt vanaf het begn af (er is niks ingevuld dus kan het ook nooit email@host.nl zijn).. maar ik weet niet hoe ik het zo kan schrijven dat die pas gaat kijken op inhoud zodra er iets is ingevuld (dus na de eerste validatie op lege velden).

alvast bedankt voor je reactie:thumb:
 
Je kunt hetvolgende gebruiken:

PHP:
<?php
  if ( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) {

    // Hier komen al je checks.

  }
?>

Op deze manier wordt er alleen wat gecontroleerd als het formulier verstuurd is.
 
Thx, hij doet het :D wist dat ik iets was vergeten.
 
Ok het formulier is nu werkend, nu had ik nog een laatste vraag. :o

heeft iemand een website waar ik kan vinden hoe ik de errors achter de tabel krijg van het onderdeel dus als volgt

Naam: | zogenaamd de tabel | U heeft geen naam ingevuld!


alvast bedankt voor de replies. ben al een stuk verder als eerst :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan