Visualizzazione risultati 1 fino 1 di 1

Discussione: iscrizione con conferma utenti

  1. #1
    Guest

    Exclamation iscrizione con conferma utenti

    Ciao a tutti, quando un utente si registra sul mio sito, nella posta elettronica non arriva più il link per attivare l'account, eppure sul database l'utente viene registrato.
    Ho provato io stesso a iscrivere un utente di prova, ho dovuto, attivarlo manualmente. Ho persino provato (con l'utente di prova) a segnalare password dimenticata; il sistema ha risposto che una nuova password è stata inviata tramite email... risultato, nessuna email ricevuta.

    file v
    Codice 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'];
    $userUrl = $_POST['user-url'];
    $userSesso = $_POST['user-sesso'];
    $userCity = $_POST['user-city'];
    $userEmail = $_POST['user-email'];
    $userEmailRepeat = $_POST['user-email-repeat'];
    $userPassword = $_POST['user-password'];
    $userPasswordRepeat = $_POST['user-password-repeat'];

    /* Controllo sul campo Nome utente
    *
    * Se la lunghezza  0 allora il campo  vuoto
    * altrimenti controllo che il campo nome abbia una lunghezza di almeno 4 caratteri
    */
    if (strlen($userUrl) == 0)
    {
    $formErrors[] = '<span class="message">Il campo nome utente &egrave; obbligatorio</span>';
    }
    else if (
    strlen($userUrl) < 4)
    {
    $formErrors[] = '<span class="message">Il nome utente inserito &egrave; troppo corto</span>';
    }


    /* Controllo sul campo nome e cognome
    *
    * 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[] = '<span class="message">Il campo nome e cognome &egrave; obbligatorio</span>';
    }
    else if (
    strlen($userName) < 3)
    {
    $formErrors[] = '<span class="message">Il nome e cognome inserito &egrave; troppo corto</span>';
    }

    /* 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[] = '<span class="message">Il campo password &egrave; obbligatorio</span>';
    }
    else if (
    strlen($userPassword) < 6)
    {
    $formErrors[] = '<span class="message">La password inserita &egrave; troppo corta</span>';
    }
    else if (
    $userPassword != $userPasswordRepeat)
    {
    $formErrors[] = '<span class="message">Il campo password ed il campo ripeti password non sono uguali</span>';
    }


    /* 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[] = '<span class="message">Il campo email &egrave; obbligatorio.</span>';
    }
    else if (
    false == emailIsValid($userEmail))
    {
    $formErrors[] = '<span class="message">L’indirizzo email inserito non &egrave; corretto</span>';
    }
    else if (
    $userEmail != $userEmailRepeat)
    {
    $formErrors[] = '<span class="message">L’indirizzo email e L’indirizzo ripeti email non sono uguali</span>';
    }

    /* Controllo sul campo città
    * Se la lunghezza  0 allora il campo  vuoto
    * altrimenti controllo che il campo nome abbia una lunghezza di almeno 4 caratteri
    */
    if (strlen($userCity) == 0)
    {
    $formErrors[] = '<span class="message">Il campo citt&agrave; &egrave; obbligatorio</span>';
    }
    else if (
    strlen($userCity) < 4)
    {
    $formErrors[] = '<span class="message">La citt&agrave inserita &egrave; troppo corto</span>';
    }

    /* Controllo sul campo Sesso
    *
    * Se la lunghezza 0 allora il campo  vuoto
    */
    if (strlen($userSesso) == 0)
    {
    $formErrors[] = '<span class="message">Il campo sesso &egrave; obbligatorio</span>';
    }


    // 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[] = '<span class="message">L’indirizzo email inserito &egrave; gi&agrave; stato registrato</span>';
    }
    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,
    'url' => $userUrl,
    'sesso' => $userSesso,
    'city' => $userCity,
    'token' => $activationToken
    );

    $userId = registerNewUser($userData);

    if (
    false == $userId)
    {
    $formErrors[] = '<span class="message">Si &egrave; verificato un errore durante la registrazione</span>';
    }
    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=utf-8' . "\r\n";
    $headers .= 'From: ask.fm <nome@hotmail.it>' . "\r\n";
    // Oggetto e testo dell'email da inviare
    $subject = 'Attivazione account ask.fm ';
    $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[] = '<span class="message">Si &egrave; verificato un errore durante il tentativo di invio dell’email di conferma</span>';
    }
    else
    {
    header('Location: confirm_sendmail.php');
    }
    }

    }

    }

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


    ?>
    secondo voi c'è un problema nel codice oppure è hotmail andato a quel paese? ho provato qualsiasi posta elettronica ma nulla :crycry
    Ultima modifica di AmOrEaMiCiZa : 22-05-2015 alle ore 20.34.39

Regole di scrittura

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