Visualizzazione risultati 1 fino 4 di 4

Discussione: Controllo username presente nel database

  1. #1
    Guest

    Predefinito Controllo username presente nel database

    Ciao,
    voglio controllare che nel mio database all'iscrizione di un nuovo utente non sia già presente quell'username.
    Lo script in parte funziona ma dice sempre che l'username è già esistente
    Codice PHP:
    // Create connection
    $conn = new mysqli($servername, $username, $password, $db_name);
    // Check connection
    if ($conn->connect_error) {
    die(
    "Connection failed: " . $conn->connect_error);
    }

    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $scuola = $_POST['scuola'];
    $città = $_POST['città'];
    $email = $_POST['email'];
    $username = $_POST['username'];
    $password = $_POST['password'];
    $ripetipass = $_POST['ripetipass'];

    $sql = "SELECT username FROM utenti WHERE username = '".$username."'";
    $result = mysqli_query($conn, $sql);
    if (
    mysqli_num_rows($result) == 1) {
    //USERNAME GIà USATO
    }
    Grazie
    Ultima modifica di mybooky : 01-03-2015 alle ore 13.36.57

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Il codice non sembra avere evidenti problemi. Hai provato a controllare il valore della variabile $username e il record del database ottenuto dalla query?
    Inoltre presta attenzione, scritto così sembra proprio che il tuo script sia vulnerabile ad attacchi di tipo SQL injection, e un malintenzionato potrebbe ottenere il controllo completo del tuo database.

  3. #3
    Guest

    Predefinito

    Ho risolto il problema, ma come posso proteggerlo da eventuali attacchi?

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Qui trovi un po' di informazioni (generiche, non specifiche per il PHP): https://www.owasp.org/index.php/SQL_Injection
    Un metodo è usare la funzione mysqli_real_escape_string, oppure i prepared statements.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •