-
Notifications
You must be signed in to change notification settings - Fork 0
/
functions.php
104 lines (103 loc) · 6.01 KB
/
functions.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
<?php
error_reporting(0);
function ValidateLogin($item)
{
$function = substr(strtolower(__FUNCTION__), 8);
if(empty($item))
return ["parameter" => $function, "passed" => false, "note" => "Proszę podać login."];
if(!preg_match("/^[0-9A-Za-z]{1}[0-9A-Za-z_]{1,13}[0-9A-Za-z]{1}$/", $item))
{
if(strlen($item) < 3 || strlen($item) > 15)
return ["parameter" => $function, "passed" => false, "note" => "Login musi zawierać od 3 do 15 znaków."];
if(str_ends_with($item, "_") || str_starts_with($item, "_"))
return ["parameter" => $function, "passed" => false, "note" => "Znak _ nie może znajdować się na początku lub końcu loginu."];
return ["parameter" => $function, "passed" => false, "note" => "Login może zawierać tylko wielkie i małe litery alfabetu łacińskiego, cyfry i znak _."];
}
if(preg_match("/^\d+$/", $item))
return ["parameter" => $function, "passed" => false, "note" => "Login nie może składać się z samych cyfr."];
if(substr_count($item, "_") > 1)
return ["parameter" => $function, "passed" => false, "note" => "Login może zawierać maksymalnie jeden znak _."];
require "connect.php";
$connect = new mysqli($host, $db_user, $db_password, $db_name);
$connect->set_charset("utf8mb4");
$query = $connect->prepare("SELECT * FROM uzytkownik WHERE nazwa_uzytkownika = ?");
$query->bind_param('s', $item);
$query->execute();
$result = $query->get_result();
$howManyRows = $result->num_rows;
$connect->close();
if($howManyRows > 0)
return ["parameter" => $function, "passed" => false, "note" => "Taki login już istnieje. Wybierz inny."];
return ["parameter" => $function, "passed" => true, "note" => null];
}
function ValidatePassword($item, $check)
{
$function = substr(strtolower(__FUNCTION__), 8);
if(empty($item))
return ["parameter" => $function, "passed" => false, "note" => "Proszę wprowadzić hasło."];
if(!preg_match("/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!-\/:-@[-`{-~])[a-zA-Z\d!-\/:-@[-`{-~ ]{8,255}$/", $item))
return ["parameter" => $function, "passed" => false, "note" => "Hasło musi zawierać minimum 8 znaków (w tym cyfry, małe i duże litery oraz znaki specjalne)."];
if($item == $check)
return ["parameter" => $function, "passed" => false, "note" => "Hasło powinno być inne niż login."];
return ["parameter" => $function, "passed" => true, "note" => null];
}
function ValidatePassword2($item, $check)
{
$function = substr(strtolower(__FUNCTION__), 8);
if(empty($item))
return ["parameter" => $function, "passed" => false, "note" => "Proszę wprowadzić hasło."];
if($item != $check)
return ["parameter" => $function, "passed" => false, "note" => "Wprowadzone hasła nie są identyczne."];
return ["parameter" => $function, "passed" => true, "note" => null];
}
function ValidateEmail($item)
{
$function = substr(strtolower(__FUNCTION__), 8);
if(empty($item))
return ["parameter" => $function, "passed" => false, "note" => "Proszę podać adres e-mail."];
$item2 = filter_var($item, FILTER_SANITIZE_EMAIL);
if(filter_var($item2, FILTER_VALIDATE_EMAIL) == false || $item != $item2)
return ["parameter" => $function, "passed" => false, "note" => "Ten adres e-mail jest nieprawidłowy."];
require "connect.php";
$connect = new mysqli($host, $db_user, $db_password, $db_name);
$connect->set_charset("utf8mb4");
$query = $connect->prepare("SELECT uzytkownik_id FROM uzytkownik WHERE email = ?");
$query->bind_param('s', $item);
$query->execute();
$result = $query->get_result();
$howManyRows = $result->num_rows;
$connect->close();
if($howManyRows > 0)
return ["parameter" => $function, "passed" => false, "note" => "Taki email jest już przypisany do innego konta."];
return ["parameter" => $function, "passed" => true, "note" => null];
}
function ValidateDate($item)
{
$function = substr(strtolower(__FUNCTION__), 8);
if(empty($item))
return ["parameter" => $function, "passed" => false, "note" => "Proszę podać poprawną datę."];
$date_arr = explode("-", $item);
if(count($date_arr) != 3 || !checkdate((int)$date_arr[1], (int)$date_arr[2], (int)$date_arr[0]))
return ["parameter" => $function, "passed" => false, "note" => "Proszę podać poprawną datę (format RRRR-MM-DD)."];
if(mktime(0, 0, 0, $date_arr[1], $date_arr[2], $date_arr[0]) > strtotime("- 13 years"))
return ["parameter" => $function, "passed" => false, "note" => "Rejestracja jest dostępna dla użytkowników, którzy ukończyli 13 lat."];
return ["parameter" => $function, "passed" => true, "note" => null];
}
function ValidateRegulations($item)
{
$function = substr(strtolower(__FUNCTION__), 8);
if(!filter_var($item, FILTER_VALIDATE_BOOLEAN))
return ["parameter" => $function, "passed" => false, "note" => "Aby kontynuować, musisz zaakceptować regulamin."];
return ["parameter" => $function, "passed" => true, "note" => null];
}
function ValidateCaptcha()
{
$function = substr(strtolower(__FUNCTION__), 8);
$secret = "6LfiUfknAAAAAAFOnaJDuO2oBJHv5gHjnKYDUSFz";
$check = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response=".$_POST["g-recaptcha-response"]);
$answer = json_decode($check);
if($answer->success && $answer->score >= 0.5)
return ["parameter" => $function, "passed" => true, "note" => null];
return ["parameter" => $function, "passed" => false, "note" => "Zweryfikuj, że jesteś człowiekiem."];
}
?>