login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Een tweetal velden in formulier verplicht maken (Opgelost)

Offline Certius - 28/03/2010 20:11
Avatar van CertiusNieuw lid Hallo experts,

Ik heb even gekeken bij de voorbeelden maar vind het toch nog lastig waar ik een tweetal velden verplicht kan maken.

http://www.plaatscode.be/138997/

Zowel de naam als e-mailadres moeten verplicht worden ingevuld.

Alvast dank voor jullie suggesties.

Groet,

Robert

17 antwoorden

Gesponsorde links
Offline Jelmerholland - 28/03/2010 20:13 (laatste wijziging 28/03/2010 20:18)
Avatar van Jelmerholland PHP beginner Je doet met php een check of die leeg is..

Als je heel even hebt, dan ga ik even mijn script doorspitten naar de goede code...


== edit ==

  1. if(strlen($_POST['naam']) == 0){
  2. $error_msg .= "- Geen naam ingevuld<br/>";
  3. }//naam checken
  4.  
  5. if(!ereg("^[_a-zA-Z0-9-]+(\.[*@([a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $_POST['mail'])){
  6. $error_msg .="- Geen geldige e-mail ingevuld<br/>";
  7. }//email checken
  8.  
  9. //etc...


dan moet je een if-functie maken om te kijken of je $error_msg een waarde bevat.


  1. if(!empty($error_msg)){
  2. //Is er een error, dan wordt de ouput de error_msg
  3. echo $error_msg;
  4.  
  5. }else{
  6. //Is er geen error?... dan hier je mail() functie en stuff like that
  7. }


Dat is de structuur die je moet aanhouden, als je googled op:
'form check php' dan heb je ook wat mooie voorbeelden 
Offline Martijn - 28/03/2010 20:16
Avatar van Martijn Crew PHP doe je zo:

  1. if(!isset($_POST['vakje1'])){echo"Je moet vak 1 invullen!";}
  2. elseif(!isset($_POST['vakje2'])){echo"Je moet vak 2 invullen!";}
  3. else{
  4.  
  5. //hier je code om te verzenden
  6.  
  7. }

PHP.net: isset <- ff checken
Offline Certius - 31/03/2010 12:06 (laatste wijziging 31/03/2010 12:07)
Avatar van Certius Nieuw lid  Dank voor jullie input echter het werkt niet naar behoren.

Als ik niets invul krijg ik een foutmelding maar de aanmelding met lege velden wordt toch afgeleverd in mijn mailbox.

[url]http://plaatscode.be/139017/[/url]

Iemand suggesties?

Dank alvast,

Robert
Offline denniseik - 31/03/2010 12:09 (laatste wijziging 31/03/2010 12:12)
Avatar van denniseik Lid Logisch, je moet dat verstuurscript wel binnen je else haken plaatsen want nu gebeurt er dit: alles goed? => geen foutmelding + versturen. Fout? => foutmelding + versturen.
  1. <?
  2. if(!isset($_POST['naam'])){
  3. echo"Er is geen naam ingevuld!";
  4. }
  5. elseif(!isset($_POST['email'])){
  6. echo"Er is geen e-mail ingevuld!";
  7. }
  8. else{
  9. $to = "info@****";
  10. $subject = "Aanmelding Nieuwsbrief";
  11.  
  12. $mess = "\n\nnaam: ".$naam."\nemail: ".$email."" ;
  13.  
  14. mail ($to, $subject, $mess, $extra);
  15. header("Location: /index.html");
  16. }
  17. ?>
Offline Certius - 31/03/2010 12:25
Avatar van Certius Nieuw lid Dank je Dennis. Over het hoofd gezien maar ik heb jouw code gecopieerd en dit is wat gebeurd:

als ik niets invul dan op Aanmelden klik krijg ik inderdaad de melding 'Er is geen naam ingevuld'.

als ik wel een naam invul maar geen email krijg ik ook de melding 'Er is geen naam ingevuld'.

als ik zowel naam als email invul en ik druk op Aanmelden krijg ik ook de melding 'Er is geen naam ingevuld'.

Dus ergens gaat het nog mis.


Offline nick5556 - 31/03/2010 12:29 (laatste wijziging 31/03/2010 12:30)
Avatar van nick5556 PHP beginner Je hetb ook een functie PHP.net: empty. Of gewoon == "".

Je gebruikt:

  1. if($_SERVER['REQUEST_METHOD'] == 'POST') { //controleren of er iets gepost is.
  2. if(empty($_POST['hierdenaamvanjeinputveld'])) { // gebruik van empty
  3. $error = "error message<br />";
  4. }
  5. if($_POST['anderveld'] == "") { // gebruik van == ""
  6. $error .= "Error message<br />";
  7. }
  8. if(!isset($error)) {
  9. // hier je code om te verzenden, bijvoorbeeld op de manier van denniseik
  10. }
  11. }


Je kan het beste even deze tutorial van joël doorlezen over het verwerken van formulieren.

Nick.
Offline pijke - 31/03/2010 13:01
Avatar van pijke Gouden medaille

Lid
  1. <?PHP
  2. if(!empty($_POST['naam']) && !empty($_POST['email'])) {
  3. $to = "info@****.com";
  4. $subject = "Aanmelding Nieuwsbrief";
  5.  
  6. $mess = "\n\nnaam: ".$naam."\nemail: ".$email."" ;
  7.  
  8. mail ($to, $subject, $mess, $extra);
  9. header( 'location: www.****.com/index.php?action=extra&extra=A_nieuwsbrief&lang=NL' );
  10. }
  11. else {
  12. echo 'niet alle velden zijn ingevuld.';
  13. }
  14. ?>

en nog meer velden kunnen makkelijk worden toegevoegd
Offline Certius - 31/03/2010 13:51
Avatar van Certius Nieuw lid Dank Pijke maar ook als ik beide velden heb ingevuld blijf ik de melding houden 'niet alle velden zijn ingevuld'.

Groet,

Robert

ik bekijk de tutorial ook nog wel even.

Offline pijke - 31/03/2010 15:45
Avatar van pijke Gouden medaille

Lid
bij mij doet hij het gewoon.
je draait toch wel eerst het formulier en dan de verwerking 
Offline jaronneke - 31/03/2010 18:14
Avatar van jaronneke MySQL interesse zijn de namen van je veld ook 'naam' en 'email'
Offline Jelmerholland - 31/03/2010 18:44
Avatar van Jelmerholland PHP beginner @Certius, neem niet zomaar een code over, analyseer de gehele code, pas 'm aan naar behoren, dan plemp je 'm in je site en dan ga je 'm testen. Je moet nooit klakkeloos een script over nemen, altijd checken: 'van wat doet het script nou eigenlijk? Hoe komt ie aan z'n variabelen etc...'
Offline Raze - 31/03/2010 21:35
Avatar van Raze PHP beginner 1 tip: doe dit met javascript, verhoogt het gebruiksgemak enorm (javascript moet natuurlijk wel aanstaan bij de gebruiker).

hoe ik het meestal doe: de aanmeldknop op "disable" zetten, en via javascript kijken of er in de benodigde velden iets geschreven staat. Indien ja, de aanmeldknop op "enable" zetten.
Offline Jelmerholland - 31/03/2010 21:40
Avatar van Jelmerholland PHP beginner !!!! FOUT FOUT FOUT

Wat ik al meerdere malen gehoord heb, javascript is te beïnvloeden. Het is een cliënt-sided scripting taal, dus 'ik', de bezoeker, kan het veranderen. Je moet het ALTIJD met php checken, anders kan je alsnog een leeg textfield oid verzenden, dit is niet wat je wilt!
Offline Raze - 31/03/2010 22:06
Avatar van Raze PHP beginner Fout?  

nachecken met php doe ik ook altijd, dat is logisch...

maar ik sprak over gebruiksgemak, en dan is javascript veel beter.
Als ik een formulier invul en ik druk op verzenden, en ik kom tot de conclusie dat het formulier is leeggemaakt en ik kan opnieuw beginnen, van gebruiksgemak gesproken...

en ja je kan natuurlijk ook alle input ondertussen opslaan in variabelen en deze dan echo'en, maar dan ben je bezig met een hele hoop nutteloze code.

Javascript is idd te beïnvloeden, maar laten we nu ook niet achterdochtig zijn bij elke internetgebruiker en gaan denken dat hij er allemaal maar op uit is op formuliertjes te "hacken", als je dat al hacken kan noemen...

conclusie: check na met PHP, maar gebruik zeker ook javascript. Bv. wachtwoord/herhaal wachtwoord -> je kan met php checken of beide wachtwoorden overeenkomen, maar met javascript kan je al voorchecken. een typfoutje is snel gemaakt, en in een wachtwoordveld zie je niet wat je typt.
Offline Jelmerholland - 31/03/2010 22:51
Avatar van Jelmerholland PHP beginner Ja oke, daarvoor kan je js gebruiken. Maar als final check zeker php gebruiken. Is niet te beïnvloeden, en het gaat ook niet om 'achter elke gebruiker een hacker zien'. Het gaat om die ene gebruiker die denkt een mooie sql-injection te kunnen plegen, of toch een lek vindt in jou beveiliging. Je moet dat gewoon tegen gaan, klaar.

Ik zag in jou berichtje staan 'doe dit met javascript', wist niet dat je óók php bedoelde, kon ik er niet uit opmaken in ieder geval 

Let's hope Certius will understand 
Offline Certius - 01/04/2010 10:52 (laatste wijziging 01/04/2010 10:52)
Avatar van Certius Nieuw lid Dank voor jullie suggesties maar helaas, wat ik ook invul ik blijf de melding 'niet alle velden zijn ingevuld. Voor alle duidelijkheid; de html code zet ik in mijn pagina en nieuwsbrief.php upload ik naar mijn server.

[u]aanmelden nieuwsbrief.html:[/u]

<form action="nieuwsbrief.php">
Naam<br>
<input name="naam" type="text" id="naam">
<br><br>
E-mail<br>
<input name="email" type="text" id="email">
<br><br>
<input type="submit" name="Submit" value="Aanmelden">
<input type="reset" name="Submit2" value="Wissen">

</form>


[u]nieuwsbrief.php[/u]

<?PHP
if(!empty($_POST['naam']) && !empty($_POST['email'])) {
$to = "info@****.nl";
$subject = "Aanmelding Nieuwsbrief";

$mess = "\n\nnaam: ".$naam."\nemail: ".$email."" ;

mail ($to, $subject, $mess, $extra);
header( 'location:/index.nl' );
}
else {
echo 'niet alle velden zijn ingevuld.';
}
?>
Offline lolll - 01/04/2010 10:57
Avatar van lolll Lid ehm, zou je bij je html element form geen method toevoegen ?
Anders verzend hij die gegevens misschien niet met post, en kan je ze daarom niet ophalen, en zit er daarom niets in die variabele. En dus krijg je steeds die foutmelding.
  1. <form action="nieuwsbrief.php" method="post">
  2. <!-- al de rest van je formulier. -->
  3. </form>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.267s