Hey allemaal,
Ik heb op mijn website een contactformulier zeg maar (half zelf gemaakt en half gegoogled op google!!) in php maar nu wil ik zeg maar dat het veldje waar ze hun emailadres in moeten vullen "gecontrolleerd" wordt of er bv wel een @ in zit, of misschien zelfs een confirmmessage sturen naar die mail die ze opgeven.
Nu is mijn vraag hoe doe ik dat...Ik heb wel dat als ze een veld leeg laten dat ze dan een error krijgen maar ik ben nieuw zeg maar in php dus hoe krijg ik dit voor elkaar?
Alvast bedankt,
Time Records
Een aantal mogelijke manieren. Ofwel via javascript, waar je test op leeg, op karakters (kun je doen door gebruik te maken van een indexof('karakter die je wilt testen') ), dit koppel je aan een alert boodschap. Die boodschap verschijnt dan in een typische alertbox en de gebruiker kan enkel op ok klikken en komt terug bij het formulier waar hij de ontbrekende gegevens kan invullen. Indien voor alle testen geslaagd laat je het formulier submitten. Je submit button geef je dan mee onclick="return naamtestfunctie()".
In php kun je het natuurlijk wat professioneler laten ogen en dezelfde testen uitvoeren, maar dan laat je de pagina zichzelf weer oproepen indien niet alles correct is ingevuld met een foutboodschap bij de tekstvakken of bvb een focus op de tekstvakken die fout zijn ingevuld. Indien alles "correct" is ingevuld kun je hier dan opnieuw je verwerkingspagina of verwerkingsfunctie laten aanroepen.
Ik laat mijn emailformulieren testen op 'leeg', '@' en op '.'. Tot nu toe blijken deze testen voldoende te zijn...
Greetz
| Georgeboy wrote: |
Een aantal mogelijke manieren. Ofwel via javascript, waar je test op leeg, op karakters (kun je doen door gebruik te maken van een indexof('karakter die je wilt testen') ), dit koppel je aan een alert boodschap. Die boodschap verschijnt dan in een typische alertbox en de gebruiker kan enkel op ok klikken en komt terug bij het formulier waar hij de ontbrekende gegevens kan invullen. Indien voor alle testen geslaagd laat je het formulier submitten. Je submit button geef je dan mee onclick="return naamtestfunctie()".
In php kun je het natuurlijk wat professioneler laten ogen en dezelfde testen uitvoeren, maar dan laat je de pagina zichzelf weer oproepen indien niet alles correct is ingevuld met een foutboodschap bij de tekstvakken of bvb een focus op de tekstvakken die fout zijn ingevuld. Indien alles "correct" is ingevuld kun je hier dan opnieuw je verwerkingspagina of verwerkingsfunctie laten aanroepen.
Ik laat mijn emailformulieren testen op 'leeg', '@' en op '.'. Tot nu toe blijken deze testen voldoende te zijn...
Greetz |
Oke dankjewel, ik ga testen of ik er zelf uit kom zo niet dan horen jullie van me 
dit soort van validatie kan je inderdaad beter client side behandelen dus dmv javascript.
je kan dit uiteraard ook server side (dus bv dmv php) maar daardoor heb je eerst nog eens een roundtrip naar de server, moet je je pagina weer helemaal opnieuw opbouwen en moet je de hele afhandeling doen voor het voorinvullen van de andere gegevens die de bezoeker al had ingevuld.
javascript is perfect geschikt om reeds een eerst opvang te doen (bv door jouwveld.value="", of jouwveld.length>0 of iets van die aard)
de validatie van de waarde die er dan wel zou staan kun je het krachtigst met reguliere expressies uitvoeren, als je die nog niet onder de knie hebt is dat zeer nuttig om in je todo lijst te zetten)
good practise is uiteraard om toch nog in je server side scripting een vorm van vangnet te voorzien voor het geval de bezoeker er toch door geraakt zou zijn zonder verplichte velden in te vullen. je hebt namelijk nog altijd van die nitwits die denken de held uit te hangen door hun javascript uit te schakelen.
Ik heb ooit een website gemaakt met een WK-poultje. Daarin heb ik te maken gehad met hetzelfde probleem. Ik heb uiteindelijk wel een vrij volledige beveiliging tegen verkeer invullen kunnen maken, zie hier de code:
| Code: |
/*ingevoerde gegevens*/
$username = $_POST["username"];
$wachtwoord = $_POST["wachtwoord"];
$wachtwoord2 = $_POST["wachtwoord2"];
$voornaam = $_POST["voornaam"];
$tussenvoegsel = $_POST["tussenvoegsel"];
$achternaam = $_POST["achternaam"];
$mail = $_POST["mail"];
$leeftijd = $_POST["leeftijd"];
/*controleingevulde gegevens*/
if(!$mail == "" && (!strstr($mail,"@") || !strstr($mail,".")))
{
echo "<h2>e-mail adres is niet geldig</h2>\n";
}
else if(empty($username) || empty($wachtwoord) || empty($voornaam) || empty($achternaam) || empty($leeftijd)) {
echo "<h2>Alle velden met een sterretje moeten worden ingevuld</h2>\n";
}
else if ($wachtwoord<>$wachtwoord2)
{echo "wachtwoord bevestiging ongeldig";}
else{
/*ingevulde gegevens kloppen, zet hier de code die uitgevoerd moet worden*/
}
|
Er zitten een aantal slordige dingen in deze code, maar het werkt wel uiteindelijk. Het eerste deel haalt de ingevulde gegevens op, vervolgens word alles gecontroleerd. Eerst word het e-mailadres gecontroleerd op syntax. Vervolgens worden de lege velden gecontroleerd.
Er is al eerder gesuggereerd dat je dit meter mbv javascript zou kunnen oplossen, dat is inderdaad ook een zeer goede mogelijkheid. Mocht je dit gaan gebruiken dan is het wel handig als je zorgt dat alle goed ingevulde gegevens weer terugkomen in het formulier. Het is erg frustrerend als je alles opnieuw moet invullen.
| timerecords wrote: |
Hey allemaal,
Ik heb op mijn website een contactformulier zeg maar (half zelf gemaakt en half gegoogled op google!!) in php maar nu wil ik zeg maar dat het veldje waar ze hun emailadres in moeten vullen "gecontrolleerd" wordt of er bv wel een @ in zit, of misschien zelfs een confirmmessage sturen naar die mail die ze opgeven.
Nu is mijn vraag hoe doe ik dat...Ik heb wel dat als ze een veld leeg laten dat ze dan een error krijgen maar ik ben nieuw zeg maar in php dus hoe krijg ik dit voor elkaar?
Alvast bedankt,
Time Records |
ik denk dat je op superveel php-websites zo`n contact formulier direct eraf kan halen zelf weet ik neit hoe je dat moet aanpassen omdat ik zelf ook nog niet zo goed ben met php 
Eigenlijk is dit niet zo heel moeilijk, PHP heeft namelijk standaard een heel krachtige functie om te controleren of bepaalde invoer wel voldoet aan een patroon. Deze functie heet 'regular expressions.'
Regular expressions kan je leren op deze pagina (http://www.phpbuilder.com/columns/dario19990616.php3), en op deze pagina (http://be.php.net/manual/nl/function.ereg.php) staat meer uitleg over de phpfunctie ereg() die je nodig zult hebben. Laat je niet afschrikken, het is makkelijker dan het lijkt en regular expressions always come in handy. 
| Gieter wrote: |
Eigenlijk is dit niet zo heel moeilijk, PHP heeft namelijk standaard een heel krachtige functie om te controleren of bepaalde invoer wel voldoet aan een patroon. Deze functie heet 'regular expressions.'
Regular expressions kan je leren op deze pagina (http://www.phpbuilder.com/columns/dario19990616.php3), en op deze pagina (http://be.php.net/manual/nl/function.ereg.php) staat meer uitleg over de phpfunctie ereg() die je nodig zult hebben. Laat je niet afschrikken, het is makkelijker dan het lijkt en regular expressions always come in handy.  |
javascript maakt ook gebruik van reguliere expressies..... alles wat hier gezegd is kan met javascript, heb het zelf ook ooit is moeten doen in een website waar geen php mocht gebruikt worden.
Zoek dus eens op tutorials van reguliere expressies en javascript.
| Gieter wrote: |
Eigenlijk is dit niet zo heel moeilijk, PHP heeft namelijk standaard een heel krachtige functie om te controleren of bepaalde invoer wel voldoet aan een patroon. Deze functie heet 'regular expressions.'
Regular expressions kan je leren op deze pagina (http://www.phpbuilder.com/columns/dario19990616.php3), en op deze pagina (http://be.php.net/manual/nl/function.ereg.php) staat meer uitleg over de phpfunctie ereg() die je nodig zult hebben. Laat je niet afschrikken, het is makkelijker dan het lijkt en regular expressions always come in handy.  |
Dankjewel, ik denk dat ik daar maar eens kijkje ga nemen want het is me nog steeds niet gelukt en hopelijk lukt het hier wel mee.
| Reign wrote: |
javascript maakt ook gebruik van reguliere expressies..... alles wat hier gezegd is kan met javascript, heb het zelf ook ooit is moeten doen in een website waar geen php mocht gebruikt worden.
Zoek dus eens op tutorials van reguliere expressies en javascript. |
Wat raden jullie me aan, om het met javascript of met php te doen...Ik ken overigens helemaal niks van javascript... 