Na invullen formulier en koppelen database ook Email
Ben al aardig wat uurtjes bezig om te zoeken naar bruikbare informatie voor mijn probleem maar kan niets bruikbaars vinden (wat ik snap dan)
ik heb een formulier op de site staan. na het invullen zorgt de Submit knop ervoor dat de gegevens worden gecontroleerd en indien akkoord naar de Mysql database worden geschreven. Prima.
Maar nu moet ik zelf telkens controleren of er iemand het formulier heeft ingevuld.
Vraag: ik wil graag dat er na het versturen van de gegevens naar de database een email wordt verstuurd naar een/mijn emailadres welke mij dus bevestigt dat er een formulier is ingevuld! (mail hoeft niet perse de ingevulde gegevens te bevatten)
toevoegen.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<?php
if(mysql_connect('localhost','*********','*********'))
{
mysql_select_db('********_formulier') or die(mysql_error());
}
else
{
echo 'Kan geen verbinding maken';
exit;
}
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['voornaam'] == '')
{
$aFouten[] = 'Je hebt geen naam ingevuld';
}
if($_POST['achternaam'] == '')
{
$aFouten[] = 'Je hebt geen achternaam ingevuld';
}
if($_POST['leeftijd'] == '' || !is_numeric($_POST['leeftijd']))
{
$aFouten[] = 'Je hebt een ongeldig geboortejaar (alleen jaar invullen) ingevuld';
}
if($_POST['Vestigingsplaats'] == '')
{
$aFouten[] = 'Je hebt geen vestigingsplaats ingevuld';
}
if($_POST['Email'] == '')
{
$aFouten[] = 'Je hebt geen geldig Email-adres ingevuld ingevuld';
}
if($_POST['Mobiel'] == '')
{
$aFouten[] = 'Je hebt geen geldig mobiel nummeringevuld';
}
if($_POST['Nationaliteit'] == '')
{
$aFouten[] = 'Je hebt geen juiste Nationaliteit ingevuld';
}
if($_POST['Voertuig'] == '')
{
$aFouten[] = 'Je hebt geen juist voertuig ingevuld';
}
if($_POST['Bouwjaar'] == '')
{
$aFouten[] = 'Je hebt geen correct bouwjaar ingevuld';
}
if($_POST['Kenteken'] == '')
{
$aFouten[] = 'Je hebt geen juist kenteken ingevuld';
}
if($_POST['inlognaam'] == '')
{
$aFouten[] = 'Inlog naam niet bij ons bekend';
}
if($_POST['passwoord'] == '')
{
$aFouten[] = 'Verkeerd wachtwoord ingevoerd';
}
if(count($aFouten) != 0)
{
echo 'De volgende fouten zijn opgetreden: <br /><br />';
for($Fi = 0; $Fi < count($aFouten); $Fi++)
{
echo $aFouten[$Fi].'<br />';
}
echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
}
else
{
mysql_query("INSERT INTO formulier (voornaam,achternaam,leeftijd,Vestigingsplaats,Email,mobiel,Nationaliteit,Voertuig,Bouwjaar,Kenteken,inlognaam,passwoord)
VALUES
('".addslashes($_POST['voornaam'])."',
'".addslashes($_POST['achternaam'])."',
'".addslashes($_POST['leeftijd'])."',
'".addslashes($_POST['Vestigingsplaats'])."',
'".addslashes($_POST['Email'])."',
'".addslashes($_POST['Mobiel'])."',
'".addslashes($_POST['Nationaliteit'])."',
'".addslashes($_POST['Voertuig'])."',
'".addslashes($_POST['Bouwjaar'])."',
'".addslashes($_POST['Kenteken'])."',
'".addslashes($_POST['inlognaam'])."',
'".$_POST['passwoord']."')") or die (mysql_error());
echo 'De gegevens zijn succesvol opgeslagen in de database';
}
}
else
{
?>
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
<br><br><br>
<table width="450px">
</tr>
<tr>
<td valign="top">
<label for="voornaam">Voornaam *</label>
</td>
<td valign="top">
<input type="text" name="voornaam" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="achternaam">Achternaam *</label>
</td>
<td valign="top">
<input type="text" name="achternaam" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="leeftijd">Geboortejaar *</label>
</td>
<td valign="top">
<input type="text" name="leeftijd" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Vestigingsplaats">Vestigingsplaats *</label>
</td>
<td valign="top">
<input type="text" name="Vestigingsplaats" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Email">Email *</label>
</td>
<td valign="top">
<input type="text" name="Email" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Mobiel">Mobiel *</label>
</td>
<td valign="top">
<input type="text" name="Mobiel" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Nationaliteit">Nationaliteit *</label>
</td>
<td valign="top">
<input type="text" name="Nationaliteit" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="Voertuig">Voertuig+Kleur *</label>
</td>
<td valign="top">
<input type="text" name="Voertuig" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="Bouwjaar">Bouwjaar *</label>
</td>
<td valign="top">
<input type="text" name="Bouwjaar" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="Kenteken">Kenteken *</label>
</td>
<td valign="top">
<input type="text" name="Kenteken" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="inlognaam">Geef een Inlog-naam</label>
</td>
<td valign="top">
<input type="text" name="inlognaam" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="passwoord">Wachtwoord: min. 1 cijfer + hoofdletter(voorbeeld Marco102)</label>
</td>
<td valign="top">
<input type="text" name="passwoord" maxlength="50" size="30">
</td>
</tr>
</table>
<input type="submit" name="verzenden" value="verzenden">
<br><br>Na ontvangst van Uw gegevens worden deze binnen 48 uur gecontroleerd en geactiveerd! Hierna kunt U inloggen.
</form>
<?
}
?>
if(mysql_connect('localhost','*********','*********'))
{
mysql_select_db('********_formulier') or die(mysql_error());
}
else
{
echo 'Kan geen verbinding maken';
exit;
}
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['voornaam'] == '')
{
$aFouten[] = 'Je hebt geen naam ingevuld';
}
if($_POST['achternaam'] == '')
{
$aFouten[] = 'Je hebt geen achternaam ingevuld';
}
if($_POST['leeftijd'] == '' || !is_numeric($_POST['leeftijd']))
{
$aFouten[] = 'Je hebt een ongeldig geboortejaar (alleen jaar invullen) ingevuld';
}
if($_POST['Vestigingsplaats'] == '')
{
$aFouten[] = 'Je hebt geen vestigingsplaats ingevuld';
}
if($_POST['Email'] == '')
{
$aFouten[] = 'Je hebt geen geldig Email-adres ingevuld ingevuld';
}
if($_POST['Mobiel'] == '')
{
$aFouten[] = 'Je hebt geen geldig mobiel nummeringevuld';
}
if($_POST['Nationaliteit'] == '')
{
$aFouten[] = 'Je hebt geen juiste Nationaliteit ingevuld';
}
if($_POST['Voertuig'] == '')
{
$aFouten[] = 'Je hebt geen juist voertuig ingevuld';
}
if($_POST['Bouwjaar'] == '')
{
$aFouten[] = 'Je hebt geen correct bouwjaar ingevuld';
}
if($_POST['Kenteken'] == '')
{
$aFouten[] = 'Je hebt geen juist kenteken ingevuld';
}
if($_POST['inlognaam'] == '')
{
$aFouten[] = 'Inlog naam niet bij ons bekend';
}
if($_POST['passwoord'] == '')
{
$aFouten[] = 'Verkeerd wachtwoord ingevoerd';
}
if(count($aFouten) != 0)
{
echo 'De volgende fouten zijn opgetreden: <br /><br />';
for($Fi = 0; $Fi < count($aFouten); $Fi++)
{
echo $aFouten[$Fi].'<br />';
}
echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
}
else
{
mysql_query("INSERT INTO formulier (voornaam,achternaam,leeftijd,Vestigingsplaats,Email,mobiel,Nationaliteit,Voertuig,Bouwjaar,Kenteken,inlognaam,passwoord)
VALUES
('".addslashes($_POST['voornaam'])."',
'".addslashes($_POST['achternaam'])."',
'".addslashes($_POST['leeftijd'])."',
'".addslashes($_POST['Vestigingsplaats'])."',
'".addslashes($_POST['Email'])."',
'".addslashes($_POST['Mobiel'])."',
'".addslashes($_POST['Nationaliteit'])."',
'".addslashes($_POST['Voertuig'])."',
'".addslashes($_POST['Bouwjaar'])."',
'".addslashes($_POST['Kenteken'])."',
'".addslashes($_POST['inlognaam'])."',
'".$_POST['passwoord']."')") or die (mysql_error());
echo 'De gegevens zijn succesvol opgeslagen in de database';
}
}
else
{
?>
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
<br><br><br>
<table width="450px">
</tr>
<tr>
<td valign="top">
<label for="voornaam">Voornaam *</label>
</td>
<td valign="top">
<input type="text" name="voornaam" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="achternaam">Achternaam *</label>
</td>
<td valign="top">
<input type="text" name="achternaam" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="leeftijd">Geboortejaar *</label>
</td>
<td valign="top">
<input type="text" name="leeftijd" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Vestigingsplaats">Vestigingsplaats *</label>
</td>
<td valign="top">
<input type="text" name="Vestigingsplaats" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Email">Email *</label>
</td>
<td valign="top">
<input type="text" name="Email" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Mobiel">Mobiel *</label>
</td>
<td valign="top">
<input type="text" name="Mobiel" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Nationaliteit">Nationaliteit *</label>
</td>
<td valign="top">
<input type="text" name="Nationaliteit" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="Voertuig">Voertuig+Kleur *</label>
</td>
<td valign="top">
<input type="text" name="Voertuig" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="Bouwjaar">Bouwjaar *</label>
</td>
<td valign="top">
<input type="text" name="Bouwjaar" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="Kenteken">Kenteken *</label>
</td>
<td valign="top">
<input type="text" name="Kenteken" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="inlognaam">Geef een Inlog-naam</label>
</td>
<td valign="top">
<input type="text" name="inlognaam" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="passwoord">Wachtwoord: min. 1 cijfer + hoofdletter(voorbeeld Marco102)</label>
</td>
<td valign="top">
<input type="text" name="passwoord" maxlength="50" size="30">
</td>
</tr>
</table>
<input type="submit" name="verzenden" value="verzenden">
<br><br>Na ontvangst van Uw gegevens worden deze binnen 48 uur gecontroleerd en geactiveerd! Hierna kunt U inloggen.
</form>
<?
}
?>
Beste Dennis,
super bedankt voor je snelle reactie maar uh....
Dit soort dingen heb ik vast ook gezien tijdens de afgelopen uren zoeken. Voor jou waarschijnlijk allemaal abc maar waar voeg ik dit toe dan/
Moet ik een apart php bestandje maken en aanroepen of kan ik gewoon ergens iets op mijn toevoegen.php plakken.
Sorry hoor, maar ik heb mijn site met heel veel vallen en heeeel veel opstaan in elkaar geknutseld. (Ik leer wel iedere keer bij gelukkig)
Rob
En als je wilt gaan mailen, kan je beter een mail-class implementer dan zelf het wiel opnieuw uit te gaan vinden.
- SwiftMailer
- PHP Mailer
-------------------
- empty is een zinloze functie!
- je vergeet te controleren of de $_POST[<veld>] bestaat de ja of de nee.
- addslashes heb je niet nodig en zeer zeker niet bij het inserten van data in de database tabel, gebruik _real_escape_string
- or die() is geen fatsoenlijke foutafhandeling! Je dient een alternatief aan te bieden als het ergens op 1 of andere manier fout gaat.
- is_numeric is ook niet de juiste manier om leefttijd in gehele jaren mee te controleren, gebruik ctype_digit
- die for loop om fouten te tonen is overbodig, je kan net zo goed de <br /> bij de string opnemen en als je fouten constateerd dan is het een kwestie van explode
- en pleur geen password ongecodeerd de database in
Ik heb de getoonde code in elkaar geknutseld met de nodige hulp van leden van dit forum.
Ik begrijp dat de oplossing van Dennis (op mijn echte vraag) dus geen oplossing is?
(en password wordt automatisch gecodeerd als deze in de database gaat?)
de _real_escape_string moet ik idd doen om e.e.a. ook veiliger te maken
Quote:
Ik begrijp dat de oplossing van Dennis (op mijn echte vraag) dus geen oplossing is?
Nee dat is geen oplossing, tenzij jij alle ins en outs weet van mail-headers en ook nog eens weet wat welke mail-client wel kan en niet kan.
Quote:
en password wordt automatisch gecodeerd als deze in de database gaat?)
Hoe kom je daar nu bij? Ik haal het toch echt niet aan voor de KzK.
Wat ik weet is dat de wachtwoorden voor mij in de database ,alleen gecodeerd te zien zijn. Enige wat ik zie is de hint. zitten nogal wat ge-include php.bestandjes achter.
Ik heb meerdere formulieren op deze site die allemaal keurig netjes per email worden verstuurd. dacht dat het wellicht eenvoudig zou zijn een 2e action aan een submit button toe te voegen; dus eerst naar de dbase laden en vervolgens een email sturen naar [email protected] of zo.
Het is ook eenvoudig om na (of desnoods voor) het muteren van gegevens in de database een mail te sturen. Werd al eerder verwezen naar phpmailer/swiftmailer.
Valt af en toe niet mee om hulp te vragen en alleen technische termen en onnodig scherpe kritiek te krijgen. De genoemde verwijzing naar phpmailer was wel opbouwend, dus ga daar eerst mee verder.
Bedankt
PHP is enigszins vergelijkbaar. De 1e keer maak je fouten. Die keren daarna vast ook nog wel, maar aldoende leer je.
Noppes is meestal kort en bondig in zijn opmerkingen, maar neem zijn adviezen wel ter harte. Je kunt er alleen maar beter van worden.
Vragen staat vrij. Post dan aub wel alleen relevante code. 225 regels is wat veel gezien je vraag.
Ook Noppes bedankt, ga ermee aan de gang en kom ongetwijfeld nog een keer terug.