VERIFICARE SE UN UTENTE E' GIA PRESENTE NEL DB

di il
7 risposte

VERIFICARE SE UN UTENTE E' GIA PRESENTE NEL DB

Salve ragazzi, ho bisogno di un piccolo aiuto per un form di registazione. Ho già effettuato tutte le procedure per la connessione al database e la registrazione di un nuovo utente(effettuando anche il controllo che tutti i campi non fossero vuoti). Il problema ora è che devo controllare che alla registrazione di un nuovo utente, non sia già presente nel database(questo controllo deve essere effettuato sulla email in quanto per il login ho impostato solo email e password senza username). Ecco il codice che ho scritto fin'ora(ve lo posto senza html):


<?php

$connessione = mysqli_connect('localhost', 'root', '', 'contatti');

if($connessione) {
    echo 'Sei connesso!';
}
?>

<?php
$avviso = "";

if(isset($_POST['registrati'])) {
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $codice_fiscale = $_POST['codice_fiscale'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $numero = $_POST['numero'];
    

    if(!empty($nome) && !empty($cognome) && !empty($codice_fiscale) && !empty($email) && !empty($password) && !empty($numero)) {
        $query = "INSERT INTO utenti(nome, cognome, codice_fiscale, email, password, numero) VALUES ('{$nome}' , '{$cognome}', '{$codice_fiscale}', '{$email}', '{$password}', '{$numero}')";

    
        $creaUtenti = mysqli_query($connessione, $query);

        if(!$creaUtenti) {
            die('Query fallita' . mysqli_error($connessione));
        }
        
        $avviso = "Dati registrati con successo";
        echo $avviso;
    }
     else {
        $avviso = "I campi non devono essere vuoti!";
        echo $avviso;
    }
} 

?>

7 Risposte

  • Re: VERIFICARE SE UN UTENTE E' GIA PRESENTE NEL DB

    Ciao,
    puoi fare una select con una where confronti l'email e controlli se ci sono righe. Se si l'utente esiste.

    Ciao
  • Re: VERIFICARE SE UN UTENTE E' GIA PRESENTE NEL DB

    Non ci riesco...potrei avere un piccolo aiutino con il codice ve ne sarei infinitamente grato
  • Re: VERIFICARE SE UN UTENTE E' GIA PRESENTE NEL DB

    Ciao,
    un modo semplice può essere il seguente:
    
    
    $mysqli = new mysqli("localhost", "my_user", "my_password", "DB");
    
    $query_check_user = "SELECT * FROM tua_tabella WHERE campo_mail='".trim($_POST['email'])."'";
    
    $result = $mysqli->query($query_check_user);
    
    $num_row = mysqli_num_rows($result);
    
    if ($num_row>0){
    echo 'Utente registrato!';
    }
    
    
    Ti ho diviso tutti i passaggi... così ti è più semplice.

    Puoi utilizzare PDO invece di mysqli.

    Ciao
  • Re: VERIFICARE SE UN UTENTE E' GIA PRESENTE NEL DB

    Mi da questo errore

    Fatal error: Uncaught TypeError: mysqli_num_rows(): Argument #1 ($result) must be of type mysqli_result, bool given in C:\xampp\htdocs\PAOLO_VILLANI\info_prenotazioni.php:27 Stack trace: #0 C:\xampp\htdocs\PAOLO_VILLANI\info_prenotazioni.php(27): mysqli_num_rows(false) #1 {main} thrown in C:\xampp\htdocs\PAOLO_VILLANI\info_prenotazioni.php on line 27
  • Re: VERIFICARE SE UN UTENTE E' GIA PRESENTE NEL DB

    Sorry... errore mio!

    Ti dice che il valore è di tipo booleano!

    Quindi modifica così:
    
    
    if ($num_row){
    echo 'Utente registrato!';
    }
    
    
    O:
    
    
    if ($num_row===true){
    echo 'Utente registrato!';
    }
    
    
    Non cambia nulla! Esegue la condizione se è vera!

    Ciao
  • Re: VERIFICARE SE UN UTENTE E' GIA PRESENTE NEL DB

    Puoi anche settare come chiave della tabella utenti la mail. In questo modo il DB non accetta records con mail già esistente. e nel caso restituisce un errore che devi intercettare.
  • Re: VERIFICARE SE UN UTENTE E' GIA PRESENTE NEL DB

    In ogni caso attenzione alla sensibilita al case

    Inoltre è una voragine di sicurezza mostruosa quel modo di compilare i comandi sql
Devi accedere o registrarti per scrivere nel forum
7 risposte