PhP Email formulier niet gevuld check fail
Pagina: « vorige 1 2 3 volgende »
if(!empty($_POST['naam']));
if(!empty($_POST['email']));
Nee, je controleert nu alleen opmerking. De andere twee vallen buiten de boot om het zo maar even te zeggen
Zucht, inderdaad, k ben niet goed met IF statements. Hoe moet ik het script dan alle 3 de inputs laten checken ivp alleen 1? (ik had het inderdaad getest door opmerking leeg te laten en ik dacht dus dat het werkte)
Undefined index
Beter is het om isset te gebruiken ipv !empty().
Ik denk zelf dat je namen niet goed zijn naam of email.
Hoe bedoel je mijn namen niet goed? en ozzie, ik zou graag isset gebruiken maar het werkt dan niet, deze oplossing van tim werkt iniedergeval bij het checken van 1 ding, dus tenzij jij de oplossing weet, hou ik het denk ik zo ;) toch (alvast) bedankt voor je tijd!
Als dit alles werkt zou je !empty nog kunnen vervangen door isset of beide gebruiken,
Code (php)
Gewijzigd op 11/12/2012 22:27:00 door Tim S
nope die werkt niet, dan post ie dus gewoon weer alles terwijl het leeg is, bij de vorige optie checkte hij tenminste nog 1 ;)
Code (php)
Zelf getest dus moet werken die van net was een foutjes. Kan ook maar dan doe je dit:
if(isset($_POST['naam']) || isset($_POST['email']) etc.
Maar && is minder schrijfwerk.
Gewijzigd op 11/12/2012 23:09:45 door Tim S
empty kan pas na php 5.4 ( wat niet iedereen nog heeft ) gebruikt worden zoals jullie het nu doen. in php 5.3 zou je onterecht een false waarde krijgen bij sommige dingen waar je geen false wilt krijgen.
om het correct te doen zou ik de volgende manier hanteren om te zorgen dat je altijd goed zit.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
// Maak een array voor de foutmeldingen.
$errors = Array();
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
// Controleer of het formulier is verzonden.
if( !isset($_POST['naam']) || $_POST['naam'] == '' ) {
$errors[] = 'vul een naam in...'; // Naamveld is niet correct
}
if( !isset($_POST['achternaam']) || $_POST['achternaam'] == '' ) {
$errors[] = 'vul een achternaam in...'
}
}
?>
// Maak een array voor de foutmeldingen.
$errors = Array();
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
// Controleer of het formulier is verzonden.
if( !isset($_POST['naam']) || $_POST['naam'] == '' ) {
$errors[] = 'vul een naam in...'; // Naamveld is niet correct
}
if( !isset($_POST['achternaam']) || $_POST['achternaam'] == '' ) {
$errors[] = 'vul een achternaam in...'
}
}
?>
om te kijken of je formulier nu goed is ingvuld of niet kan je het volgende doen
en als je wel foutmeldingen hebt... stuur je deze netjes door naar je html gedeelte. ( wel in een UL natuurlijk want het blijft een lijst )
Code (php)
Gewijzigd op 11/12/2012 23:21:11 door Reshad F
Toch moet ik Tim heel erg bedanken Reshad, want hij werkt nu wel goed, volledig getest! Ik moet er wel ff bij zeggen dat ik geluk heb dat mijn webhoster PHP 5.5 al gebruikt, daar zijn zij ook erg trots op. (sohosted) Toch zal ik deze pagina ff in mijn bladwijzers zetten en nog een keer doornemen als het niet zo laat is, zodat ik nog wat kan leren. Echt super bedankt allemaal! Ik vind dit echt een tof forum.
Toch zou ik de code van Tim ook nog even nakijken want die is ook niet geheel correct.
Probeer dit eens:
Quote:
empty kan pas na php 5.4 ( wat niet iedereen nog heeft ) gebruikt worden zoals jullie het nu doen. in php 5.3 zou je onterecht een false waarde krijgen bij sommige dingen waar je geen false wilt krijgen.
Lijkt me sterk heb een tijd geleden deze tutorial gevolgd van 7 jaar terug:
http://www.phphulp.nl/php/script/php-algemeen/simpel-cms-dmv-tinymce/885/simpelcmsdmvtinymce/662/
Het verschil tussen && en || weet ik niet precies het voorbeeld met && werkt prima
|| wordt ook gebruikt in de tutorial die henk heeft gevolgd.
Toevoeging op 12/12/2012 00:42:40:
Hoe worden trouwens || genoemd?
De 1e betekent EN, de 2e betekent OF.
Ha nee ik moet nog veel leren, ik gebruikte voor 'en' in het begin maar 1 & maar zeker leerzaam, maar ik had me verkeken, het was idd 5.4 :P
Ah ik gebruik eigenlijk altijd &&.
Henk, gebruik mijn code dan komt het goed.
In mijn voorbeeld heb ik if(isset($_POST['naam']) && $_POST['email']). Deze code werkt ook gewoon maar het kan zijn dat ik het mis heb...