Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- CREATE TABLE users (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- username VARCHAR(50) NOT NULL UNIQUE,
- email VARCHAR(100) NOT NULL UNIQUE,
- password VARCHAR(255) NOT NULL,
- nome_cognome VARCHAR(200) NOT NULL,
- data_nascita DATE,
- sesso ENUM('M', 'F', 'Altro'),
- bio TEXT,
- città VARCHAR(100),
- provincia VARCHAR(100),
- paese_regione VARCHAR(100),
- indirizzo VARCHAR(255),
- numero_civico VARCHAR(10),
- foto VARCHAR(255),
- telefono VARCHAR(15),
- codice_postale VARCHAR(10),
- role ENUM('admin', 'staff', 'user') DEFAULT 'user',
- email_verified TINYINT(1) DEFAULT 0,
- is_active TINYINT(1) DEFAULT 0,
- token VARCHAR(100) DEFAULT NULL,
- token_expiration DATETIME DEFAULT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- );
- */
- public function register($username, $email, $password, $nome_cognome, $data_nascita, $sesso, $bio, $citta, $provincia, $paese_regione, $indirizzo, $numero_civico, $foto, $telefono, $codice_postale, $role = 'user') {
- // Controlla se l'username è unico
- if (!$this->isUnique('username', $username)) {
- return "Username already exists.";
- }
- // Controlla se l'email è unica
- if (!$this->isUnique('email', $email)) {
- return "Email already exists.";
- }
- $hash_password = password_hash($password, PASSWORD_BCRYPT);
- $token = bin2hex(random_bytes(50)); // Genera un token per la verifica email
- $token_expiration = date("Y-m-d H:i:s", strtotime('+24 hours')); // Imposta la scadenza del token
- $query = "INSERT INTO users (username, email, password, nome_cognome, data_nascita, sesso, bio, città, provincia, paese_regione, indirizzo, numero_civico, foto, telefono, codice_postale, role, email_verified, is_active, token, token_expiration)
- VALUES (:username, :email, :password, :nome_cognome, :data_nascita, :sesso, :bio, :città, :provincia, :paese_regione, :indirizzo, :numero_civico, :foto, :telefono, :codice_postale, :role, :email_verified, :is_active, :token, :token_expiration)";
- $email_verified =0;
- $is_active = 0;
- $stmt = $this->conn->prepare($query);
- $stmt->bindParam(':username', $username);
- $stmt->bindParam(':email', $email);
- $stmt->bindParam(':password', $hash_password);
- $stmt->bindParam(':nome_cognome', $nome_cognome);
- $stmt->bindParam(':data_nascita', $data_nascita);
- $stmt->bindParam(':sesso', $sesso);
- $stmt->bindParam(':bio', $bio);
- $stmt->bindParam(':città', $citta);
- $stmt->bindParam(':provincia', $provincia);
- $stmt->bindParam(':paese_regione', $paese_regione);
- $stmt->bindParam(':indirizzo', $indirizzo);
- $stmt->bindParam(':numero_civico', $numero_civico);
- $stmt->bindParam(':foto', $foto);
- $stmt->bindParam(':telefono', $telefono);
- $stmt->bindParam(':codice_postale', $codice_postale);
- $stmt->bindParam(':role', $role);
- $stmt->bindParam(':email_verified', $email_verified);
- $stmt->bindParam(':is_active', $is_active);
- $stmt->bindParam(':token', $token);
- $stmt->bindParam(':token_expiration', $token_expiration);
- if ($stmt->execute()) {
- $mailer = new Mailer();
- $mailer->sendVerificationEmail($email, $token);
- return true;
- }
- return "Registration failed, please try again.";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement