-
Notifications
You must be signed in to change notification settings - Fork 0
/
creaPalette.php
113 lines (98 loc) · 3.68 KB
/
creaPalette.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
<?php
include_once("config.php");
include_once("verifyTokenJWT.php");
// Funzione per ottenere l'header Authorization
function getAuthorizationHeader() {
$headers = null;
if (isset($_SERVER['Authorization'])) {
$headers = trim($_SERVER["Authorization"]);
} else if (isset($_SERVER['HTTP_AUTHORIZATION'])) { // Nginx or fast CGI
$headers = trim($_SERVER["HTTP_AUTHORIZATION"]);
} elseif (function_exists('apache_request_headers')) {
$requestHeaders = apache_request_headers();
$requestHeaders = array_combine(array_map('ucwords', array_keys($requestHeaders)), array_values($requestHeaders));
if (isset($requestHeaders['Authorization'])) {
$headers = trim($requestHeaders['Authorization']);
}
}
return $headers;
}
// Funzione per validare un colore HEX
function isValidHexColor($color) {
return preg_match('/^#[0-9A-Fa-f]{6}$/', $color);
}
// Connessione al database
$connessione = new mysqli($db_host, $db_user, $db_password, $db_name);
if ($connessione->connect_error) {
$response = array(
"status" => "error",
"message" => "Errore di connessione al database"
);
} else {
// Verifica del token
$token = getAuthorizationHeader();
if ($token) {
$token = trim(str_replace('Bearer', '', $token));
} else {
http_response_code(401);
echo json_encode(array("message" => "Missing Authorization Header"));
exit;
}
// Verify the token using the function
$decodedToken = verifyToken($token);
// Handle invalid token
if ($decodedToken === false) {
http_response_code(401);
echo json_encode(array("message" => "Invalid Token"));
exit;
}
// Ottieni l'ID utente dal token decodificato
$creating_user_id = $decodedToken['id_utente'] ?? null;
if ($creating_user_id === null) {
http_response_code(401);
echo json_encode(array("message" => "Invalid Token"));
exit;
}
// Ottieni i dati dal post
$data = json_decode(file_get_contents("php://input"), true);
$color1 = isset($data['color1']) ? $data['color1'] : null;
$color2 = isset($data['color2']) ? $data['color2'] : null;
$color3 = isset($data['color3']) ? $data['color3'] : null;
$color4 = isset($data['color4']) ? $data['color4'] : null;
// Verifica dei dati
if (empty($color1) || empty($color2) || empty($color3) || empty($color4)) {
$response = array(
"status" => "error",
"message" => "Tutti i colori sono obbligatori"
);
} elseif (!isValidHexColor($color1) || !isValidHexColor($color2) || !isValidHexColor($color3) || !isValidHexColor($color4)) {
$response = array(
"status" => "error",
"message" => "Tutti i colori devono essere in formato HEX (#RRGGBB)"
);
} else {
// Prepara query
$stmt = $connessione->prepare("INSERT INTO palettes (color1, color2, color3, color4, creating_user_id) VALUES (?, ?, ?, ?, ?)");
// Associa i parametri alla query
$stmt->bind_param("sssss", $color1, $color2, $color3, $color4, $creating_user_id);
// Esegue la query
if ($stmt->execute()) {
$response = array(
"status" => "success",
"message" => "Palette inviata con successo"
);
} else {
$response = array(
"status" => "error",
"message" => "Errore durante l'invio della palette"
);
}
$stmt->close();
}
}
// Restituisci la risposta come JSON
header('Content-Type: application/json');
echo json_encode($response);
// Chiudi la connessione al database
$connessione->close();
?>