Registratie script
Ik ben nog niet zo heel lang met PHP bezig, en werk nu aan een registratie script.
Helaas zie ik door de bomen het bos niet meer.
Kan iemand van jullie mijn script controleren, en mij vertellen of er fouten in zitten, en zo ja, welke.
Alvast 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
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
<?php
/**
* @author Ben Janssen
* @copyright 2011
*/
ini_set('display_errors',1);
error_reporting(E_ALL);
session_start();
include 'cfg/mbrcon.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/secure/latest/securimage.php';
$securimage = new Securimage();
if ($securimage->check($_POST['captcha_code']) == false)
{
// the code was incorrect
// handle the error accordingly with your other error checking
// or you can do something really basic like this
die('The code you entered was incorrect. Go back and try again.');
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$_SESSION['errors'] = array();
$_SESSION['data'] = array();
$form = array(
'nm','anm','afd','kind','email','ww','ww2'
);
$form2 = array(
'pnm','panm');
$pw = $_POST['ww'];
$pw2 = md5($pw);
if(isset($_POST[$form]))
{
$value = trim($_POST[$form]);
}
$_SESSION['data'][$veld] = $value;
if(in_array($veld,$form2))
{
continue;
}
if($veld == 'email')
{
if(!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$value))
{
$_SESSION['errors'][$veld] = true;
$errors[] = 'Dit is geen geldig email adres.';
}
}
elseif($veld == 'ww')
{
if($veld['ww'] == $veld['ww2'])
{
$_SESSION['errors'][$veld] = true;
$errors[] = 'Het wachtwoord komt niet overeen.';
}
else
{
$veld['ww'](ctype_alnum($password) // numbers & digits only
&& strlen($password)>6 // at least 7 chars
&& strlen($password)<21 // at most 20 chars
&& preg_match('`[a-z]`',$password) // at least one lower case
&& preg_match('`[0-9]`',$password)); // at least one digit
$_SESSION['errors'][$veld] = true;
$errors[] = 'Het wachtwoord moet uit minimaal 7 en maximaal 20 letters of cijfers bestaan.';
}
}
if(empty($value))
{
$_SESSION['errors'][$veld] = true;
$errors[] = 'U bent het volgende vergeten, : '.$veld;
}
}
?>
/**
* @author Ben Janssen
* @copyright 2011
*/
ini_set('display_errors',1);
error_reporting(E_ALL);
session_start();
include 'cfg/mbrcon.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/secure/latest/securimage.php';
$securimage = new Securimage();
if ($securimage->check($_POST['captcha_code']) == false)
{
// the code was incorrect
// handle the error accordingly with your other error checking
// or you can do something really basic like this
die('The code you entered was incorrect. Go back and try again.');
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$_SESSION['errors'] = array();
$_SESSION['data'] = array();
$form = array(
'nm','anm','afd','kind','email','ww','ww2'
);
$form2 = array(
'pnm','panm');
$pw = $_POST['ww'];
$pw2 = md5($pw);
if(isset($_POST[$form]))
{
$value = trim($_POST[$form]);
}
$_SESSION['data'][$veld] = $value;
if(in_array($veld,$form2))
{
continue;
}
if($veld == 'email')
{
if(!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$value))
{
$_SESSION['errors'][$veld] = true;
$errors[] = 'Dit is geen geldig email adres.';
}
}
elseif($veld == 'ww')
{
if($veld['ww'] == $veld['ww2'])
{
$_SESSION['errors'][$veld] = true;
$errors[] = 'Het wachtwoord komt niet overeen.';
}
else
{
$veld['ww'](ctype_alnum($password) // numbers & digits only
&& strlen($password)>6 // at least 7 chars
&& strlen($password)<21 // at most 20 chars
&& preg_match('`[a-z]`',$password) // at least one lower case
&& preg_match('`[0-9]`',$password)); // at least one digit
$_SESSION['errors'][$veld] = true;
$errors[] = 'Het wachtwoord moet uit minimaal 7 en maximaal 20 letters of cijfers bestaan.';
}
}
if(empty($value))
{
$_SESSION['errors'][$veld] = true;
$errors[] = 'U bent het volgende vergeten, : '.$veld;
}
}
?>
2 aanwijzingen:
Je gebruikt $veld als string en als array, dat kan uiteraard nooit goed gaan
en de volgende functies zijn in mijn ogen uit den boze om te gebruiken:
die()
empty()
Zou je me kunnen vertellen waar ik hem gebruik als string, en waar als array.
Ik heb nog best wel moeite met het onderscheiden van die 2.
Heb je ook alternatieven voor die() en empty()??
Alvast bedankt
die(), correcte foutafhandeling, script logica
empty(), trim en http://php.net/manual/en/language.operators.comparison.php
$veld als string op 43, 52
$veld als array op 54