Validarea datelor inseamna obligarea utilizatorului sa trimita doar date intr-un format permis. De exemplu: numele sa nu contina decat litere mari, mici spatiu si cratima, numarul de telefon sa contina doar cifre (eventual si punct), numele de utilizator sa fie intre 5 si 10 caractere, parola sa fie minim 7 caractere, etc.
Intr-o aplicatie reala, validarea datelor este obligatorie din urmatoarele motive:
-
Securitate
- Consistenta bazei de date
In general, validarea datelor cu PHP se face cu ajutorul expresiilor regulate (regex). Vezi subcapitolul
5.8 Regular Expressions (REGEX)
Scriptul de inregistrare devine acum:
inregistrare.php1
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
| <?php
if (isset($_POST["buton"])) {
$erori = array();
$proceseaza = 0;
$prenume = $_POST["prenume"];
$nume = $_POST["nume"];
$utilizator = $_POST["utilizator"];
$parola = $_POST["parola"];
$email = $_POST["email"];
$hobby = $_POST["hobby"];
$limbi_straine = $_POST["limbi_straine"];
if (!$prenume) {
$erori[] = 'Completeaza prenume';
} else if (!preg_match('/^[a-zA-Z\-\s\']{2,20}$/', $prenume)) {
$erori[] = 'Prenume invalid';
}
if (!$nume) {
$erori[] = 'Completeaza nume';
} else if (!preg_match('/^[a-zA-Z\-\s\']{2,20}$/', $nume)) {
$erori[] = 'Nume invalid';
}
if (!$utilizator) {
$erori[] = 'Completeaza utilizator';
} else if (!preg_match('/^[a-zA-Z\-0-9]{4,15}$/', $utilizator)) {
$erori[] = 'Utilizator invalid';
}
if (!$parola) {
$erori[] = 'Completeaza parola';
} else if (preg_match('/[\'\"]/', $parola)) {
$erori[] = 'Parola contine caractere invalide';
}
if (!$email) {
$erori[] = 'Completeaza emailul';
} else if (!preg_match('/(?i)[a-z0-9\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/', $email)) {
$erori[] = 'Email incorect';
}
if (!is_array($hobby)) {
$erori[] = 'Completeaza cel putin un hobby';
}
if (!is_array($limbi_straine)) {
$erori[] = 'Completeaza cel putin o limba straina';
}
if (!count($erori)) {
$proceseaza = 1;
}
if ($proceseaza) {
if (is_array($hobby)) {
$hobby = join(',', $hobby);
}
if (is_array($limbi_straine)) {
$limbi_straine = join(',', $limbi_straine);
}
echo '<br /><hr><br />';
echo 'Va multumim pentru completarea formularului !';
echo '<br />';
echo 'Datele Dvs sunt: <br /><br />';
echo 'Nume: ' . $prenume . ' ' . $nume;
echo '<br />';
echo 'Utilizator: ' . $utilizator;
echo '<br />';
echo 'Parola: ' . $parola;
echo '<br />';
echo 'Email: ' . $email;
echo '<br />';
echo 'Hobby: ' . $hobby;
echo '<br />';
echo 'Limbi straine: ' . $limbi_straine;
echo '<br />';
echo '<br /><hr><br />';
}
if (isset($erori)) {
foreach ($erori as $eroare) {
echo $eroare;
echo '<br />';
}
}
}
?>
<br /><br />
<form method="post" action="">
Prenume <br /> <input type="text" name="prenume" value="" /> <br />
Nume <br /> <input type="text" name="nume" value="" /> <br />
Utilizator <br /> <input type="text" name="utilizator" value="" /> <br />
Parola <br /> <input type="password" name="parola" value="" /> <br />
Email <br /> <input type="text" name="email" value="" /> <br />
Hobby <br />
Inot<input type="checkbox" name="hobby[]" value="inot" />
Ski<input type="checkbox" name="hobby[]" value="ski" />
Alergat<input type="checkbox" name="hobby[]" value="alergat" />
Cantat<input type="checkbox" name="hobby[]" value="cantat" />
<br /><br />
Limbi straine vorbite <br />
<select name="limbi_straine[]" multiple="multiple">
<option value="ro">Romana</option>
<option value="en">Engleza</option>
<option value="es">Spaniola</option>
<option value="de">Germana</option>
</select>
<br /><br />
Mesaj <br />
<textarea name="mesaj" cols="20" rows="20"></textarea>
<br /><br />
<input type="submit" name="buton" value="Trimite" />
<br />
</form> |