Offerte Form naar Email, hoe dingen weg te laten
Ik heb al eens een bericht geplaatst, maar nooit antwoord gehad. Dus liet ik dat stukje voor gezien, maar ik stuit nu op een ander probleem.
Het is een simpel contact formulier. Maakt me niet uit of er slechte dingen aan zitten, want hij doet het! Bij een formulier is het natuurlijk mogelijk dat mensen sommige dingen niet hoeven, dus hoeven ze die velden niet in te vullen. Nu wil ik er voor zorgen dat het emailtje deze dingen weg laat, maar ik heb geen enkel idee hoe ik dat voor elkaar krijg.
---- Formulier ----
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
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
<form action="contact.php" method="post">
<div class="urbangreymenu">
<h3 class="headerbar"><a href="#" class="link">Contactgegevens</a></h3>
<div class="submenu">
<div>
<label for="naam">Naam:</label> <input type="text" name="yourname">
</div>
<div>
<label for="onderwerp">Onderwerp:</label> <input type="text" name="subject">
</div>
<div>
<label for="email">E-mail:</label> <input type="text" name="email">
</div>
<div>
<label for="telnr">Tel.nr:</label> <input type="text" name="telefoon">
</div>
</div>
<h3 class="headerbar"><a href="#" class="link">Spiegels</a></h3>
<div class="submenu">
<div>
<label for="naam">Aantal:</label> <input type="text" name="spiegels_aantal">
</div>
<div>
<label for="naam" class="dropdown">Kleuren:</label>
<select name="spiegels">
<option value=""> -- Gelieve te selecteren -- </option>
<option value="Brons">Brons</option>
<option value="Blauw">Blauw</option>
<option value="Zilver">Zilver</option>
<option value="Veiligheid">Veiligheidsspiegels</option>
<option value="Meedere kleuren">Meerdere kleuren op aanvraag</option>
</select>
</div>
<div>
<label for="spiegels_anderekleur">Anders:</label> <input type="text" value="Vul andere kleur in" name="spiegels_anderekleur">
</div>
</div>
<h3 class="headerbar"><a href="#" class="link">Isolatieglas</a></h3>
<div class="submenu">
<div>
<label for="isolatieglas_aantal">Aantal:</label> <input type="text" name="isolatieglas_aantal">
</div>
<div>
<label for="naam" class="dropdown">Isolatieglas:</label>
<select name="isolatieglas">
<option value=""> -- Gelieve te selecteren -- </option>
<option value="Luchtgevuld">Luchtgevuld</option>
<option value="HR+ Argongas / Cryptongas gevuld">HR+ Argongas / Cryptongas gevuld</option>
<option value="HR++ Argongas / Cryptongas gevuld">HR++ Argongas / Cryptongas gevuld</option>
<option value="Met kruisroede in verschillende kleuren">Met kruisroede in verschillende kleuren</option>
<option value="In combinatie met gehard of gelaagd">In combinatie met gehard of gelaagd</option>
</select>
</div>
<div>
<label for="isolatieglas_uwaarde">U-waarde: </label>
<select size="1" name="isolatieglas_uwaarde">
<option>2,8 W/m2K bij 15 mm spouw lucht</option>
<option>1,2 W/m2K bij 15 mm spouw argongas</option>
</select>
</div>
</div>
<h3 class="headerbar"><a href="#" class="link">Opmerkingen</a></h3>
<div class="submenu">
<div>
<label for="comments">Comments:</label> <textarea name="comments"></textarea>
</div>
<div class="submitbutton">
<input type="submit" value="Send it!" class="submit">
</div>
</form>
</div>
</div>
<div class="urbangreymenu">
<h3 class="headerbar"><a href="#" class="link">Contactgegevens</a></h3>
<div class="submenu">
<div>
<label for="naam">Naam:</label> <input type="text" name="yourname">
</div>
<div>
<label for="onderwerp">Onderwerp:</label> <input type="text" name="subject">
</div>
<div>
<label for="email">E-mail:</label> <input type="text" name="email">
</div>
<div>
<label for="telnr">Tel.nr:</label> <input type="text" name="telefoon">
</div>
</div>
<h3 class="headerbar"><a href="#" class="link">Spiegels</a></h3>
<div class="submenu">
<div>
<label for="naam">Aantal:</label> <input type="text" name="spiegels_aantal">
</div>
<div>
<label for="naam" class="dropdown">Kleuren:</label>
<select name="spiegels">
<option value=""> -- Gelieve te selecteren -- </option>
<option value="Brons">Brons</option>
<option value="Blauw">Blauw</option>
<option value="Zilver">Zilver</option>
<option value="Veiligheid">Veiligheidsspiegels</option>
<option value="Meedere kleuren">Meerdere kleuren op aanvraag</option>
</select>
</div>
<div>
<label for="spiegels_anderekleur">Anders:</label> <input type="text" value="Vul andere kleur in" name="spiegels_anderekleur">
</div>
</div>
<h3 class="headerbar"><a href="#" class="link">Isolatieglas</a></h3>
<div class="submenu">
<div>
<label for="isolatieglas_aantal">Aantal:</label> <input type="text" name="isolatieglas_aantal">
</div>
<div>
<label for="naam" class="dropdown">Isolatieglas:</label>
<select name="isolatieglas">
<option value=""> -- Gelieve te selecteren -- </option>
<option value="Luchtgevuld">Luchtgevuld</option>
<option value="HR+ Argongas / Cryptongas gevuld">HR+ Argongas / Cryptongas gevuld</option>
<option value="HR++ Argongas / Cryptongas gevuld">HR++ Argongas / Cryptongas gevuld</option>
<option value="Met kruisroede in verschillende kleuren">Met kruisroede in verschillende kleuren</option>
<option value="In combinatie met gehard of gelaagd">In combinatie met gehard of gelaagd</option>
</select>
</div>
<div>
<label for="isolatieglas_uwaarde">U-waarde: </label>
<select size="1" name="isolatieglas_uwaarde">
<option>2,8 W/m2K bij 15 mm spouw lucht</option>
<option>1,2 W/m2K bij 15 mm spouw argongas</option>
</select>
</div>
</div>
<h3 class="headerbar"><a href="#" class="link">Opmerkingen</a></h3>
<div class="submenu">
<div>
<label for="comments">Comments:</label> <textarea name="comments"></textarea>
</div>
<div class="submitbutton">
<input type="submit" value="Send it!" class="submit">
</div>
</form>
</div>
</div>
--- PHP Email script ---
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
84
85
86
87
88
89
90
91
92
93
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
84
85
86
87
88
89
90
91
92
93
<?php
/* Set e-mail recipient */
$myemail = "mijnemail";
/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Enter your name");
$subject = check_input($_POST['subject'], "Write a subject");
$email = check_input($_POST['email']);
$telefoon = check_input($_POST['telefoon']);
$website = check_input($_POST['website']);
$likeit = check_input($_POST['likeit']);
$isolatieglas_aantal = check_input($_POST['isolatieglas_aantal']);
$isolatieglas_uwaarde = check_input($_POST['isolatieglas_uwaarde']);
$isolatieglas = check_input($_POST['isolatieglas']);
$spiegels = check_input($_POST['spiegels']);
$spiegels_aantal = check_input($_POST['spiegels_aantal']);
$spiegels_anderekleur = check_input($_POST['spiegels_anderekleur']);
$comments = check_input($_POST['comments'], "Write your comments");
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("E-mail address not valid");
}
/* If URL is not valid set $website to empty */
if (!preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i", $website))
{
$website = '';
}
/* Let's prepare the message for the e-mail */
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:
---------------------------- PERSOONLIJKE INFORMATIE ----------------------------
Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon
--------------------------------- ISOLATIEGLAS ----------------------------------
Aantal isolatieglas: $isolatieglas_aantal
Isolatieglas: $isolatieglas
U-waarde: $isolatieglas_uwaarde
----------------------------------- SPIEGELS ------------------------------------
Aantal spiegels: $spiegels_aantal
Kleur: $spiegels
Andere kleur: $spiegels_anderekleur
---------------------------------- COMMENTAAR -----------------------------------
$comments
";
/* Send the message using mail() function */
mail($myemail, $subject, $message);
/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();
/* Functions we used */
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<b>Gelieve de volgende error te corrigeren:</b><br />
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
?>
/* Set e-mail recipient */
$myemail = "mijnemail";
/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Enter your name");
$subject = check_input($_POST['subject'], "Write a subject");
$email = check_input($_POST['email']);
$telefoon = check_input($_POST['telefoon']);
$website = check_input($_POST['website']);
$likeit = check_input($_POST['likeit']);
$isolatieglas_aantal = check_input($_POST['isolatieglas_aantal']);
$isolatieglas_uwaarde = check_input($_POST['isolatieglas_uwaarde']);
$isolatieglas = check_input($_POST['isolatieglas']);
$spiegels = check_input($_POST['spiegels']);
$spiegels_aantal = check_input($_POST['spiegels_aantal']);
$spiegels_anderekleur = check_input($_POST['spiegels_anderekleur']);
$comments = check_input($_POST['comments'], "Write your comments");
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("E-mail address not valid");
}
/* If URL is not valid set $website to empty */
if (!preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i", $website))
{
$website = '';
}
/* Let's prepare the message for the e-mail */
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:
---------------------------- PERSOONLIJKE INFORMATIE ----------------------------
Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon
--------------------------------- ISOLATIEGLAS ----------------------------------
Aantal isolatieglas: $isolatieglas_aantal
Isolatieglas: $isolatieglas
U-waarde: $isolatieglas_uwaarde
----------------------------------- SPIEGELS ------------------------------------
Aantal spiegels: $spiegels_aantal
Kleur: $spiegels
Andere kleur: $spiegels_anderekleur
---------------------------------- COMMENTAAR -----------------------------------
$comments
";
/* Send the message using mail() function */
mail($myemail, $subject, $message);
/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();
/* Functions we used */
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<b>Gelieve de volgende error te corrigeren:</b><br />
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
?>
Kortom: Als mensen bijvoorbeeld geen Isolatieglas willen, vullen ze dit ook niet in. Ik wil dus dat het emailtje ook niet de aspecten van Isolatieglas bevat, maar dit simpelweg weglaat.
Iemand een idee?
Ever
voorbeeldje:
je kan er ook nog een else achter zetten, maar dat lijkt me niet nodig
Zoiets erin verwerken? (Is verkorte versie van Tamara's voorbeeld.)
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:
---------------------------- PERSOONLIJKE INFORMATIE ----------------------------
Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon
--------------------------------- ISOLATIEGLAS ----------------------------------
if($_POST['isolatieglas_aantal'])
{
Aantal isolatieglas: $isolatieglas_aantal;
}
if($_POST['isolatieglas'])
{
Isolatieglas: $isolatieglas ;
}
if($_POST['isolatieglas_uwaarde'])
{
U-waarde: $isolatieglas_uwaarde;
}
---------------------------- PERSOONLIJKE INFORMATIE ----------------------------
Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon
--------------------------------- ISOLATIEGLAS ----------------------------------
if($_POST['isolatieglas_aantal'])
{
Aantal isolatieglas: $isolatieglas_aantal;
}
if($_POST['isolatieglas'])
{
Isolatieglas: $isolatieglas ;
}
if($_POST['isolatieglas_uwaarde'])
{
U-waarde: $isolatieglas_uwaarde;
}
Maar dit schijnt niet te werken, ik krijg een lege pagina als ik op submit klik.
Gewijzigd op 01/01/1970 01:00:00 door Don
De lege pagina kan volgens mij niet aan dat stukje liggen. Je moet de if blokken wel buiten " halen. ook de variabele zoals $yourname
In mijn eerste post staat het scriptje, dat ik het naar een email adres verstuur enzo, daar kan het niet aanliggen. Als ik die if-statements er in zet, dan doet ie het niet meer.
Als ik bijvoorbeeld:
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:"
doe (dus afsluiten met een "), dan loopt ie ook vast.
Code (php)
Je moet dus niet vergeten er een puntkomma achter te zetten. Anders geeft ie namelijk een foutmelding
quotes in een echo doe je zo:
Code (php)
Je ziet nu ook dat de kleurtjes anders zijn ;)
Gewijzigd op 01/01/1970 01:00:00 door Tamara
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:";
Maar dan kom ik nog niet verder met die if statements, omdat ik niet weet wat hier aan scheelt:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:";
---------------------------- PERSOONLIJKE INFORMATIE ----------------------------
Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon
--------------------------------- ISOLATIEGLAS ----------------------------------
if($_POST['isolatieglas_aantal'])
{
Aantal isolatieglas: $isolatieglas_aantal;
}
if($_POST['isolatieglas'])
{
Isolatieglas: $isolatieglas ;
}
if($_POST['isolatieglas_uwaarde'])
{
U-waarde: $isolatieglas_uwaarde;
}
---------------------------- PERSOONLIJKE INFORMATIE ----------------------------
Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon
--------------------------------- ISOLATIEGLAS ----------------------------------
if($_POST['isolatieglas_aantal'])
{
Aantal isolatieglas: $isolatieglas_aantal;
}
if($_POST['isolatieglas'])
{
Isolatieglas: $isolatieglas ;
}
if($_POST['isolatieglas_uwaarde'])
{
U-waarde: $isolatieglas_uwaarde;
}
Ik geef het niet op! :p