Feedback gevraagd
Kenmerken:
Controle van alle invoervelden met reguliere expressies
Wachtwoord generator
bevestigingsemail
Ik hoor graag op en aanmerkingen verbeteringen, enz.
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
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
<?php
if (!IsSet($_POST["submit"]))
{
ShowForm();
}
else
{
HandleForm();
}
function ShowForm( $voorletter="", $tussenvoegsel="", $naam="", $straat="", $huisnr="",$postcode="", $woonplaats="", $tel="", $email="", $user="", $mail_list="")
{//Toon het formulier met eventueel de ingevulde waarden
echo "<table>";
echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">";
echo "<tr><td>Voorletters (max3)</td><td><input type=\"text\" name=\"voorletter\" value=\"$voorletter\"></td></tr>";
echo "<tr><td>Tussenvoegsel</td><td><input type=\"text\" name=\"tussenvoegsel\" value=\"$tussenvoegsel\"></td></tr>";
echo "<tr><td>Naam</td><td><input type=\"text\" name=\"naam\" value=\"$naam\"></td></tr>";
echo "<tr><td>Straat</td><td><input type=\"text\" name=\"straat\" value=\"$straat\"></td></tr>";
echo "<tr><td>Huisnr.</td><td><input type=\"text\" name=\"huisnr\" value=\"$huisnr\"></td></tr>";
echo "<tr><td>Postcode</td><td><input type=\"text\" name=\"postcode\" value=\"$postcode\"></td></tr>";
echo "<tr><td>Woonplaats</td><td><input type=\"text\" name=\"woonplaats\" value=\"$woonplaats\"></td></tr>";
echo "<tr><td>Telefoonnr.</td><td><input type=\"text\" name=\"tel\" value=\"$tel\"></td></tr>";
echo "<tr><td>Email</td><td><input type=\"text\" name=\"email\" value=\"$email\"></td></tr>";
echo "<tr><td>Gebruikersnaam</td><td><input type=\"text\" name=\"user\" value=\"$user\"></td></tr>";
echo "<tr><td>Ik wil op de mailinglist</td><td>Ja <input type=\"radio\" name=\"mail_list\" value=\"ja\"> Nee <input type=\"radio\" name=\"mail_list\" value=\"nee\"CHECKED></td></tr>";
echo "<tr><td>Druk op verzenden</td><td><input type=\"submit\" name =\"submit\" value=\"verzenden\"></td></tr>";
echo "</table>";
}
function HandleForm()
{//initialiseer foutvariabelen
$fout=FALSE;
$voorletter_fout=FALSE;
$tussenvoegsel_fout=FALSE;
$naam_fout=FALSE;
$straat_fout=FALSE;
$huisnr_fout=FALSE;
$postcode_fout=FALSE;
$woonplaats_fout=FALSE;
$tel_fout=FALSE;
$email_fout=FALSE;
$user_fout=FALSE;
$mail_list_fout=FALSE;
$user_fout=FALSE;
// Controleer of de ingevulde gegevens goed zijn
if (!ereg('^[A-Za-z.]+$', $_POST["voorletter"]))
{
$fout=TRUE;
$voorletter_fout=TRUE;
}
if (!ereg('^[A-Za-z ]*$', $_POST["tussenvoegsel"]))
{
$fout=TRUE;
$tussenvoegsel_fout= TRUE;
}
if (!ereg('^[A-Za-z. -]+$', $_POST["naam"]))
{
$fout=TRUE;
$naam_fout= TRUE;
}
if (!ereg('^[A-Za-z1-9 ]+[a-z]*', $_POST["straat"]))
{
$fout=TRUE;
$straat_fout= TRUE;
}
if (!ereg('^[0-9]+[A-Za-z]*', $_POST["huisnr"]))
{
$fout=TRUE;
$huisnr_fout= TRUE;
}
if (!ereg('^([0-9]{4})([[:space:]]?)([A-Z]{2})$', $_POST["postcode"]))
{
$fout=TRUE;
$postcode_fout= TRUE;
}
if (!ereg('^[A-Za-z ]+$', $_POST["woonplaats"]))
{
$fout=TRUE;
$woonplaats_fout= TRUE;
}
if (!ereg('^[0-9]{10}$', $_POST["tel"]))
{
$fout=TRUE;
$tel_fout= TRUE;
}
if (!ereg('^([0-9a-z]+)([0-9a-z\.-_]+)([@]+)([0-9a-z\.-_]+)\.([0-9a-z]+)', $_POST["email"]))
{
$fout=TRUE;
$email_fout= TRUE;
}
if (!ereg('^[A-Za-z0-9]+$', $_POST["user"]))
{
$fout=TRUE;
$user_fout= TRUE;
}
if (!ereg('^[a-z]{2,3}$', $_POST["mail_list"]))
{
$fout=TRUE;
$mail_list_fout= TRUE;
}
//controle of gebruikersnaam al bestaat
require_once('ooievaar.php');
$sql= "SELECT user FROM Klanten";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
if ($row["user"]==$_POST["user"])
{
$fout=TRUE;
$username_fout=TRUE;
}
}
mysql_close($db);
if ($fout)
{
//Toon de fout ingevulde waarden
echo ( $fout ? "<li/>Er is een fout opgetreden" : "");
echo ($voorletter_fout ? "<li/>Ongeldige voorletters" : "");
echo ($tussenvoegsel_fout ? "<li/>Ongeldig tussenvoegsel" : "");
echo ($naam_fout ? "<li/>Ongeldige naam" : "");
echo ($straat_fout ? "<li/>Ongeldige straatnaam" : "");
echo ($huisnr_fout ? "<li/>Ongeldige huisnr" : "");
echo ($postcode_fout ? "<li/>Ongeldige postcode" : "");
echo ($woonplaats_fout ? "<li/>Ongeldige woonplaats" : "");
echo ($postcode_fout ? "<li/>Ongeldige tel.nr" : "");
echo ($email_fout ? "<li/>Ongeldige email" : "");
echo ($tel_fout ? "<li/>Ongeldige telefoonnr." : "");
echo ($user_fout ? "<li/>Ongeldige gebruikersnaam" : "");
echo ($username_fout ? "<li/>Deze gebruikersnaam wordt al gebruikt" : "");
ShowForm($_POST['voorletter'], $_POST['tussenvoegsel'], $_POST['naam'], $_POST['straat'],$_POST['huisnr'], $_POST['postcode'],$_POST['woonplaats'], $_POST['tel'], $_POST['email'], $_POST['user']);
}
else//als alles goed is stuur naar database
{
upload();
}
}
function upload()
{// Wachtwoord generator vi password()
$wachtwoord=password();
$ww=md5($wachtwoord);
$voorletter= $_POST["voorletter"];
$tussenvoegsel=$_POST["tussenvoegsel"];
$naam= $_POST["naam"];
$straat= $_POST["straat"];
$huisnr=$_POST["huisnr"];
$postcode= $_POST["postcode"];
$woonplaats= $_POST["woonplaats"];
$tel= $_POST["tel"];
$email= $_POST["email"];
$user= $_POST["user"];
$mail_list=$_POST["mail_list"];
//maak verbinding
require_once('ooievaar.php');
////Schrijf gegevens naar database
$sql = "INSERT INTO Klanten (voorletter, tussenvoegsel, naam, straat,huisnr, postcode, woonplaats, tel, email, user, mail_list, wachtwoord) VALUES ('$voorletter','$tussenvoegsel',' $naam','$straat','$huisnr', '$postcode', ' $woonplaats', '$tel', '$email', '$user','$mail_list', '$ww')";
if (!mysql_query($sql))
{
//Als schrijven naar database is mislukt
echo "Het opsturen van uw gegevens is mislukt";
}
else //Schrijven naar database is gelukt stuur een email ter bevestiging
{
$onderwerp = "Registratie OOIEVAARSSERVICE.nl\n";
$bericht = "U heeft bij Ooievaarsservice.nl geregistreerd.\n
Uw usernaam = "."$user"."\n
Uw wachtwoord = "."$wachtwoord";
$mail = mail($_POST['email'], $onderwerp, $bericht, "FROM:[email protected] \r\n");
if($mail)
echo("Email succesvol verzonden!");
else
echo("Emailen mislukt!");
}
mysql_close($db);
}
//De wachtwoordgenerator
function password()
{
$Password='';
mt_srand((double)microtime()*1000000);
$Password.=substr("bcdfghjklmnpqrstvwxz",mt_rand(0,18),1);
$Password.=substr("aeuy",mt_rand(0,3),1);
$Password.=substr("bcdfghjklmnpqrstvwxz",mt_rand(0,18),1);
$Password.=substr("!#*&",mt_rand(0,4),1);
$Password.=substr("bcdfghjklmnpqrstvwxz",mt_rand(0,18),1);
$Password.=substr("aeuy",mt_rand(0,3),1);
$Password.=substr("bcdfghjklmnpqrstvwxz",mt_rand(0,18),1);
$Password.=substr("23456789",mt_rand(0,7),1);
return $Password;
}
?>
if (!IsSet($_POST["submit"]))
{
ShowForm();
}
else
{
HandleForm();
}
function ShowForm( $voorletter="", $tussenvoegsel="", $naam="", $straat="", $huisnr="",$postcode="", $woonplaats="", $tel="", $email="", $user="", $mail_list="")
{//Toon het formulier met eventueel de ingevulde waarden
echo "<table>";
echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">";
echo "<tr><td>Voorletters (max3)</td><td><input type=\"text\" name=\"voorletter\" value=\"$voorletter\"></td></tr>";
echo "<tr><td>Tussenvoegsel</td><td><input type=\"text\" name=\"tussenvoegsel\" value=\"$tussenvoegsel\"></td></tr>";
echo "<tr><td>Naam</td><td><input type=\"text\" name=\"naam\" value=\"$naam\"></td></tr>";
echo "<tr><td>Straat</td><td><input type=\"text\" name=\"straat\" value=\"$straat\"></td></tr>";
echo "<tr><td>Huisnr.</td><td><input type=\"text\" name=\"huisnr\" value=\"$huisnr\"></td></tr>";
echo "<tr><td>Postcode</td><td><input type=\"text\" name=\"postcode\" value=\"$postcode\"></td></tr>";
echo "<tr><td>Woonplaats</td><td><input type=\"text\" name=\"woonplaats\" value=\"$woonplaats\"></td></tr>";
echo "<tr><td>Telefoonnr.</td><td><input type=\"text\" name=\"tel\" value=\"$tel\"></td></tr>";
echo "<tr><td>Email</td><td><input type=\"text\" name=\"email\" value=\"$email\"></td></tr>";
echo "<tr><td>Gebruikersnaam</td><td><input type=\"text\" name=\"user\" value=\"$user\"></td></tr>";
echo "<tr><td>Ik wil op de mailinglist</td><td>Ja <input type=\"radio\" name=\"mail_list\" value=\"ja\"> Nee <input type=\"radio\" name=\"mail_list\" value=\"nee\"CHECKED></td></tr>";
echo "<tr><td>Druk op verzenden</td><td><input type=\"submit\" name =\"submit\" value=\"verzenden\"></td></tr>";
echo "</table>";
}
function HandleForm()
{//initialiseer foutvariabelen
$fout=FALSE;
$voorletter_fout=FALSE;
$tussenvoegsel_fout=FALSE;
$naam_fout=FALSE;
$straat_fout=FALSE;
$huisnr_fout=FALSE;
$postcode_fout=FALSE;
$woonplaats_fout=FALSE;
$tel_fout=FALSE;
$email_fout=FALSE;
$user_fout=FALSE;
$mail_list_fout=FALSE;
$user_fout=FALSE;
// Controleer of de ingevulde gegevens goed zijn
if (!ereg('^[A-Za-z.]+$', $_POST["voorletter"]))
{
$fout=TRUE;
$voorletter_fout=TRUE;
}
if (!ereg('^[A-Za-z ]*$', $_POST["tussenvoegsel"]))
{
$fout=TRUE;
$tussenvoegsel_fout= TRUE;
}
if (!ereg('^[A-Za-z. -]+$', $_POST["naam"]))
{
$fout=TRUE;
$naam_fout= TRUE;
}
if (!ereg('^[A-Za-z1-9 ]+[a-z]*', $_POST["straat"]))
{
$fout=TRUE;
$straat_fout= TRUE;
}
if (!ereg('^[0-9]+[A-Za-z]*', $_POST["huisnr"]))
{
$fout=TRUE;
$huisnr_fout= TRUE;
}
if (!ereg('^([0-9]{4})([[:space:]]?)([A-Z]{2})$', $_POST["postcode"]))
{
$fout=TRUE;
$postcode_fout= TRUE;
}
if (!ereg('^[A-Za-z ]+$', $_POST["woonplaats"]))
{
$fout=TRUE;
$woonplaats_fout= TRUE;
}
if (!ereg('^[0-9]{10}$', $_POST["tel"]))
{
$fout=TRUE;
$tel_fout= TRUE;
}
if (!ereg('^([0-9a-z]+)([0-9a-z\.-_]+)([@]+)([0-9a-z\.-_]+)\.([0-9a-z]+)', $_POST["email"]))
{
$fout=TRUE;
$email_fout= TRUE;
}
if (!ereg('^[A-Za-z0-9]+$', $_POST["user"]))
{
$fout=TRUE;
$user_fout= TRUE;
}
if (!ereg('^[a-z]{2,3}$', $_POST["mail_list"]))
{
$fout=TRUE;
$mail_list_fout= TRUE;
}
//controle of gebruikersnaam al bestaat
require_once('ooievaar.php');
$sql= "SELECT user FROM Klanten";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
if ($row["user"]==$_POST["user"])
{
$fout=TRUE;
$username_fout=TRUE;
}
}
mysql_close($db);
if ($fout)
{
//Toon de fout ingevulde waarden
echo ( $fout ? "<li/>Er is een fout opgetreden" : "");
echo ($voorletter_fout ? "<li/>Ongeldige voorletters" : "");
echo ($tussenvoegsel_fout ? "<li/>Ongeldig tussenvoegsel" : "");
echo ($naam_fout ? "<li/>Ongeldige naam" : "");
echo ($straat_fout ? "<li/>Ongeldige straatnaam" : "");
echo ($huisnr_fout ? "<li/>Ongeldige huisnr" : "");
echo ($postcode_fout ? "<li/>Ongeldige postcode" : "");
echo ($woonplaats_fout ? "<li/>Ongeldige woonplaats" : "");
echo ($postcode_fout ? "<li/>Ongeldige tel.nr" : "");
echo ($email_fout ? "<li/>Ongeldige email" : "");
echo ($tel_fout ? "<li/>Ongeldige telefoonnr." : "");
echo ($user_fout ? "<li/>Ongeldige gebruikersnaam" : "");
echo ($username_fout ? "<li/>Deze gebruikersnaam wordt al gebruikt" : "");
ShowForm($_POST['voorletter'], $_POST['tussenvoegsel'], $_POST['naam'], $_POST['straat'],$_POST['huisnr'], $_POST['postcode'],$_POST['woonplaats'], $_POST['tel'], $_POST['email'], $_POST['user']);
}
else//als alles goed is stuur naar database
{
upload();
}
}
function upload()
{// Wachtwoord generator vi password()
$wachtwoord=password();
$ww=md5($wachtwoord);
$voorletter= $_POST["voorletter"];
$tussenvoegsel=$_POST["tussenvoegsel"];
$naam= $_POST["naam"];
$straat= $_POST["straat"];
$huisnr=$_POST["huisnr"];
$postcode= $_POST["postcode"];
$woonplaats= $_POST["woonplaats"];
$tel= $_POST["tel"];
$email= $_POST["email"];
$user= $_POST["user"];
$mail_list=$_POST["mail_list"];
//maak verbinding
require_once('ooievaar.php');
////Schrijf gegevens naar database
$sql = "INSERT INTO Klanten (voorletter, tussenvoegsel, naam, straat,huisnr, postcode, woonplaats, tel, email, user, mail_list, wachtwoord) VALUES ('$voorletter','$tussenvoegsel',' $naam','$straat','$huisnr', '$postcode', ' $woonplaats', '$tel', '$email', '$user','$mail_list', '$ww')";
if (!mysql_query($sql))
{
//Als schrijven naar database is mislukt
echo "Het opsturen van uw gegevens is mislukt";
}
else //Schrijven naar database is gelukt stuur een email ter bevestiging
{
$onderwerp = "Registratie OOIEVAARSSERVICE.nl\n";
$bericht = "U heeft bij Ooievaarsservice.nl geregistreerd.\n
Uw usernaam = "."$user"."\n
Uw wachtwoord = "."$wachtwoord";
$mail = mail($_POST['email'], $onderwerp, $bericht, "FROM:[email protected] \r\n");
if($mail)
echo("Email succesvol verzonden!");
else
echo("Emailen mislukt!");
}
mysql_close($db);
}
//De wachtwoordgenerator
function password()
{
$Password='';
mt_srand((double)microtime()*1000000);
$Password.=substr("bcdfghjklmnpqrstvwxz",mt_rand(0,18),1);
$Password.=substr("aeuy",mt_rand(0,3),1);
$Password.=substr("bcdfghjklmnpqrstvwxz",mt_rand(0,18),1);
$Password.=substr("!#*&",mt_rand(0,4),1);
$Password.=substr("bcdfghjklmnpqrstvwxz",mt_rand(0,18),1);
$Password.=substr("aeuy",mt_rand(0,3),1);
$Password.=substr("bcdfghjklmnpqrstvwxz",mt_rand(0,18),1);
$Password.=substr("23456789",mt_rand(0,7),1);
return $Password;
}
?>
Gewijzigd op 21/01/2006 15:45:00 door Leen Strijk
Zet dit nergens aan vast omdat dit dan (is mij verteld) letterlijk eraan vast zit en dus als waar wordt meegenomen.
Voorbeeld:
Ik zou erdan van maken:
bcdfghjklmnpqrstvwxz
en 2 keer deze:
aeuy
Probeer het eens met deze in een variabele te zetten, en de lengte te bepalen. Dan kan iedereen de gebruikte strings zo aanpassen.
Ik vind iets als dit trouwens veel mooier:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$tekens=range('a'-'z');
$tekens.=range(0-9)
$tekens.=range('Z'-'A');
$tekens=shuffle($tekens);
$pass="";
for($i=0;$i<8;$i++){
$pass.=$tekens[$i];
}
/* altijd een password van 8 willekeurige tekens. ook acht verschillende, en het kunnen hoofdletters, kleine letters of cijfers zijn.
Ik ben er geen fan van dat er tekens als #, & enz in wachtwoorden worden gebruikt.
*/
echo $pass;
?>
$tekens=range('a'-'z');
$tekens.=range(0-9)
$tekens.=range('Z'-'A');
$tekens=shuffle($tekens);
$pass="";
for($i=0;$i<8;$i++){
$pass.=$tekens[$i];
}
/* altijd een password van 8 willekeurige tekens. ook acht verschillende, en het kunnen hoofdletters, kleine letters of cijfers zijn.
Ik ben er geen fan van dat er tekens als #, & enz in wachtwoorden worden gebruikt.
*/
echo $pass;
?>
Eventueel een rand erbij gebruiken.
dank je voor de input
Ik ben er nog niet tegenaan gelopen.
Misschien omdat ik een editor gebruik met kleuren.
Mijn gevoel zegtr me namelijk dat ik wel eens een = teken heb moeten loshalen met een space.
Maar als je ziet dat de kleur niet goed is en je doet er een spatie tussen, en hij is weer wel goed gaat het eigenlijk zonder dat je er bij stistaat.
Maar ik ga er zeker op letten.
Trouwens ik vind het meestal overzichtelijker staan om ze even los te halen, maar in de hitte van de strijd vergeet je weleens wat hé.
lissy:
Zet dit nergens aan vast omdat dit dan (is mij verteld) letterlijk eraan vast zit en dus als waar wordt meegenomen.
Heb ik nog nooit van gehoord en ook nog nooit last van gehad. Het enige is dat het wat duidelijker/makkelijker is te lezen.
Bedankt, is zeker een stuk sneller programmeren.
Een enkel speciaal teken vind ik niet zo'n punt.
SanThe:
Heb ik nog nooit van gehoord en ook nog nooit last van gehad. Het enige is dat het wat duidelijker/makkelijker is te lezen.
lissy:
Zet dit nergens aan vast omdat dit dan (is mij verteld) letterlijk eraan vast zit en dus als waar wordt meegenomen.
Heb ik nog nooit van gehoord en ook nog nooit last van gehad. Het enige is dat het wat duidelijker/makkelijker is te lezen.
Tja... soms onthoud ik wel is wat en echt dit is me verteld.... :-P
Robert:
Dat mag zo niet hoor. range () geeft een array terug en die kun je niet met . aan elkaar rijgen. Dit moet met array_merge ()
Gewijzigd op 21/01/2006 16:21:00 door Jan Koehoorn
lissy:
Tja... soms onthoud ik wel is wat en echt dit is me verteld.... :-P
Het is ook zeker een goede tip. Alleen ik ben het oneens met de 'aan jou vertelde' reden.
@Lissy: net deze even getest:
geeft gewoon een leeg scherm. Als hij hem true zou maken zou er 1 moeten verschijnen.
$array = range('a', 'z');