0) $errors[] = 'Username già esistente';
if (!empty($errors)) {
$error = implode(' | ', $errors);
} else {
$nome_e = mysqli_real_escape_string($conn, $nome);
$cognome_e = mysqli_real_escape_string($conn, $cognome);
$data_nascita_e = mysqli_real_escape_string($conn, $data_nascita);
$luogo_nascita_e = mysqli_real_escape_string($conn, $luogo_nascita);
$cod_fiscale_e = mysqli_real_escape_string($conn, $cod_fiscale);
$telefono_e = mysqli_real_escape_string($conn, $telefono);
$password_e = mysqli_real_escape_string($conn, $password);
$oggi = date('Y-m-d');
$sql_person = "INSERT INTO `person` (nome, cognome, data_nascita, luogo_nascita, cod_fiscale, telefono) VALUES ('$nome_e', '$cognome_e', '$data_nascita_e', '$luogo_nascita_e', '$cod_fiscale_e', '$telefono_e')";
if (!mysqli_query($conn, $sql_person)) { $error = 'Errore inserimento persona'; }
else {
$person_id = mysqli_insert_id($conn);
$sql_user = "INSERT INTO `user` (descrizione, data, person_id, password) VALUES ('$username_e', '$oggi', $person_id, '$password_e')";
if (!mysqli_query($conn, $sql_user)) { $error = 'Errore inserimento utente'; }
else {
$user_id = mysqli_insert_id($conn);
$sql_perm = "INSERT INTO `permission` (user_id, role, data) VALUES ($user_id, $role_id, '$oggi')";
if (!mysqli_query($conn, $sql_perm)) { $error = 'Errore assegnazione ruolo'; }
else { $msg = 'Utente creato correttamente'; }
}
}
}
} elseif ($azione === 'update_user') {
$user_id = (int)($_POST['user_id'] ?? 0);
$username = trim($_POST['username'] ?? '');
$password = trim($_POST['password'] ?? ''); // opzionale
$nome = trim($_POST['nome'] ?? '');
$cognome = trim($_POST['cognome'] ?? '');
$data_nascita = trim($_POST['data_nascita'] ?? '');
$luogo_nascita = trim($_POST['luogo_nascita'] ?? '');
$cod_fiscale = strtoupper(trim($_POST['cod_fiscale'] ?? ''));
$telefono = preg_replace('/\D+/', '', $_POST['telefono'] ?? '');
if ($user_id <= 0) { $error = 'ID utente non valido'; }
else {
$username_e = mysqli_real_escape_string($conn, $username);
$nome_e = mysqli_real_escape_string($conn, $nome);
$cognome_e = mysqli_real_escape_string($conn, $cognome);
$data_nascita_e = mysqli_real_escape_string($conn, $data_nascita);
$luogo_nascita_e = mysqli_real_escape_string($conn, $luogo_nascita);
$cod_fiscale_e = mysqli_real_escape_string($conn, $cod_fiscale);
$telefono_e = mysqli_real_escape_string($conn, $telefono);
// Trova person_id
$res = mysqli_query($conn, "SELECT person_id FROM `user` WHERE user_id = $user_id");
if ($res && mysqli_num_rows($res) === 1) {
$pi = (int)mysqli_fetch_assoc($res)['person_id'];
// Update person
$ok1 = mysqli_query($conn, "UPDATE `person` SET nome='$nome_e', cognome='$cognome_e', data_nascita='$data_nascita_e', luogo_nascita='$luogo_nascita_e', cod_fiscale='$cod_fiscale_e', telefono='$telefono_e' WHERE id_persona=$pi");
// Update username
$ok2 = mysqli_query($conn, "UPDATE `user` SET descrizione='$username_e' WHERE user_id=$user_id");
// Update password se valorizzata e conforme
$ok3 = true;
if ($password !== '') {
if (preg_match('/\s/', $password) || strlen($password) < 8 || !preg_match('/[a-z]/', $password) || !preg_match('/[A-Z]/', $password) || !preg_match('/[^a-zA-Z0-9]/', $password)) {
$ok3 = false; $error = 'Password non conforme ai requisiti';
} else {
$password_e = mysqli_real_escape_string($conn, $password);
$ok3 = mysqli_query($conn, "UPDATE `user` SET password='$password_e' WHERE user_id=$user_id");
}
}
if ($ok1 && $ok2 && $ok3) { $msg = 'Utente aggiornato'; }
else if (!$error) { $error = 'Errore aggiornamento utente'; }
} else { $error = 'Utente non trovato'; }
}
} elseif ($azione === 'delete_user') {
$user_id = (int)($_POST['user_id'] ?? 0);
if ($user_id <= 0) { $error = 'ID utente non valido'; }
else {
// Rimuove permission, poi utente e infine person
$res = mysqli_query($conn, "SELECT person_id FROM `user` WHERE user_id = $user_id");
if ($res && mysqli_num_rows($res) === 1) {
$pi = (int)mysqli_fetch_assoc($res)['person_id'];
mysqli_query($conn, "DELETE FROM `permission` WHERE user_id = $user_id");
$okU = mysqli_query($conn, "DELETE FROM `user` WHERE user_id = $user_id");
$okP = false;
if ($okU) { $okP = mysqli_query($conn, "DELETE FROM `person` WHERE id_persona = $pi"); }
if ($okU && $okP) { $msg = 'Utente eliminato'; }
else { $error = 'Errore eliminazione utente'; }
} else { $error = 'Utente non trovato'; }
}
}
}
// Query utenti con persona e ruolo corrente (ultimo per data, ruolo più alto in parità)
$sql = "SELECT u.user_id, u.descrizione AS username, u.data AS registrato_il,
p.nome, p.cognome, p.cod_fiscale, p.telefono,
COALESCE((
SELECT r.name
FROM `permission` pm
JOIN `role` r ON r.id = pm.role
WHERE pm.user_id = u.user_id
ORDER BY pm.data DESC, pm.role ASC
LIMIT 1
), 'utente') AS role_name
FROM `user` u
JOIN `person` p ON p.id_persona = u.person_id
ORDER BY u.user_id ASC";
$result = mysqli_query($conn, $sql);
if (!$result) {
$error = mysqli_error($conn);
}
// Se editing
$editId = isset($_GET['edit_id']) ? (int)$_GET['edit_id'] : 0;
$editUser = null;
if ($editId > 0) {
$resE = mysqli_query($conn, "SELECT u.user_id, u.descrizione AS username, u.data, u.person_id, p.nome, p.cognome, p.data_nascita, p.luogo_nascita, p.cod_fiscale, p.telefono FROM `user` u JOIN `person` p ON p.id_persona = u.person_id WHERE u.user_id = $editId LIMIT 1");
if ($resE && mysqli_num_rows($resE) === 1) { $editUser = mysqli_fetch_assoc($resE); }
}
?>
Amministrazione | Utenti
Errore DB:
| ID |
Username |
Ruolo |
Registrato il |
Nome |
Cognome |
Cod. Fiscale |
Telefono |
Azioni |
0): ?>
|
|
|
|
|
|
|
|
|
| Nessun utente trovato |