Buongiorno a tutti,
sono nuovo di php ed ho realizzato questa pagina con l'aiuto dell'IA
cliccando il pulsante “salva” dovrebbe generare username e password random e salvare il record nella tabella operatori.
il problema è che cliccando “salva” il record non viene salvato e carica sempre la pagina errore.php
qualcuno di voi esperto in php riesce a capire dove potrebbe essere il problema?
Grazie.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nuovo Operatore</title>
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/operatore.css">
</head>
<body>
<?php
session_start();
include('connessione.php');
if (!isset($_SESSION['idazienda'])) {
header("Location: index.php");
exit();
}
if (!isset($_GET['idazienda']) || !isset($_SESSION['idazienda']) || $_SESSION['idazienda'] != $_GET['idazienda']) {
header("Location: errore.php");
exit();
}
$errore = ""; // Variabile per memorizzare eventuali messaggi di errore
// Funzione per verificare e garantire l'unicità di username, password e codice fiscale per l'idazienda corrente
function verificaUnivocitaDati($username, $password, $codiceFiscale, $idazienda, $conn) {
// Query per verificare se esiste già una combinazione di username, password e codice fiscale per l'idazienda corrente
$queryVerifica = "SELECT * FROM operatori WHERE idazienda = '$idazienda' AND (username = '$username' OR password = '$password' OR codice_fiscale = '$codiceFiscale')";
$result = $conn->query($queryVerifica);
// Se la combinazione esiste, restituisci un array con i dati dell'operatore esistente
if ($result->num_rows > 0) {
return $result->fetch_assoc();
}
// Se la combinazione non esiste, restituisci un array vuoto
return array();
}
// Verifica se è stato inviato il modulo
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$cognome = $_POST["cognome"];
$nome = $_POST["nome"];
$email = $_POST["email"];
$codiceFiscale = $_POST["codice_fiscale"];
$idazienda = $_POST["idazienda"];
$username = generaNuovoUsername();
$password = generaNuovaPassword();
$univoci = verificaUnivocitaDati($username, $password, $codiceFiscale, $idazienda, $conn);
if (is_string($univoci)) {
$errore = $univoci;
} else {
$queryInserimento = "INSERT INTO operatori (idazienda, cognome, nome, email, codice_fiscale, username, password, attivo) VALUES ('$idazienda', '$cognome', '$nome', '{$univoci['codice_fiscale']}', '$email', '{$univoci['username']}', '{$univoci['password']}', 1)";
if ($conn->query($queryInserimento) === TRUE) {
header("Location: operatori.php?idazienda=" . $idazienda);
exit();
} else {
$errore = "Errore durante l'inserimento dell'operatore: " . $conn->error;
}
}
}
?>
<nav>
<div id="riepilogo-container">
<span id="riepilogo-servizi">Nuovo Operatore</span>
</div>
<ul></ul>
</nav>
<div class="container-operatore">
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<label for="cognome">Cognome:</label>
<input type="text" name="cognome" required>
<label for="nome">Nome:</label>
<input type="text" name="nome" required>
<label for="codice_fiscale">Codice Fiscale:</label>
<input type="text" name="codice_fiscale" required>
<label for="email">Email:</label>
<input type="email" name="email" required>
<input type="hidden" name="idazienda" value="<?php echo $_GET['idazienda']; ?>">
<div class="button-container">
<button type="submit" name="salva">Salva</button>
<button type="button" onclick="annullaInserimento()">Annulla</button>
</div>
<?php if ($errore != ""): ?>
<div style="color: red;"><?php echo $errore; ?></div>
<?php endif; ?>
</form>
</div>
<script>
function annullaInserimento() {
window.location.href = "operatori.php?idazienda=<?php echo $_SESSION['idazienda']; ?>";
}
function generaNuovoUsername() {
var cognome = document.getElementById("cognome").value;
var nome = document.getElementById("nome").value;
var username = (cognome + nome).replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
username += Math.floor(Math.random() * 1000);
return username;
}
function generaNuovaPassword() {
var caratteriPermessi = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var lunghezzaPassword = 4;
var password = "";
for (var i = 0; i < lunghezzaPassword; i++) {
var indiceCasuale = Math.floor(Math.random() * caratteriPermessi.length);
password += caratteriPermessi.charAt(indiceCasuale);
}
return password;
}
</script>
</body>
</html>