controle email adress
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
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
<?php
include("inc_connect_mysql.php");
if (!empty($_POST)){
// Eerst controleren of inlognaam (= e-mailadres) al bestaat in database
$email = $_POST["email"];
$wachtwoord = $_POST["wachtwoord"];
$query = "SELECT email FROM users WHERE email='" . $email . "'";
$result = mysqli_query($conn,$query) or die ("FOUT: " . mysqli_error($conn));
/*if (preg_match("/^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$/", "$email")
echo "Het email adres is goed";
else
echo "Het email adres is fout"; */
if (mysqli_num_rows($result) > 0) {
// e-mailadres al aanwezig in de database, foutmelding tonen
$tekst = "Dit e-mailadres (<b>$email</b>) bestaat al\n.
<a href=\"" . $_SERVER["PHP_SELF"] ."\">Opnieuw registreren</a>\n";
die($tekst);
}else{
// OK, Query opbouwen
$query="INSERT INTO users (email, wachtwoord) ";
$query .= "VALUES ('$email', '$wachtwoord');";
$result = mysqli_query($conn,$query) or die ("FOUT: " . mysqli_error($conn));
$tekst = "Bedankt voor uw aanmelding.<br>
U kunt nu <a href=\"login.php\">inloggen</a>";
die ($tekst);
}
}
?>
include("inc_connect_mysql.php");
if (!empty($_POST)){
// Eerst controleren of inlognaam (= e-mailadres) al bestaat in database
$email = $_POST["email"];
$wachtwoord = $_POST["wachtwoord"];
$query = "SELECT email FROM users WHERE email='" . $email . "'";
$result = mysqli_query($conn,$query) or die ("FOUT: " . mysqli_error($conn));
/*if (preg_match("/^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$/", "$email")
echo "Het email adres is goed";
else
echo "Het email adres is fout"; */
if (mysqli_num_rows($result) > 0) {
// e-mailadres al aanwezig in de database, foutmelding tonen
$tekst = "Dit e-mailadres (<b>$email</b>) bestaat al\n.
<a href=\"" . $_SERVER["PHP_SELF"] ."\">Opnieuw registreren</a>\n";
die($tekst);
}else{
// OK, Query opbouwen
$query="INSERT INTO users (email, wachtwoord) ";
$query .= "VALUES ('$email', '$wachtwoord');";
$result = mysqli_query($conn,$query) or die ("FOUT: " . mysqli_error($conn));
$tekst = "Bedankt voor uw aanmelding.<br>
U kunt nu <a href=\"login.php\">inloggen</a>";
die ($tekst);
}
}
?>
<html>
<head>
<title>Registreren</title>
</head>
<body>
<h2>Registeren</h2>
Welkom, u kunt zich hier registreren. Als inlognaam wordt uw e-mailadres gebruikt.
<hr><br>
<form name="form1" method="post" action="">
E-mailadres: <input name="email" type="text" placeholder="[email protected]"
size="30" maxlength="40"> (maximaal 40 tekens)<br><br>
Wachtwoord: <input name="wachtwoord" type="password" placeholder="paswoord"
size="10" maxlength="8"> (maximaal 8 tekens)<br><br>
<input type="submit" name="submit" value="Registeren">
<input name="reset" type="reset" value="Leegmaken">
</form>
</body>
</html>
Toevoeging op 03/03/2015 02:15:19:
Ivo P op 03/03/2015 02:12:24:
Regel 5 t/m 7 vervangen Door
Regel 5 t/m 7 vervangen Door
Toevoeging op 03/03/2015 02:17:36:
En je vergeet je password te hashen
en een limiet van max 8 tekens in een password ???
Gewijzigd op 03/03/2015 02:13:56 door Ivo P
<input type="email" name="email">
Helaas herkennen niet alle browsers dit type input.
Daarnaast moet je ook rekening houden met data die buiten een form wordt aangeleverd, of forms die worden aangepast.
Een eindcontrole aan de php-kant zal altijd uitgevoerd moeten worden.
Kevin Jager op 03/03/2015 06:04:31:
1 manier die ik vaak gebruik bij e-mail is de input type aanpassen dus zo:
<input type="email" name="email">
<input type="email" name="email">
Bovenstaande geldt voor HTML5 en is een client-side validatie en kan makkelijk omzeild worden. Validatie in PHP blijft een must.
mochten er hieromtrent tips zijn, zijn ze steeds welkom. Ik post het even als het al dan niet lukt.
-wat betreft hashen van het paswoord, dit komt later in de cursus aan bod.
-inderdaad wat naïef om tevreden te zijn met 8 tekens voor het paswoord.
bedankt
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
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
<?php
// functie die de formuliervelden valideert en foutmeldingen aanmaakt
function validate($email)
{
$errors = [];
if(!strlen($email))
$errors[] = 'U heeft geen email adres ingevuld.';
else if(!filter_var($email, FILTER_VALIDATE_EMAIL))
$errors[] = 'U heeft een ongeldig email adres ingevuld.';
return $errors;
}
// initialisatie
$email = '';
$errors = [];
// indien het formulier verstuurd is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$email = $_POST['email'];
// valideer de ingevulde gegevens
$errors = validate($email);
// als er dan geen fouten zijn stuur de gebruiker door naar een bedank pagina
if(!count($errors))
{
// hier kun je nog een email versturen en/of de gegevens opslaan in de database
header('Location: bedankt.html');
exit;
}
}
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>een titel</title>
</head>
<body>
<ul id="errors">
<?php
foreach($errors as $error)
echo '<li>' . $error . '</li>';
?>
</ul>
<form action="" method="post">
<input type="email" name="email" value="<?php echo $email; ?>" />
<button type="submit">Verzenden</button>
</form>
</body>
</html>
// functie die de formuliervelden valideert en foutmeldingen aanmaakt
function validate($email)
{
$errors = [];
if(!strlen($email))
$errors[] = 'U heeft geen email adres ingevuld.';
else if(!filter_var($email, FILTER_VALIDATE_EMAIL))
$errors[] = 'U heeft een ongeldig email adres ingevuld.';
return $errors;
}
// initialisatie
$email = '';
$errors = [];
// indien het formulier verstuurd is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$email = $_POST['email'];
// valideer de ingevulde gegevens
$errors = validate($email);
// als er dan geen fouten zijn stuur de gebruiker door naar een bedank pagina
if(!count($errors))
{
// hier kun je nog een email versturen en/of de gegevens opslaan in de database
header('Location: bedankt.html');
exit;
}
}
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>een titel</title>
</head>
<body>
<ul id="errors">
<?php
foreach($errors as $error)
echo '<li>' . $error . '</li>';
?>
</ul>
<form action="" method="post">
<input type="email" name="email" value="<?php echo $email; ?>" />
<button type="submit">Verzenden</button>
</form>
</body>
</html>
Gewijzigd op 03/03/2015 17:24:27 door Frank Nietbelangrijk