Codice: Seleziona tutto
-- Creazione della tabella utenti
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY, -- ID univoco per ogni utente
username VARCHAR(50) NOT NULL UNIQUE, -- Nome utente univoco
email VARCHAR(100) NOT NULL UNIQUE, -- Email univoca
password_hash VARCHAR(255) NOT NULL, -- Hash della password
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- Data di registrazione
last_login TIMESTAMP NULL -- Ultimo accesso
);
-- Aggiungere un utente alla tabella
INSERT INTO users (username, email, password_hash)
VALUES (
'TechnoforumAdmin',
'admin@technoforum.it',
SHA2('SecurePassword123!', 256) -- Hash della password con SHA-256
);
-- Recuperare gli utenti registrati
SELECT id, username, email, created_at, last_login
FROM users;
-- Aggiornare la data di ultimo accesso
UPDATE users
SET last_login = CURRENT_TIMESTAMP
WHERE username = 'TechnoforumAdmin';
-- Eliminare un utente dalla tabella (se necessario)
DELETE FROM users
WHERE username = 'UserToDelete';
Creazione della tabella users:
La tabella contiene campi essenziali come username, email, e password_hash.
Utilizza VARCHAR per username ed email, e un hash di lunghezza adeguata per la password.
created_at registra automaticamente la data di registrazione.
last_login tiene traccia di quando un utente ha effettuato l'accesso l'ultima volta.
Hash delle password:
La funzione SHA2(password, 256) genera un hash sicuro della password. Questo è fondamentale per la sicurezza, poiché le password non dovrebbero mai essere archiviate in chiaro.
Inserimento di un utente:
Viene mostrato come aggiungere un amministratore iniziale o un utente generico con email e password.
Recupero degli utenti:
Una query per visualizzare tutti gli utenti registrati con informazioni utili, come la data di registrazione e l'ultimo accesso.
Aggiornamento dell'ultimo accesso:
Puoi aggiornare il campo last_login quando un utente effettua l'accesso, mantenendo un registro della sua attività.
Eliminazione di un utente:
Questa query consente di rimuovere un utente dal database in caso di necessità.
Come Implementare
Creazione del database:
Salva la query in un file .sql ed eseguila tramite un'interfaccia come phpMyAdmin o da terminale con un client MySQL/MariaDB.
Integrazione con PHP:
Usa questa tabella come base per autenticazione e gestione utenti in un'applicazione PHP.
Esempio: quando un utente si registra, esegui un INSERT; quando si logga, aggiorna last_login.
Espansioni:
Aggiungi ulteriori campi come role (per definire ruoli utente) o status (per gestire account bloccati/attivi).
Migra l'hashing delle password a funzioni più moderne come PASSWORD_HASH() in PHP per maggiore sicurezza.
Questa query SQL è essenziale per qualsiasi sistema che necessita di gestione utenti, sicurezza, e scalabilità. Puoi usarla come punto di partenza per progetti più complessi!