Inschrijfformulier debakel
Het betreft een inschrijfformulier welke ik voor het gemak hier heb geplaatst:inschrijfformulier
Het is een 'leeg' formulier...Mijn vraag is:
1). Hoe verzend ik dit met behulp van PHP?
2). Hoe zorg ik dat de velden met een * verplicht zijn om in te vullen?
3). Het 'algemene voorwaarden' blokje...Hoe laat ik een boodschap verschijnen wanneer deze niet is aangevinkt?
Ik heb de formulieren op PHPHulp natuurlijk doorgeneusd, maar kom er toch echt niet uit.
Alle hulp is erg welkom!
Gewijzigd op 01/01/1970 01:00:00 door Erick Schluter
Oke...Maar waar plaats ik dit? In een apart bestand genaamd: verwerking_formulier.php
en roep ik dit vervolgens aan in de 1e regel van de <form>:
<form method="post" action="verwerking_formulier.php">
En...Checken of een formulier verzonden is lijkt mij de minste van de problemen.
Hoe pas ik hier de 'verplichte velden' e.d. op toe?
Of hoe laat ik vervolgens een boodschap verschijnen wanneer het 'algemene voorwaarden' blokje niet is aangevinkt?
Enzo...
Erick schreef op 07.08.2008 22:00:
En...Checken of een formulier verzonden is lijkt mij de minste van de problemen.
Klopt. Maar dat was vraag 1 toch?
En ik plaats dit in een apart bestandje, zoals ik zojuist voorstelde?
Verplichte velden check ik meestal zo:
Code (php)
Wel van wat je laat zien hoor...Maar waar staat nu dan naar welk emailadres alles word verzonden?
En is het oranje stukje commentaar (// fout) de plaats waar de 'vergeten in te vullen' boodschap kom te staan?
Zo ja, hoe geef je 'per verschillend veld' een andere boodschap?
Gewijzigd op 01/01/1970 01:00:00 door Erick Schluter
Erick schreef op 07.08.2008 22:31:
Wel van wat je laat zien hoor...Maar waar staat nu dan naar welk emailadres alles word verzonden?
Ik probeer je in stappen te helpen, maar ik krijg de indruk dat je een kant en klaar script verwacht.
Ik heb nu ook een .php bestandje van het formulier:
inschrijfformulier.php
en heb daar dat 'verplichte velden' stukje bijgevoegd...En de veldnamen aangepast voor de 1e twee velden in mijn formulier...Maar wanneer ik vervolgens op 'Verzend' druk...Gebeurt er helemaal niets.
Ook heb ik hierbij het 'checken of het verstuurd is' stukje toegevoegd...Maar ja, wat dit nu precies doet...Ik zie het gewoon niet.
Vandaar dat ik het niet snap.
Op de plek van '// fout'...Daar heb ik nu toegevoegd:
echo "HE! Gaat niet goed he!";
Alleen word dit nu 2x getoond wanneer ik op 'verzend' druk...Ik heb 2 veldnamen als verplicht staan...Daarom komt de foutboodschap dus 2x, zover snap ik het nog wel. Maar hoe ik nu per 'apart veld' een andere foutboodschap krijg gaat me alweer te ver.
Ik wil bv. 'U heeft uw achternaam niet ingevuld' en 'U heeft uw voornaam niet ingevuld'...Etc. etc., maar je raad het al...Ik snap het gewoon niet.
Gewijzigd op 01/01/1970 01:00:00 door Erick Schluter
Ook is me nog steeds niet duidelijk waar alles naartoe word verzonden. Of hoe dit gebeurd...Ik zie tot nu toe nergens een emailadres staan. En alle ingevulde info moet uiteindelijk naar een emailadres worden verzonden.
** Bumpen is meerdere keren achter elkaar posten binnen 24 uur**
@erick:
mail_verwerk.php :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
////////////////////////////////////////////////////////////////////////
//////////MARCEL VAN DE WEERD///////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$achternaam = addslashes(ucfirst($_POST['achter_naam']));
$voornaam = addslashes(ucfirst($_POST['voor_naam']));
$adres = addslashes(ucfirst($_POST['adres']));
$postcode = addslashes(ucfirst($_POST['postcode']));
$plaats = addslashes(ucfirst($_POST['plaats']));
$geboortedatum = addslashes(ucfirst($_POST['geboortedatum']));
$beroep = addslashes(ucfirst($_POST['beroep']));
$telefoonnummer = addslashes(ucfirst($_POST['telefoonnummer']));
$email = addslashes(ucfirst($_POST['email']));
$bedrijf = addslashes(ucfirst($_POST['bedrijf']));
$factuur = addslashes(ucfirst($_POST['factuur']));
$geboortedatum = addslashes(ucfirst($_POST['geboortedatum']));
$beroep = addslashes(ucfirst($_POST['beroep']));
$telefoonnummer = addslashes(ucfirst($_POST['telefoonnummer']));
$email = addslashes(ucfirst($_POST['email']));
if(strlen(trim($achternaam)) <1){
$error .= '- Er is geen achternaam ingevuld.<br/>';
}
if(strlen(trim($voornaam)) <1){
$error .= '- Er is geen voornaam ingevuld.<br/>';
}
if(strlen(trim($adres)) <1){
$error .= '- Er is geen adres ingevuld.<br/>';
}
if(strlen(trim($postcode)) <1){
$error .= '- Er is geen postcode ingevuld.<br/>';
}
if(strlen(trim($plaats)) <1){
$error .= '- Er is geen plaats ingevuld.<br/>';
}
if(strlen(trim($geboortedatum)) <1){
$error .= '- Er is geen geboortedatum ingevuld.<br/>';
}
if(strlen(trim($email)) <1){
$error .= '- Er is geen email ingevuld.<br/>';
}
if(!$voorwaarden == 'ja'){
$error .= '- U moet de voorwaarden accepteren.<br/>';
}
if(!isset($error)){
$inhoud = 'Achternaam : '.$achternaam.'
Voornaam : '.$voornaam.'
Adres : '.$adres.'
Postcode : '.$postcode.'
Plaats : '.$plaats.'
Beroep : '.$beroep.'
Geboortedatum : '.$geboortedatum.'
Telefoonnummer : '.$telefoonnummer.'
Email-adres : '.$email.'
Bedrijf : '.$bedrijf.'
Factuuradres : '.$factuur.'
Keuze : '.$optie_lijst.'
';
$mail = mail('[email protected]','Mail-formulier',"$inhoud",'From:Jou naam<[email protected]>');
if($mail){
echo 'Het verzenden is gelukt!';
}
else{
echo 'Om een of andere reden(en) is het verzenden mislukt!';
}
}
else{
echo 'Het verzenden is mislukt om de volgende reden(en):<br/>'.$error.'<p><a href="#" Onclick="history.back()">Ga terug</a></p>';
}
}
?>
////////////////////////////////////////////////////////////////////////
//////////MARCEL VAN DE WEERD///////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$achternaam = addslashes(ucfirst($_POST['achter_naam']));
$voornaam = addslashes(ucfirst($_POST['voor_naam']));
$adres = addslashes(ucfirst($_POST['adres']));
$postcode = addslashes(ucfirst($_POST['postcode']));
$plaats = addslashes(ucfirst($_POST['plaats']));
$geboortedatum = addslashes(ucfirst($_POST['geboortedatum']));
$beroep = addslashes(ucfirst($_POST['beroep']));
$telefoonnummer = addslashes(ucfirst($_POST['telefoonnummer']));
$email = addslashes(ucfirst($_POST['email']));
$bedrijf = addslashes(ucfirst($_POST['bedrijf']));
$factuur = addslashes(ucfirst($_POST['factuur']));
$geboortedatum = addslashes(ucfirst($_POST['geboortedatum']));
$beroep = addslashes(ucfirst($_POST['beroep']));
$telefoonnummer = addslashes(ucfirst($_POST['telefoonnummer']));
$email = addslashes(ucfirst($_POST['email']));
if(strlen(trim($achternaam)) <1){
$error .= '- Er is geen achternaam ingevuld.<br/>';
}
if(strlen(trim($voornaam)) <1){
$error .= '- Er is geen voornaam ingevuld.<br/>';
}
if(strlen(trim($adres)) <1){
$error .= '- Er is geen adres ingevuld.<br/>';
}
if(strlen(trim($postcode)) <1){
$error .= '- Er is geen postcode ingevuld.<br/>';
}
if(strlen(trim($plaats)) <1){
$error .= '- Er is geen plaats ingevuld.<br/>';
}
if(strlen(trim($geboortedatum)) <1){
$error .= '- Er is geen geboortedatum ingevuld.<br/>';
}
if(strlen(trim($email)) <1){
$error .= '- Er is geen email ingevuld.<br/>';
}
if(!$voorwaarden == 'ja'){
$error .= '- U moet de voorwaarden accepteren.<br/>';
}
if(!isset($error)){
$inhoud = 'Achternaam : '.$achternaam.'
Voornaam : '.$voornaam.'
Adres : '.$adres.'
Postcode : '.$postcode.'
Plaats : '.$plaats.'
Beroep : '.$beroep.'
Geboortedatum : '.$geboortedatum.'
Telefoonnummer : '.$telefoonnummer.'
Email-adres : '.$email.'
Bedrijf : '.$bedrijf.'
Factuuradres : '.$factuur.'
Keuze : '.$optie_lijst.'
';
$mail = mail('[email protected]','Mail-formulier',"$inhoud",'From:Jou naam<[email protected]>');
if($mail){
echo 'Het verzenden is gelukt!';
}
else{
echo 'Om een of andere reden(en) is het verzenden mislukt!';
}
}
else{
echo 'Het verzenden is mislukt om de volgende reden(en):<br/>'.$error.'<p><a href="#" Onclick="history.back()">Ga terug</a></p>';
}
}
?>
mail.html:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<form method="post" action="mail_verwerk.php">
<table width="430" border="0" cellspacing="4" cellpadding="0" align="left">
<tr>
<td width="300">Achternaam:*</td> <td width="130"><input type="text" name="achter_naam" size="28" /></td>
</tr>
<tr>
<td>Voornaam:*</td> <td><input type="text" name="voor_naam" size="28" /></td>
</tr>
<tr>
<td>Adres:*</td> <td><input type="text" name="adres" size="28" /></td>
</tr>
<tr>
<td>Postcode:*</td> <td><input type="text" name="postcode" size="28" /></td>
</tr>
<tr>
<td>Plaats:*</td> <td><input type="text" name="plaats" size="28" /></td>
</tr>
<tr>
<td>Geboortedatum:*</td> <td><input type="text" name="geboortedatum" size="28" /></td>
</tr>
<tr>
<td>Beroep:</td> <td><input type="text" name="beroep" size="28" /></td>
</tr>
<tr>
<td>Telefoonnummer:</td> <td><input type="text" name="telnr" size="28" /></td>
</tr>
<tr>
<td>Email adres:*</td> <td><input type="text" name="email" size="28" /></td>
</tr>
<tr>
<td>Bedrijf:</td> <td><input type="text" name="bedrijf" size="28" /></td>
</tr>
<tr>
<td colspan="2"><em style="font-size:70%">(indien van toepassing)</em></td>
</tr>
<tr>
<td>Faktuuradres:</td> <td><input type="text" name="factuur" size="28" /></td>
</tr>
<tr>
<td colspan="2"><em style="font-size:70%">(indien afwijkend van bovenstaand)</em></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><input type="checkbox" value="ja" name="voorwaarden" /> Ik heb de algemene voorwaarden gelezen en ga hiermee akkoord.</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td>Ik meld mij aan voor de</td>
<td><select name="optie_lijst" style="width:194px;">
<option value="optie1">Optie 1</option>
<option value="optie2">Optie 2</option>
</select>
</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Verzend" name="zend_form" /> <input type="reset" value="Herstel" name="leeg_maken" /></td>
</tr>
</table>
</form>
<table width="430" border="0" cellspacing="4" cellpadding="0" align="left">
<tr>
<td width="300">Achternaam:*</td> <td width="130"><input type="text" name="achter_naam" size="28" /></td>
</tr>
<tr>
<td>Voornaam:*</td> <td><input type="text" name="voor_naam" size="28" /></td>
</tr>
<tr>
<td>Adres:*</td> <td><input type="text" name="adres" size="28" /></td>
</tr>
<tr>
<td>Postcode:*</td> <td><input type="text" name="postcode" size="28" /></td>
</tr>
<tr>
<td>Plaats:*</td> <td><input type="text" name="plaats" size="28" /></td>
</tr>
<tr>
<td>Geboortedatum:*</td> <td><input type="text" name="geboortedatum" size="28" /></td>
</tr>
<tr>
<td>Beroep:</td> <td><input type="text" name="beroep" size="28" /></td>
</tr>
<tr>
<td>Telefoonnummer:</td> <td><input type="text" name="telnr" size="28" /></td>
</tr>
<tr>
<td>Email adres:*</td> <td><input type="text" name="email" size="28" /></td>
</tr>
<tr>
<td>Bedrijf:</td> <td><input type="text" name="bedrijf" size="28" /></td>
</tr>
<tr>
<td colspan="2"><em style="font-size:70%">(indien van toepassing)</em></td>
</tr>
<tr>
<td>Faktuuradres:</td> <td><input type="text" name="factuur" size="28" /></td>
</tr>
<tr>
<td colspan="2"><em style="font-size:70%">(indien afwijkend van bovenstaand)</em></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><input type="checkbox" value="ja" name="voorwaarden" /> Ik heb de algemene voorwaarden gelezen en ga hiermee akkoord.</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td>Ik meld mij aan voor de</td>
<td><select name="optie_lijst" style="width:194px;">
<option value="optie1">Optie 1</option>
<option value="optie2">Optie 2</option>
</select>
</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Verzend" name="zend_form" /> <input type="reset" value="Herstel" name="leeg_maken" /></td>
</tr>
</table>
</form>
Grtz,
Marcel van de Weerd
Gewijzigd op 01/01/1970 01:00:00 door Mar cel
Thanks man! Dit begint er al op te lijken...
Echter de 'ga terug' optie, die verschijnt wanneer een verplicht veld niet is ingevuld, gaat terug naar 'mail_verwerk.php'...En niet naar het formulier zelf.
Ook begrijp ik nog steeds niet hoe dat nu zit met die 'algemene voorwaarden' optie (in dit geval). Het aan te vinken hokje bedoel ik...Wanneer dit wordt aangevinkt, alles in orde...Maar wanneer dit niet is aangevinkt gebeurd er weinig.
Inmiddels had ik zelf ook al zitten rommelen:
inschrijfformulier
Hier worden de niet ingevulde verplichte velden om de beurt weergegeven...En wanneer de 'algemene voorwaarden' is aangevinkt staat er in de verzonden email: on Wanneer dit hokje niet is aangevinkt staat er niets. Ik wil echter dat de gehele 'inschrijving' niet plaats kan vinden zonder dat de 'algemene voorwaarden' zijn geaccepteerd.
Zou je nog eens kunnen kijken? Ik ben je zeer erkentelijk!
Wanneer ik het formulier test op mijn eigen domein (ericks.nl) werkt het!
Zie: werkend inschrijfformulier
Nu word het netjes verstuurd wanneer er een vinkje staat bij de 'algemene voorwaarden'. En wanneer je het vinkje weglaat krijg je netjes de melding dat je eerst akkoord moet gaan.
Maar op het domein waarop het formulier uiteindelijk moet komen te staan werkt deze 'algemene voorwaarden' optie niet, zie:
niet werkende inschrijfformulier
Nu word het formulier niet verzonden...Of de 'algemene voorwaarden' nu zijn aangevinkt of niet?!?
Dit is nog niet online en dus TOP SECRET enzo! Als mijn opdrachtgever hoort dat ik dit doe word ik waarschijnlijk nooit meer gevraagd voor iets, dus discretie gewenst !! Hiervoor alvast bedankt!
Het zijn exact dezelfde bestanden...En het werkt niet??!? HELLUP!?
Waarom werkt dit niet op het andere domein? Kan het uberhaupt aan het domein liggen?
HELLUP!!
als ik naar de werkende link ga en deze aanpas naar
http://www.ericks.nl/formulier/mail_verwerk.php
zie ik een witte pagina
-------------------------------------------
als ik naar de niet werkende link ga en deze aanpas naar
http://www.nlpacademie.nl/formulier/mail_verwerk.php
kan de pagina niet worden gevonden
groeten
Gewijzigd op 01/01/1970 01:00:00 door dimi o
Regel dit met mysql_real_escape_string() voordat je het de db in gooit.
Het gaat over de volgende:
deze werkt!
en
deze werkt niet
En het enige verschil tussen deze 2 is het domein waarop ze staan.
Het werkt wel...Enkel wanneer je klikt op 'ga terug' (wanneer je een verplicht veld niet hebt ingevuld) gaat het niet goed.
Maar wat vind je van het probleem dat ik schetste? Dat het op domein1 naar behoren werkt, maar op domein2 niet?!?
Weet iemand waar dit aan zou kunnen liggen?
En Gerben...Ik zie staan 'mysql_escape_etc. etc., maar ik heb/wil er helemaal geen database achter. En MySQL is weeeer iets geheel nieuws voor me, dus dat laat ik liever even achterwege.
Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door Erick Schluter
Erick schreef op 08.08.2008 14:21:
Marcel,
Het werkt wel...Enkel wanneer je klikt op 'ga terug' (wanneer je een verplicht veld niet hebt ingevuld) gaat het niet goed.
Maar wat vind je van het probleem dat ik schetste? Dat het op domein1 naar behoren werkt, maar op domein2 niet?!?
Weet iemand waar dit aan zou kunnen liggen?
En Gerben...Ik zie staan 'mysql_escape_etc. etc., maar ik heb/wil er helemaal geen database achter. En MySQL is weeeer iets geheel nieuws voor me, dus dat laat ik liever even achterwege.
Het werkt wel...Enkel wanneer je klikt op 'ga terug' (wanneer je een verplicht veld niet hebt ingevuld) gaat het niet goed.
Maar wat vind je van het probleem dat ik schetste? Dat het op domein1 naar behoren werkt, maar op domein2 niet?!?
Weet iemand waar dit aan zou kunnen liggen?
En Gerben...Ik zie staan 'mysql_escape_etc. etc., maar ik heb/wil er helemaal geen database achter. En MySQL is weeeer iets geheel nieuws voor me, dus dat laat ik liever even achterwege.
Kan wel zijn alleen de addslashes methode is niet juist. Als je de bovenstaande controles inbouwt ben je nu misschien klaar maar het is niet een nette manier.