Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    problema di registrazone

    Buongiorno.
    io ho un problema da risolvere quanto riguarda per effettuare la registrazione con php tramitte il sito web

    http://www.civiaggio.it/login/register.php quando si effetua la registrazione ti da un errore ma non riesco a risolvero ci sto provando da ieri mattina allego il codice qualcuno mi riesce ad aiutare per favore

    <?php


    /*
    * In questo file sono contenute le funzioni utili
    * alla gestione degli utenti
    */


    // Includo la lista delle funzioni per dialogare con il database
    require_once 'database.php';


    // Questa funzione permette di registrare un nuovo utente nel sistema
    function registerNewUser($userData)
    {
    // Apro una connessione con il database
    $connection = getConnection();


    // Questi sono i dati da inserire nel database
    $userEmail = $userData['email'];
    $userPassword = $userData['password'];
    $userName = $userData['name'];
    $token = $userData['token'];

    // Query per inserire i nuovi dati nel database
    $sql = "INSERT INTO user
    (email, password, name, token)
    VALUES
    ('%s', '%s', '%s', '%s') ";

    // Assegno alla query i parametri da cercare
    $sql = sprintf($sql,
    $userEmail,
    $userPassword,
    mysqli_real_escape_string($connection,$userName),
    $token);

    // Provo ad inserire i dati
    if (false == mysqli_query($connection, $sql))
    {
    return false;
    }
    // se sono riuscito ad inserire i dati,
    // ritorno l'ultimo user_id inserito
    else
    {
    return mysqli_insert_id($connection);
    }
    }




    // Questa funzione controlla l'esistenza
    // nel database di un utente con uno specifico indirizzo email
    function userEmailExists($userEmail)
    {
    // Apro una connessione con il database
    $connection = getConnection();

    // Conto il numero di utenti registrati con
    // l'indirizzo email specificato
    $sql = "SELECT user_id
    FROM user
    WHERE
    email = '%s' ";

    // Assegno alla query i parametri da cercare
    $sql = sprintf($sql, $userEmail);

    // Eseguo la query sul database
    $result = mysqli_query($connection , $sql);

    // Se non ho trovato utenti oppure se si è
    // verificato un errore
    if (false == $result || mysqli_num_rows($result) == 0)
    {
    return false;
    }
    // Altrimenti vuol dire che ho trovato un utente
    // con l'indirizzo email specificato
    else
    {
    return true;
    }
    }


    // Questa funzione cerca i dati di un utente
    // in base al token specificato
    function userFindByToken($token)
    {
    // Apro una connessione con il database
    $connection = getConnection();

    // Cerco un utente con un certo token
    $sql = "SELECT *
    FROM user
    WHERE
    token = '%s'";

    // Assegno alla query i parametri da cercare
    $sql = sprintf($sql, $token);

    // Eseguo la query sul database
    $result = mysqli_query($connection, $sql);

    // Se si è verificato un errore oppure non
    // ho trovato nessun utente
    if (false == $result || mysqli_num_rows($result) == 0)
    {
    return false;
    }

    // Ritorno i dati dell'utente trovato
    return mysqli_fetch_assoc($result);
    }


    // Questa funzione cerca i dati di un utente
    // in base all'indirizzo email specificato
    function userFindByEmail($userEmail)
    {
    // Apro una connessione con il database
    $connection = getConnection();

    // Cerco un utente con un certo indirizzo email
    $sql = "SELECT *
    FROM user
    WHERE
    email = '%s'";

    // Assegno alla query i parametri da cercare
    $sql = sprintf($sqli, $userEmail);

    // Eseguo la query sul database
    $result = mysqli_query($connection, $sql);

    // Se si è verificato un errore oppure non
    // ho trovato nessun utente
    if (false == $result || mysqli_num_rows($result) == 0)
    {
    return false;
    }

    // Ritorno i dati dell'utente trovato
    return mysqli_fetch_assoc($result);
    }


    // Questa funzione cerca i dati di un utente
    // in base ad un userId specificato
    function userFindById($userId)
    {
    // Apro una connessione con il database
    $connection = getConnection();

    // Cerco un utente con un certo userId
    $sql = "SELECT *
    FROM user
    WHERE
    user_id = %d";

    // Assegno alla query i parametri da cercare
    $sql = sprintf($sqli, $userId);

    // Eseguo la query sul database
    $result = mysqli_query($connection, $sql);

    // Se si è verificato un errore oppure non
    // ho trovato nessun utente
    if (false == $result || mysqli_num_rows($result) == 0)
    {
    return false;
    }

    // Ritorno i dati dell'utente trovato
    return mysqli_fetch_assoc($result);
    }


    // Questa funzione serve per attivare l'account
    // di un utente con un certo userId
    function userActivate($userId)
    {
    // Apro una connessione con il database
    $connection = getConnection();

    // Attivo l'utente impostando il campo
    // active a 1
    $sql = "UPDATE user
    SET active = 1, token = NULL
    WHERE
    user_id = %d";

    // Assegno alla query i parametri da cercare
    $sql = sprintf($sql, $userId);

    // Eseguo la query sul database
    $result = mysqli_query($connection, $sql);

    // Se si è verificato un errore oppure nessun utente
    // � stato attivato
    if (false == $result || mysqli_affected_rows($connection) == 0)
    {
    return false;
    }
    // Altrimenti l'utente � stato attivato
    else
    {
    return true;
    }
    }


    // Questa funzione permette di settare il token
    // di uno specifico utente, identificato dal suo userId
    function userSetToken($token, $userId)
    {
    // Apro la connessione al database
    $connection = getConnection();

    // Questa è la query di aggornamento
    $sql = "UPDATE user
    SET token = '%s'
    WHERE user_id = %d";

    // Assegno alla query i parametri da cercare
    $sql = sprintf($sqli, $token, $userId);

    // Eseguo la query
    $result = mysqli_query($connection, $sql);

    // Se si è verificato un errore oppure nessun token � stato settato
    // ritorno false
    if (false == $result || mysqli_affected_rows($connection) == 0)
    {
    return false;
    }
    // altrimenti ritorno true
    else
    {
    return true;
    }
    }

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Queste funzioni sono poco utili per capire cosa non va. Sarebbe meglio se postassi anche il codice di register.php.

    Cmq ha provato a stamparti la query di inserimento (quella di registerNewUser) ed eseguirla direttamente sul db (es da phpmyadmin) ?

  3. #3
    pagine di registrazione c'è ne di più di una ci sono le cartelle

    models/register.php
    <?php


    // includo il file con la lista delle funzioni di utilità
    require_once 'inc/utils.php';


    // Qui inseriremo gli errori avvenuti durante la validazione
    // dei dati inseriti dall'utente nel form di login
    $formErrors = array();


    // Questi sono i dati inviati dall'utente
    $userName = $_POST['user-name'];
    $userEmail = $_POST['user-email'];
    $userEmailRepeat = $_POST['user-email-repeat'];
    $userPassword = $_POST['user-password'];
    $userPasswordRepeat = $_POST['user-password-repeat'];


    /* Controllo sull'indirizzo email
    *
    * Se la lunghezza � 0 allora il campo � vuoto
    * altrimenti controllo che l'indirizzo email sia valido
    * altrimenti controllo che l'indirizzo email sia uguale
    * all'indirizzo email ripetuto
    */
    if (strlen($userEmail) == 0)
    {
    $formErrors[] = 'Il campo email &egrave; obbligatorio.';
    }
    else if (false == emailIsValid($userEmail))
    {
    $formErrors[] = "L'indirizzo email inserito non &egrave; corretto";
    }
    else if ($userEmail != $userEmailRepeat)
    {
    $formErrors[] = "L'indirizzo email e l'indirizzo ripeti email non sono uguali";
    }

    /* Controllo sulla password inserita
    *
    * Se la lunghezza � 0 allora il campo � vuoto
    * altrimenti controllo che la password abbia una lunghezza di almeno 6 caratteri
    * altrimenti controllo che il campo password ed il campo ripeti password siano uguali
    */
    if (strlen($userPassword) == 0)
    {
    $formErrors[] = 'Il campo password &egrave; obbligatorio';
    }
    else if (strlen($userPassword) < 6)
    {
    $formErrors[] = 'La password inserita &egrave; troppo corta';
    }
    else if ($userPassword != $userPasswordRepeat)
    {
    $formErrors[] = 'Il campo password ed il campo ripeti password non sono uguali';
    }

    /* Controllo sul campo nome
    *
    * Se la lunghezza � 0 allora il campo � vuoto
    * altrimenti controllo che il campo nome abbia una lunghezza di almeno 3 caratteri
    */
    if (strlen($userName) == 0)
    {
    $formErrors[] = 'Il campo nome &egrave; obbligatorio';
    }
    else if (strlen($userName) < 3)
    {
    $formErrors[] = 'Il nome inserito &egrave; troppo corto';
    }

    // Se il conteggio degli errori � 0 allora i dati inviati dall'utente
    // sono validi, procedo con la registrazione del nuovo utente
    if (count($formErrors) == 0)
    {
    // includo ora la lista di funzioni che servono per gestire l'utente
    require_once 'inc/user.php';

    // Per prima cosa mi assicuro che l'indirizzo email del nuovo utente
    // non sia gi� registrato nel database
    if (true == userEmailExists($userEmail))
    {
    $formErrors[] = "L'indirizzo email inserito &egrave; gi&agrave; stato registrato";
    }
    else
    {
    // La password inserita viene ora criptata tramite la funzione md5()
    // criptare la password � un buon modo per alzare il livello di sicurezza
    // del nostro sistema di login
    $userPassword = md5($userPassword);

    // Questo � il codice alfanumerico di 32 caratteri che verr� utilizzato
    // nel link di attivazione account
    $activationToken = md5(time().'_'.$userEmail);

    /* Tento di registrare il nuovo utente sul database
    *
    * Se non riesco avverto il nuovo utente che non ho potuto registrarlo
    * altrimenti gli invio una email contenente un link con cui confermare
    * la registrazione
    */
    $userData = array(
    'email' => $userEmail,
    'password' => $userPassword,
    'name' => $userName,
    'token' => $activationToken
    );

    $userId = registerNewUser($userData);

    if (false == $userId)
    {
    $formErrors[] = 'Si &egrave; verificato un errore durante la registrazione';
    }
    else
    {
    // Questo � il link di attivazione che serve all'utente per confermare
    // la propria registrazione
    $activationLink = 'http://'.$_SERVER['HTTP_HOST'];
    $activationLink .= str_replace('register.php', 'confirm.php', $_SERVER['REQUEST_URI']);
    $activationLink .= '?token='.$activationToken;

    // Invio la mail in formato HTML
    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    // Oggetto e testo dell'email da inviare
    $subject = 'Attivazione account';
    $emailText = "<p>Gentile {$userName}, la tua registrazione &egrave; avvenuta correttamente.</p>"
    . "<p>Per attivare il tuo account, clicca sul link sottostante</p>"
    . "<p><a href=\"{$activationLink}\">Clicca qui per attivare il tuo account</p>";

    // Provo ora ad inviare l'email all'indirizzo del nuovo utente
    // Redirigo poi il nuovo utente alla pagina di conferma invio email
    if (false == mail($userEmail, $subject, $emailText, $headers))
    {
    $formErrors[] = "Si &egrave; verificato un errore durante il tentativo di invio dell'email di conferma";
    }
    else
    {
    header('Location: confirm_sendmail.php');
    }
    }

    }

    }


    // Stampo a video la lista degli errori, se presenti
    echo showFormErrors($formErrors);


    ?>

    <?php


    // includo le funzioni per gestire le sessioni
    require_once 'inc/session.php';


    // faccio partire la sessione
    sessionStart();


    // Controllo se l'utente � gia loggato
    // e, nel caso lo sia, lo rimando alla pagina di profilo
    if (true == sessionUserIsLogged())
    {
    header('Location: profile.php');
    }
    // Altrimenti controllo se sono presenti dei dati inviati in POST;
    // se ci sono, il form � stato inviato dall'utente
    else if (count($_POST) > 0)
    {
    // Includo il modello per la pagina di registrazione
    require_once 'models/register.php';
    }


    // Includo la vista per la pagina di registrazione
    require_once 'views/register.php';


    ?>

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    a me sembra che fallisce nel fare la query:

    Nella funzione function registerNewUser($userData) aggiungi

    Codice PHP:
    function registerNewUser($userData)
    {
        ...
    echo 
    $sql.'<br/>';  // Stampa la query
      // Provo ad inserire i dati
      
    if (false == mysqli_query($connection$sql))
      {
      echo 
    mysqli_error($connection);  // Stampa l'errore
      
    return false;
      }
      
    // se sono riuscito ad inserire i dati,
      // ritorno l'ultimo user_id inserito  
      
    else
      {
      return 
    mysqli_insert_id($connection);
      }

    Nel caso non ti stampi l'errore, compiati la query ed eseguila a mano

  5. #5
    in senso eseguila a mano?

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    puoi accedere ad phpmyadmin o simili? eseguila da li

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.