checkbox in contactformulier
De uitkomst moet zijn: indien men het vinkje "privacy policy" aanvinkt (verplicht veld), wordt er in de verzonden email aangeduid dat men dit heeft gedaan (bevestiging). Ik vind de juiste code niet voor in de php file rond lijn 34: $checkbox = ... Ik vermoed toch dat de rest ok is. Wat zou ik hier moeten toevoegen om dit correct op te nemen? Alvast bedankt voor de hulp.
Contactform:
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
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
<form class="nobottommargin" id="template-contactform" name="template-contactform" action="include/sendemail-gastenboek.php" method="post">
<div class="form-process"></div>
<div class="col_one_fourth">
<label for="template-contactform-name">Naam - Name <small>*</small></label>
<input type="text" id="template-contactform-name" name="template-contactform-name" value="" class="sm-form-control required" placeholder="Uw naam - Your name" />
</div>
<div class="col_one_fourth">
<label for="template-contactform-email">Email <small>*</small></label>
<input type="email" id="template-contactform-email" name="template-contactform-email" value="" class="required email sm-form-control" placeholder="Uw email - Your email" />
</div>
<div class="col_one_fourth">
<label for="template-contactform-website">Website</label>
<input type="text" id="template-contactform-website" name="template-contactform-website" value="" class="sm-form-control" placeholder="Website URL" />
</div>
<div class="col_one_fourth col_last">
<label for="template-contactform-blog">Blog</label>
<input type="text" id="template-contactform-blog" name="template-contactform-blog" value="" class="sm-form-control" placeholder="Blog URL" />
</div>
<div class="col_full">
<label for="template-contactform-message">Bericht - Message <small>*</small></label>
<textarea class="required sm-form-control" id="template-contactform-message" name="template-contactform-message" rows="4" cols="30" placeholder="Uw bericht - Your message"></textarea>
</div>
<div class="col_full hidden">
<input type="text" id="template-contactform-botcheck" name="template-contactform-botcheck" value="" class="sm-form-control" />
</div>
<div>
<input id="checkbox-privacypolicy" class="required checkbox-style" name="checkbox-1" type="checkbox">
<label for="checkbox-privacypolicy" class="checkbox-style-3-label">Ik heb de <a href="privacy-policy.html" title="privacy policy">Privacy policy</a> gelezen en goedgekeurd.<small>*</small> / I have read and accepted the <a href="privacy-policy.html" title="privacy policy">Privacy policy</a> <small>*</small></label>
</div>
<div class="col_full">
<button class="button button-3d nomargin" type="submit" id="template-contactform-submit" name="template-contactform-submit" value="submit">Verstuur naar ons gastenboek - Send to our guestbook</button>
</div>
</form>
<div class="form-process"></div>
<div class="col_one_fourth">
<label for="template-contactform-name">Naam - Name <small>*</small></label>
<input type="text" id="template-contactform-name" name="template-contactform-name" value="" class="sm-form-control required" placeholder="Uw naam - Your name" />
</div>
<div class="col_one_fourth">
<label for="template-contactform-email">Email <small>*</small></label>
<input type="email" id="template-contactform-email" name="template-contactform-email" value="" class="required email sm-form-control" placeholder="Uw email - Your email" />
</div>
<div class="col_one_fourth">
<label for="template-contactform-website">Website</label>
<input type="text" id="template-contactform-website" name="template-contactform-website" value="" class="sm-form-control" placeholder="Website URL" />
</div>
<div class="col_one_fourth col_last">
<label for="template-contactform-blog">Blog</label>
<input type="text" id="template-contactform-blog" name="template-contactform-blog" value="" class="sm-form-control" placeholder="Blog URL" />
</div>
<div class="col_full">
<label for="template-contactform-message">Bericht - Message <small>*</small></label>
<textarea class="required sm-form-control" id="template-contactform-message" name="template-contactform-message" rows="4" cols="30" placeholder="Uw bericht - Your message"></textarea>
</div>
<div class="col_full hidden">
<input type="text" id="template-contactform-botcheck" name="template-contactform-botcheck" value="" class="sm-form-control" />
</div>
<div>
<input id="checkbox-privacypolicy" class="required checkbox-style" name="checkbox-1" type="checkbox">
<label for="checkbox-privacypolicy" class="checkbox-style-3-label">Ik heb de <a href="privacy-policy.html" title="privacy policy">Privacy policy</a> gelezen en goedgekeurd.<small>*</small> / I have read and accepted the <a href="privacy-policy.html" title="privacy policy">Privacy policy</a> <small>*</small></label>
</div>
<div class="col_full">
<button class="button button-3d nomargin" type="submit" id="template-contactform-submit" name="template-contactform-submit" value="submit">Verstuur naar ons gastenboek - Send to our guestbook</button>
</div>
</form>
Php sendemail:
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
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
<?php
require_once('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
if( isset( $_POST['template-contactform-submit'] ) AND $_POST['template-contactform-submit'] == 'submit' ) {
if( $_POST['template-contactform-name'] != '' AND $_POST['template-contactform-email'] != '' AND $_POST['template-contactform-message'] != '' AND $_POST['checkbox-privacypolicy'] != '' ) {
$name = $_POST['template-contactform-name'];
$email = $_POST['template-contactform-email'];
$website = $_POST['template-contactform-website'];
$blog = $_POST['template-contactform-blog'];
$message = $_POST['template-contactform-message'];
$checkbox = $_POST['checkbox-privacypolicy'];
$subject = isset($subject) ? $subject : 'Gastenboek bericht van ....be';
$botcheck = $_POST['template-contactform-botcheck'];
$toemail = '[email protected]';
$toname = 'Frederic D.';
if( $botcheck == '' ) {
$mail->SetFrom( $email , $name );
$mail->AddReplyTo( $email , $name );
$mail->AddAddress( $toemail , $toname );
$name = isset($name) ? "Name: $name<br><br>" : '';
$email = isset($email) ? "Email: $email<br><br>" : '';
$website = isset($website) ? "Website: $website<br><br>" : '';
$blog = isset($blog) ? "Blog: $blog<br><br>" : '';
$checkbox =
$referrer = $_SERVER['HTTP_REFERER'] ? '<br><br><br>Dit gastenboek bericht is verstuurd van: ' . $_SERVER['HTTP_REFERER'] : '';
$body = "$name $email $website $blog $message $checkbox $referrer";
$mail->MsgHTML( $body );
$sendEmail = $mail->Send();
if( $sendEmail == true ):
echo 'We hebben uw verzoek <strong>goed ontvangen</strong>. We zullen dit de komende uren/dagen bekijken.';
else:
echo 'Email <strong>could not</strong> be sent due to some Unexpected Error. Please Try Again later.<br /><br /><strong>Reason:</strong><br />' . $mail->ErrorInfo . '';
endif;
} else {
echo 'Bot <strong>Detected</strong>.! Clean yourself Botster.!';
}
} else {
echo 'Vul <strong>alle velden</strong> opnieuw in en probeer opnieuw.';
}
} else {
echo 'Er doet zich <strong>een probleem</strong> voor. Probeer later opnieuw.';
}
?>
require_once('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
if( isset( $_POST['template-contactform-submit'] ) AND $_POST['template-contactform-submit'] == 'submit' ) {
if( $_POST['template-contactform-name'] != '' AND $_POST['template-contactform-email'] != '' AND $_POST['template-contactform-message'] != '' AND $_POST['checkbox-privacypolicy'] != '' ) {
$name = $_POST['template-contactform-name'];
$email = $_POST['template-contactform-email'];
$website = $_POST['template-contactform-website'];
$blog = $_POST['template-contactform-blog'];
$message = $_POST['template-contactform-message'];
$checkbox = $_POST['checkbox-privacypolicy'];
$subject = isset($subject) ? $subject : 'Gastenboek bericht van ....be';
$botcheck = $_POST['template-contactform-botcheck'];
$toemail = '[email protected]';
$toname = 'Frederic D.';
if( $botcheck == '' ) {
$mail->SetFrom( $email , $name );
$mail->AddReplyTo( $email , $name );
$mail->AddAddress( $toemail , $toname );
$name = isset($name) ? "Name: $name<br><br>" : '';
$email = isset($email) ? "Email: $email<br><br>" : '';
$website = isset($website) ? "Website: $website<br><br>" : '';
$blog = isset($blog) ? "Blog: $blog<br><br>" : '';
$checkbox =
$referrer = $_SERVER['HTTP_REFERER'] ? '<br><br><br>Dit gastenboek bericht is verstuurd van: ' . $_SERVER['HTTP_REFERER'] : '';
$body = "$name $email $website $blog $message $checkbox $referrer";
$mail->MsgHTML( $body );
$sendEmail = $mail->Send();
if( $sendEmail == true ):
echo 'We hebben uw verzoek <strong>goed ontvangen</strong>. We zullen dit de komende uren/dagen bekijken.';
else:
echo 'Email <strong>could not</strong> be sent due to some Unexpected Error. Please Try Again later.<br /><br /><strong>Reason:</strong><br />' . $mail->ErrorInfo . '';
endif;
} else {
echo 'Bot <strong>Detected</strong>.! Clean yourself Botster.!';
}
} else {
echo 'Vul <strong>alle velden</strong> opnieuw in en probeer opnieuw.';
}
} else {
echo 'Er doet zich <strong>een probleem</strong> voor. Probeer later opnieuw.';
}
?>
v.s.
$_POST['checkbox-privacypolicy']
Dat is een groot verschil ;-)
Maar wat dien ik te plaatsen op lijn 34 van de php file? Of is het complexer dan dit?
$checkbox = isset($checkbox) ? "Status: Akkoord!<br><br>" : 'Status: Niet akkoord!<br><br>';
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
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
<script type="text/javascript">
var checkobj
function agreesubmit(el){
checkobj=el
if (document.all||document.getElementById){
for (i=0;i<checkobj.form.length;i++){
var tempobj=checkobj.form.elements
if(tempobj.type.toLowerCase()=="submit")
tempobj.disabled=!checkobj.checked
}
}
}
function defaultagree(el){
if (!document.all&&!document.getElementById){
if (window.checkobj&&checkobj.checked)
return true
else{
alert("Lees eerst de voorwaarden en ga ermee akkoord!")
return false
}
}
}
</SCRIPT>
<table align=center>
<tr>
<td>
<form ACTION="http://www.leejoo.nl" target="_new" name="agreeform" onSubmit="return defaultagree(this)">
<!-- verander hierboven de url en target waarnaar doorgeklikt kan worden -->
<textarea rows="10" name="S1" cols="32" wrap="virtual">
Voorwaarden :
Bij deze ga ik akkoord met de voorwaarden die gelden ..... bla bla bla
bla
bla
vink de optie akkoord aan....</textarea><br>
<input name="agreecheck" TYPE="checkbox" onClick="agreesubmit(this)"> Ik ga
akkoord met de voorwaarden
<br><br>
<input type="Submit" value="Verder" disabled>
</form>
<script type="text/javascript">
document.forms.agreeform.agreecheck.checked=false
</script>
</td>
</tr>
</table>
var checkobj
function agreesubmit(el){
checkobj=el
if (document.all||document.getElementById){
for (i=0;i<checkobj.form.length;i++){
var tempobj=checkobj.form.elements
if(tempobj.type.toLowerCase()=="submit")
tempobj.disabled=!checkobj.checked
}
}
}
function defaultagree(el){
if (!document.all&&!document.getElementById){
if (window.checkobj&&checkobj.checked)
return true
else{
alert("Lees eerst de voorwaarden en ga ermee akkoord!")
return false
}
}
}
</SCRIPT>
<table align=center>
<tr>
<td>
<form ACTION="http://www.leejoo.nl" target="_new" name="agreeform" onSubmit="return defaultagree(this)">
<!-- verander hierboven de url en target waarnaar doorgeklikt kan worden -->
<textarea rows="10" name="S1" cols="32" wrap="virtual">
Voorwaarden :
Bij deze ga ik akkoord met de voorwaarden die gelden ..... bla bla bla
bla
bla
vink de optie akkoord aan....</textarea><br>
<input name="agreecheck" TYPE="checkbox" onClick="agreesubmit(this)"> Ik ga
akkoord met de voorwaarden
<br><br>
<input type="Submit" value="Verder" disabled>
</form>
<script type="text/javascript">
document.forms.agreeform.agreecheck.checked=false
</script>
</td>
</tr>
</table>
Dit zet je tussen <body> en </body>
Uiteraard kun je ook een deel gebruiken. Let even op de id van de Submit.
Gewijzigd op 14/05/2018 17:59:37 door Jan te Pas
Dit geeft foutmeldingen. Het 'checkbox-privacypolicy' element zal alleen bestaan in de $_POST array wanneer de gebruiker de checkbox heeft aangevinkt. Indien de checkbox niet aangevinkt is zul je hierop een foutmelding krijgen.
De juiste manier is dus om te controleren of het 'checkbox-privacypolicy' bestaat met isset. (en ariën zag dit ook even over het hoofd)
Dus:
Code (php)
Toevoeging op 14/05/2018 18:55:28:
Dit zou je ook kunnen zien als je gewoon de hele $_POST array op het scherm plempt:
https://blog.iusmentis.com/2013/09/12/is-een-aanvinkvakje-voor-algemene-voorwaarden-verplicht/ (maar het kan ook geen kwaad).
Ik weet niet of de Privacy Policy op gelijke lijn staat met de Algemene Voorwaarden, maar dan zou je dat hele vinkje ook gewoon weg kunnen laten: Bedankt voor de info!
Leuke cargo culting zo'n checkbox, maar feitelijk niet nodig. Het volstaat om de voorwaarden (rechtstreeks) aan te rijken, en de mogelijkheid te geven deze op te slaan. Als je dit tweede deel niet doet heb je onder de oude wetgeving ook al een probleem.