Visualizzazione risultati 1 fino 19 di 19

Discussione: Form di validazione

  1. #1
    Guest

    Predefinito Form di validazione

    Rieccomi dopo aver scritto con il vostro aiuto un form di inscrizione al mio sito ho dinuovo problemi con il form di convalida.

    Questo è l'inizio di un codice che ho scritto io ma sono fermo a questo punto:

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['validation_profile']))
    {
    $username = trim(htmlspecialchars($_POST['username']));
    $password = trim(htmlspecialchars($_POST['password']));
    $md5_password = md5($password);

    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    if ((!
    $username) || (!$password))
    {
    echo
    "Errore: Occorre compilare tutti i campi.";
    }

    else if (
    $query = "SELECT username FROM ".$prefix."_users WHERE username = '$username'";)
    $result = mysql_query ($query);
    if (
    mysql_num_rows($result) == 0)
    echo
    "Errore: Username $username inesistente.";
    else if {

    *****************************************


    {

    $query = "UPDATE ".$prefix."_users SET isactive = '1'";
    if (
    mysql_query($query, $db))
    echo
    "Il suo account è stato attivato correttamente";
    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";
    }

    //endif;
    mysql_close($db);

    }
    Il problema principale si pone dove ho scritto ******* in quel punto dovrei chiedere al database se la password inserita dall'utente è uguale a quella che aveva precedentemente settato nel database e in caso positivo di continuare con il resto del codice ma non so come..

    Mi potete aiutare?????
    Ultima modifica di test4you : 03-10-2009 alle ore 19.55.34 Motivo: else in eccesso

  2. #2
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da test4you Visualizza messaggio
    Rieccomi dopo aver scritto con il vostro aiuto un form di inscrizione al mio sito ho dinuovo problemi con il form di convalida.

    Questo è l'inizio di un codice che ho scritto io ma sono fermo a questo punto:

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['validation_profile']))
    {
    $username = trim(htmlspecialchars($_POST['username']));
    $password = trim(htmlspecialchars($_POST['password']));
    $md5_password = md5($password);

    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    if ((
    $username == "") || (!$password == ""))
    {
    die(
    "Errore: Occorre compilare tutti i campi.");
    }
    $result = mysql_query ( "SELECT username FROM ".$prefix."_users WHERE username = '$username'");
    if (
    mysql_num_rows($result) == 0)
    echo
    "Errore: Username $username inesistente.";
    else {

    $query = "UPDATE ".$prefix."_users SET isactive = '1' WHERE username = '$username'";
    if (
    mysql_query($query, $db))
    echo
    "Il suo account è stato attivato correttamente";
    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";
    }

    //endif;
    mysql_close($db);

    }
    Il problema principale si pone dove ho scritto ******* in quel punto dovrei chiedere al database se la password inserita dall'utente è uguale a quella che aveva precedentemente settato nel database e in caso positivo di continuare con il resto del codice ma non so come..

    Mi potete aiutare?????
    non l'ho testato!
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  3. #3
    Guest

    Predefinito

    Ciao se dovrei chiederti ancora una cosa prima dell aggiornamento del database ma dopo aver stabilito se l'username esiste o no dovrei controllare se le password sono o non sono corrette, il problema è che non so dove scaricarla dal database?

    GRAZIE

  4. #4
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    effettivamente nella fretta di sistemare non avevo notato questo PICCOLO particolare


    devi inserire un campo "password" nella tabella, quando fai registrare l'utente la salvi qui (magari cifrandola, md5,sha,etcetc) e poi quando fai il controllo per l'attivazione puoi anche evitare di fare il controllo sulla password aggiungendo nella tabella un campo "attiva", dove inserisci in forma casuale durnte la registrazione una stringa fatta di numeri e caratteri , tipo (F5J32) che la puoi ricavare in tanti modi, poi sempre nella registrazione invierai una email con il link:

    Codice:
    active.php?username=pippo&key=F5J32
    quindi nella pagina di attivazione farai un controllo sulla taballa per questi due campi e se coincidono attivi l'utente.

    ciao
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  5. #5
    Guest

    Predefinito

    Quindi aggiungo un campo nel db

    ma come modifico lo script di registrazione:

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['ad_profile']))
    {
    $fullname = trim(htmlspecialchars($_POST['fullname']));
    $username = trim(htmlspecialchars($_POST['username']));
    $age = trim(htmlspecialchars($_POST['age']));
    $email = trim(htmlspecialchars($_POST['email']));
    $email2 = trim(htmlspecialchars($_POST['email2']));
    $password = trim(htmlspecialchars($_POST['password']));
    $password2 = trim(htmlspecialchars($_POST['password2']));
    $md5_password = md5($password);

    if ((!
    $fullname) || (!$username) || (!$age) || (!$email) || (!$email2) || (!$password) || (!$password2))
    {
    echo
    "Errore: Occorre compilare tutti i campi.";
    }
    else if (
    $password != $password2)
    {
    echo
    "Errore: Le password non coincidono.";
    }
    else if (
    $email != $email)
    {
    echo
    "Errore: Le e-mail non coincidono.";
    }
    else if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
    {
    echo
    "Errore: E-mail non è valida.";
    }
    else
    {
    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    /*** add by DS ***/
    $query = "SELECT username FROM ".$prefix."_users WHERE username = '$username'";
    $result = mysql_query ($query);
    if (
    mysql_num_rows($result) > 0)
    echo
    "Errore: Username $username non disponibile.";
    else {
    /***************/

    $query = "INSERT INTO ".$prefix."_users (fullname, username, email, age, password) VALUES ('".$fullname."', '".$username."', '".$email."', '".$age."', '".$md5_password."')";
    if (
    mysql_query($query, $db))
    echo
    "Caricamento completato. Grazie";
    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";

    /*** add by DS ***/
    }
    /***************/

    //endif;
    mysql_close($db);

    } }
    ?>
    E poi ancora una cosa, come faccio a farli mandare una mail?


    GRAZIE

  6. #6
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da test4you Visualizza messaggio
    Quindi aggiungo un campo nel db

    ma come modifico lo script di registrazione:

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['ad_profile']))
    {
    $fullname = trim(htmlspecialchars($_POST['fullname']));
    $username = trim(htmlspecialchars($_POST['username']));
    $age = trim(htmlspecialchars($_POST['age']));
    $email = trim(htmlspecialchars($_POST['email']));
    $email2 = trim(htmlspecialchars($_POST['email2']));
    $password = trim(htmlspecialchars($_POST['password']));
    $password2 = trim(htmlspecialchars($_POST['password2']));
    $md5_password = md5($password);

    if ((!
    $fullname) || (!$username) || (!$age) || (!$email) || (!$email2) || (!$password) || (!$password2))
    {
    echo
    "Errore: Occorre compilare tutti i campi.";
    }
    else if (
    $password != $password2)
    {
    echo
    "Errore: Le password non coincidono.";
    }
    else if (
    $email != $email)
    {
    echo
    "Errore: Le e-mail non coincidono.";
    }
    else if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
    {
    echo
    "Errore: E-mail non è valida.";
    }
    else
    {
    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    /*** add by DS ***/
    $query = "SELECT username FROM ".$prefix."_users WHERE username = '$username'";
    $result = mysql_query ($query);
    if (
    mysql_num_rows($result) > 0)
    echo
    "Errore: Username $username non disponibile.";
    else {
    /***************/
    //in questa query inserisci l'inserimento dentro la tabella della key
    //qualche soluzione: http://www.php.net/rand
    $query = "INSERT INTO ".$prefix."_users (fullname, username, email, age, password) VALUES ('".$fullname."', '".$username."', '".$email."', '".$age."', '".$md5_password."')";
    if (
    mysql_query($query, $db)){
    echo
    "Caricamento completato. Grazie";}
    // qui inseisci la funzione mail: es (http://www.php.net/manual/en/function.mail.php)
    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";

    /*** add by DS ***/
    }
    /***************/

    //endif;
    mysql_close($db);

    } }
    ?>
    E poi ancora una cosa, come faccio a farli mandare una mail?


    GRAZIE
    leggi nel codice!
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  7. #7
    Guest

    Predefinito

    ho trovato l'articolo ed ho una domanda ma inserendo un rand non rischio che si creino cifre doppie, intendo che due profili abbiano lo stesso numero?

  8. #8
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da test4you Visualizza messaggio
    ho trovato l'articolo ed ho una domanda ma inserendo un rand non rischio che si creino cifre doppie, intendo che due profili abbiano lo stesso numero?
    difficilissimo che succeda!dipende anche dall'algoritmo che usi, ma può succedere.
    ecco perchè tu controlli anche il nome dell'utente, dato che ogni nome dell database sarà univoco non potrai mai avere due link di attivazione uguali.

    active.php?username=pippo&key=abcde <--uguale al terzo
    active.php?username=pluto&key=fghil
    active.php?username=paperino&key=abcde //la key è ugaule ma non darà problemi perchè l'username sarà sempre diverso :)
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  9. #9
    Guest

    Predefinito

    Così può andare?

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['ad_profile']))
    {
    $fullname = trim(htmlspecialchars($_POST['fullname']));
    $username = trim(htmlspecialchars($_POST['username']));
    $age = trim(htmlspecialchars($_POST['age']));
    $email = trim(htmlspecialchars($_POST['email']));
    $email2 = trim(htmlspecialchars($_POST['email2']));
    $password = trim(htmlspecialchars($_POST['password']));
    $password2 = trim(htmlspecialchars($_POST['password2']));
    $md5_password = md5($password);
    /*Invio E-Mail*/
    $to = '$email';
    $subject = 'Convalida il tuo profilo WorldTech';
    $message = 'Grazie $username, per esserti registrato presso il nostro sito.' . "\r\n" .;
    $dati = 'I Tuoi dati sono WorldTech ID = $username, Password = $password.'. "\r\n" .;
    $convalida = 'Per convalidare la tua iscrizione recati a questo indirizzo: '. "\r\n" .;
    $headers = 'Questà è una E-Mail auto generata vi preghiamo di non rispondere.'. "\r\n" .
    'Se avete ricevuto questa E-Mail per errore contattate il nostro centro assistenza.';
    /*Convalida*/
    $rand(1, 9999999999);

    if ((!
    $fullname) || (!$username) || (!$age) || (!$email) || (!$email2) || (!$password) || (!$password2))
    {
    echo
    "Errore: Occorre compilare tutti i campi.";
    }
    else if (
    $password != $password2)
    {
    echo
    "Errore: Le password non coincidono.";
    }
    else if (
    $email != $email2)
    {
    echo
    "Errore: Le e-mail non coincidono.";
    }
    else if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
    {
    echo
    "Errore: E-mail non è valida.";
    }
    else
    {
    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    /*** add by DS ***/
    $query = "SELECT username FROM ".$prefix."_users WHERE username = '$username'";
    $result = mysql_query ($query);
    if (
    mysql_num_rows($result) > 0)
    echo
    "Errore: Username $username non disponibile.";
    else {
    /***************/

    $query = "INSERT INTO ".$prefix."_users (fullname, username, email, age, password, activekey) VALUES ('".$fullname."', '".$username."', '".$email."', '".$age."', '".$md5_password."', '".$rand."')";
    if (
    mysql_query($query, $db))
    echo
    "Caricamento completato. Grazie";
    mail($to, $subject, $message, $dati, $convalida, $headers);

    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";

    /*** add by DS ***/
    }
    /***************/

    //endif;
    mysql_close($db);

    } }
    ?>
    Ultima modifica di test4you : 04-10-2009 alle ore 18.09.36 Motivo: tag php

  10. #10
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    rand è una funzione tu hai omogenizzato il tutto :P

    $lung_string = 5;
    $val = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789';
    $new_str = "";
    for($i=0;i<$lung_string;$i++){
    $rand = rand(0,31);
    $new_str .= $val[$rand];
    }

    echo "$new_str";


    e poi devi creare il link, dato che manca nella email.
    vado a studiare,
    ciao
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  11. #11
    Guest

    Predefinito

    Scusa quando ti connetti puoi farmi un esempio pratico di come unire il tutto?

    Per quando riguarda il link non so che parte iniziare lo punto su questa o su un altra pagina?

    Scusa se ti assillo, GRAZIE DI TUTTO

  12. #12
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da test4you Visualizza messaggio
    Così può andare?

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['ad_profile']))
    {
    $fullname = trim(htmlspecialchars($_POST['fullname']));
    $username = trim(htmlspecialchars($_POST['username']));
    $age = trim(htmlspecialchars($_POST['age']));
    $email = trim(htmlspecialchars($_POST['email']));
    $email2 = trim(htmlspecialchars($_POST['email2']));
    $password = trim(htmlspecialchars($_POST['password']));
    $password2 = trim(htmlspecialchars($_POST['password2']));
    $md5_password = md5($password);
    /*Invio E-Mail*/
    $to = '$email';
    $subject = 'Convalida il tuo profilo WorldTech';
    $message = 'Grazie $username, per esserti registrato presso il nostro sito.' . "\r\n" .;
    $dati = 'I Tuoi dati sono WorldTech ID = $username, Password = $password.'. "\r\n" .;
    $convalida = 'Per convalidare la tua iscrizione recati a questo indirizzo: '. "\r\n" .;

    $headers = 'Questà è una E-Mail auto generata vi preghiamo di non rispondere.'. "\r\n" .
    'Se avete ricevuto questa E-Mail per errore contattate il nostro centro assistenza.';
    /*Convalida*/

    // qui metti il ciclo per calcolare la key
    //la variabile che stampo subito dopo il for e quella che devi dare in pasto alla query

    if ((!$fullname) || (!$username) || (!$age) || (!$email) || (!$email2) || (!$password) || (!$password2))
    {
    echo
    "Errore: Occorre compilare tutti i campi.";
    }
    else if (
    $password != $password2)
    {
    echo
    "Errore: Le password non coincidono.";
    }
    else if (
    $email != $email2)
    {
    echo
    "Errore: Le e-mail non coincidono.";
    }
    else if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
    {
    echo
    "Errore: E-mail non è valida.";
    }
    else
    {
    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    /*** add by DS ***/
    $query = "SELECT username FROM ".$prefix."_users WHERE username = '$username'";
    $result = mysql_query ($query);
    if (
    mysql_num_rows($result) > 0)
    echo
    "Errore: Username $username non disponibile.";
    else {
    /***************/
    $convalida .= // qui puoi aggiungere il link
    $query = "INSERT INTO ".$prefix."_users (fullname, username, email, age, password, activekey) VALUES ('".$fullname."', '".$username."', '".$email."', '".$age."', '".$md5_password."', '".$rand."')";// qui al posto di rand metti la variabile dopo il for
    if (mysql_query($query, $db))
    echo
    "Caricamento completato. Grazie";

    mail($to, $subject, $message, $dati, $convalida, $headers);

    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";

    /*** add by DS ***/
    }
    /***************/

    //endif;
    mysql_close($db);

    } }
    ?>
    ciao!
    +
    edit: scusa ma il link è per l'attivazione giusto? quindi
    è normale che deve puntare alla pagina di attivazione, non a quella di registrazione :P
    poi se vuoi fare tutto in una pagina, è un'altro discorso.
    Ultima modifica di Xsescott : 04-10-2009 alle ore 22.24.25
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  13. #13
    Guest

    Predefinito

    Ok ultimi accorgimenti:

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['ad_profile']))
    {
    $fullname = trim(htmlspecialchars($_POST['fullname']));
    $username = trim(htmlspecialchars($_POST['username']));
    $age = trim(htmlspecialchars($_POST['age']));
    $email = trim(htmlspecialchars($_POST['email']));
    $email2 = trim(htmlspecialchars($_POST['email2']));
    $password = trim(htmlspecialchars($_POST['password']));
    $password2 = trim(htmlspecialchars($_POST['password2']));
    $md5_password = md5($password);
    /*Invio E-Mail*/
    $to = '$email';
    $subject = 'Convalida il tuo profilo WorldTech';
    $message = 'Grazie $username, per esserti registrato presso il nostro sito.' . "\r\n" .;
    $dati = 'I Tuoi dati sono WorldTech ID = $username, Password = $password.'. "\r\n" .;
    $convalida = 'Per convalidare la tua iscrizione recati a questo indirizzo: '. "\r\n" .;

    $headers = 'Questà è una E-Mail auto generata vi preghiamo di non rispondere.'. "\r\n" .
    'Se avete ricevuto questa E-Mail per errore contattate il nostro centro assistenza.';
    /*Convalida*/
    $lung_string = 10;
    $val = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789';
    $new_str = "";
    for(
    $i=0;i<$lung_string;$i++){
    $rand = rand(0,31);
    $new_str .= $val[$rand];
    }

    if ((!
    $fullname) || (!$username) || (!$age) || (!$email) || (!$email2) || (!$password) || (!$password2))
    {
    echo
    "Errore: Occorre compilare tutti i campi.";
    }
    else if (
    $password != $password2)
    {
    echo
    "Errore: Le password non coincidono.";
    }
    else if (
    $email != $email2)
    {
    echo
    "Errore: Le e-mail non coincidono.";
    }
    else if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
    {
    echo
    "Errore: E-mail non è valida.";
    }
    else
    {
    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    /*** add by DS ***/
    $query = "SELECT username FROM ".$prefix."_users WHERE username = '$username'";
    $result = mysql_query ($query);
    if (
    mysql_num_rows($result) > 0)
    echo
    "Errore: Username $username non disponibile.";
    else {
    /***************/
    $convalida .= 'http://www.test4you.altervista.org/user/registrazone_attivazione.php';
    $query = "INSERT INTO ".$prefix."_users (fullname, username, email, age, password, activekey) VALUES ('".$fullname."', '".$username."', '".$email."', '".$age."', '".$md5_password."', '".$rand."')";// qui al posto di rand metti la variabile dopo il for
    if (mysql_query($query, $db))
    echo
    "Caricamento completato. Grazie";

    mail($to, $subject, $message, $dati, $convalida, $headers);

    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";

    /*** add by DS ***/
    }
    /***************/

    //endif;
    mysql_close($db);

    } }
    ?>
    Come inserisco
    Codice PHP:
    for($i=0;i<$lung_string;$i++){
    nella query.

    E poi http://www.test4you.altervista.org/user/attivazione.php e poi cosa metto?

    GRAZIE
    Ultima modifica di test4you : 05-10-2009 alle ore 15.29.53

  14. #14
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da test4you Visualizza messaggio
    Ok ultimi accorgimenti:

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['ad_profile']))
    {
    $fullname = trim(htmlspecialchars($_POST['fullname']));
    $username = trim(htmlspecialchars($_POST['username']));
    $age = trim(htmlspecialchars($_POST['age']));
    $email = trim(htmlspecialchars($_POST['email']));
    $email2 = trim(htmlspecialchars($_POST['email2']));
    $password = trim(htmlspecialchars($_POST['password']));
    $password2 = trim(htmlspecialchars($_POST['password2']));
    $md5_password = md5($password);
    /*Invio E-Mail*/
    $to = '$email';
    $subject = 'Convalida il tuo profilo WorldTech';
    $message = 'Grazie $username, per esserti registrato presso il nostro sito.' . "\r\n" .;
    $dati = 'I Tuoi dati sono WorldTech ID = $username, Password = $password.'. "\r\n" .;
    $convalida = 'Per convalidare la tua iscrizione recati a questo indirizzo: '. "\r\n" .;

    $headers = 'Questà è una E-Mail auto generata vi preghiamo di non rispondere.'. "\r\n" .
    'Se avete ricevuto questa E-Mail per errore contattate il nostro centro assistenza.';
    /*Convalida*/
    $lung_string = 10;
    $val = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789';
    $new_str = "";
    for(
    $i=0;i<$lung_string;$i++){
    $rand = rand(0,31);
    $new_str .= $val[$rand];
    }

    if ((!
    $fullname) || (!$username) || (!$age) || (!$email) || (!$email2) || (!$password) || (!$password2))
    {
    echo
    "Errore: Occorre compilare tutti i campi.";
    }
    else if (
    $password != $password2)
    {
    echo
    "Errore: Le password non coincidono.";
    }
    else if (
    $email != $email2)
    {
    echo
    "Errore: Le e-mail non coincidono.";
    }
    else if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
    {
    echo
    "Errore: E-mail non è valida.";
    }
    else
    {
    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    /*** add by DS ***/
    $query = "SELECT username FROM ".$prefix."_users WHERE username = '$username'";
    $result = mysql_query ($query);
    if (
    mysql_num_rows($result) > 0)
    echo
    "Errore: Username $username non disponibile.";
    else {
    /***************/
    $convalida .= 'http://www.test4you.altervista.org/user/registrazone_attivazione.php';
    $query = "INSERT INTO ".$prefix."_users (fullname, username, email, age, password, activekey) VALUES ('".$fullname."', '".$username."', '".$email."', '".$age."', '".$md5_password."', '".$rand."')";// qui al posto di rand metti la variabile dopo il for
    if (mysql_query($query, $db))
    echo
    "Caricamento completato. Grazie";

    mail($to, $subject, $message, $dati, $convalida, $headers);

    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";

    /*** add by DS ***/
    }
    /***************/

    //endif;
    mysql_close($db);

    } }
    ?>
    Come inserisco
    Codice PHP:
    for($i=0;i<$lung_string;$i++){
    nella query.

    E poi http://www.test4you.altervista.org/u...ttivazione.php e poi cosa metto?

    GRAZIE
    non devi inserire il for, il for è un istruzione del php, ma anche di altri linguaggi per definire un ciclo DETERMINATO:

    for(i=0,i<5,i++){
    <fai qualcosa>
    }

    for -> i parte da 0 e fino a quando è monore di 5 fai un ciclo compiendo delle operazioni.

    nel nostro caso hai un array stringa di 31 elementi abcd....z

    $array_string = {a - b - c - d - e - f - g.....z}

    ogni lettera ha un indice, array_string[-->indice<--] che ne definisce la posizione contigua in memoria, dove andare a memorizzare e leggere un elemento.

    ad esempio, se consideriamo un linguaggio in cui gli indici di un array partono da 0---31(32 elementi), avrò secondo la dichiarazione di array_string un vettore fatto cosi:

    $array_string[0] = > a
    $array_string[1] = > b
    $array_string[2] = > c
    $array_string[3] = > d
    $array_string[4] = > e
    $array_string[5] = > f
    $array_string[6] = > g
    $array_string[....] = > ...
    $array_string[31] = > z

    dove ogni indice mi determina la locazione in memoria, cosi posso evitare di scrivere 32 varibili e ho un accesso molto più veloce essendo memorizzate in modo contiguo :)

    dopo questa breve introduzione spero che tu abbia capito il concetto.

    quindi:
    Codice:
      $lung_string = 10; // mi dice quante volte devo ciclare
    // val è l'array e in val[0] ho A e in val[1] ho B
        $val = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789';
    // uso new_string per memorizzare la stringa che a me serve
        $new_str = "";
        for($i=0;i<$lung_string;$i++){ //ciclo lung_string volte compiendo le operazioni seguenti
       //calcolo un valore casuale da 0 a 31
        $rand = rand(0,31);
       // unisco(aggiungo) alla stringa precedente la nuova lettera
    //supponiamo che a $rand assegno 5 e $new_string = "abfgh"
    
        $new_str .= $val[$rand];
    }
    //l'assegnamento precedente concatenera $val[5] = F alla stringa , quindi ora
    //new_string è uguale a "abfghF", se in rand avevo 6 invece diventava "abfghG"
    $new_str = abfgh .=(aggiungo) $val[5] = F

    questo = è assegnamento , .= e concatenazione, in realtà significherebbe,
    Espressione -> Lvalore = Rvalore
    " compio l'operazione che precede il simbolo =, tra Lvalore e Rvalore e poi lo memorizzo nell'Lvalore"

    a .= b due stringhe , unisco la stringa b a alla stringa a (memorizzo in a il risultato)
    a *=b due interi, moltiplico a * b e memorizzo il risultato in a
    b +=b due interi, sommo a+b e memorizzo il risultato in a

    cioè il concetto è semplice, quindi, tornando al tuo problema:

    una volta che hai nella variabile la tuua stringa, la passi alla query:

    Codice:
    $convalida .= 'http://www.test4you.altervista.org/user/registrazone_attivazione.php?user=$username&key=$new_str';

    Codice:
     $query = "INSERT INTO ".$prefix."_users (fullname, username, email, age, password, activekey) VALUES ('".$fullname."', '".$username."', '".$email."', '".$age."', '".$md5_password."', '".$new_str."')";

    in restistrazione_attivazione.php farai un controllo sulle variabili get , controllerai nel db se vi sono quei valore nei due campi, se se vi sono attivi l'utente.

    saluti
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  15. #15
    Guest

    Predefinito

    Allora se ho capito tutto, coso che spero, il codice dovebbe essere:

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['ad_profile']))
    {
    $fullname = trim(htmlspecialchars($_POST['fullname']));
    $username = trim(htmlspecialchars($_POST['username']));
    $age = trim(htmlspecialchars($_POST['age']));
    $email = trim(htmlspecialchars($_POST['email']));
    $email2 = trim(htmlspecialchars($_POST['email2']));
    $password = trim(htmlspecialchars($_POST['password']));
    $password2 = trim(htmlspecialchars($_POST['password2']));
    $md5_password = md5($password);
    /*Invio E-Mail*/
    $to = '$email';
    $subject = 'Convalida il tuo profilo WorldTech';
    $message = 'Grazie $username, per esserti registrato presso il nostro sito.' . "\r\n" .;
    $dati = 'I Tuoi dati sono WorldTech ID = $username, Password = $password.'. "\r\n" .;
    $convalida = 'Per convalidare la tua iscrizione recati a questo indirizzo: '. "\r\n" .;

    $headers = 'Questà è una E-Mail auto generata vi preghiamo di non rispondere.'. "\r\n" .
    'Se avete ricevuto questa E-Mail per errore contattate il nostro centro assistenza.';
    /*Convalida*/
    $lung_string = 10; // mi dice quante volte devo ciclare
    // val è l'array e in val[0] ho A e in val[1] ho B
    $val = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789';
    // uso new_string per memorizzare la stringa che a me serve
    $new_str = "";
    for(
    $i=0;i<$lung_string;$i++){ //ciclo lung_string volte compiendo le operazioni seguenti
    //calcolo un valore casuale da 0 a 31
    $rand = rand(0,31);
    // unisco(aggiungo) alla stringa precedente la nuova lettera
    //supponiamo che a $rand assegno 5 e $new_string = "abfgh"

    $new_str .= $val[$rand];
    }
    if ((!
    $fullname) || (!$username) || (!$age) || (!$email) || (!$email2) || (!$password) || (!$password2))
    {
    echo
    "Errore: Occorre compilare tutti i campi.";
    }
    else if (
    $password != $password2)
    {
    echo
    "Errore: Le password non coincidono.";
    }
    else if (
    $email != $email2)
    {
    echo
    "Errore: Le e-mail non coincidono.";
    }
    else if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
    {
    echo
    "Errore: E-mail non è valida.";
    }
    else
    {
    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    /*** add by DS ***/
    $query = "SELECT username FROM ".$prefix."_users WHERE username = '$username'";
    $result = mysql_query ($query);
    if (
    mysql_num_rows($result) > 0)
    echo
    "Errore: Username $username non disponibile.";
    else {
    /***************/
    $convalida .= 'http://www.test4you.altervista.org/user/attivazione.php?user=$username&key=$new_str';
    $query = "INSERT INTO ".$prefix."_users (fullname, username, email, age, password, activekey) VALUES ('".$fullname."', '".$username."', '".$email."', '".$age."', '".$md5_password."', '".$new_str."')";
    if (
    mysql_query($query, $db))
    echo
    "Caricamento completato. Grazie";

    mail($to, $subject, $message, $dati, $convalida, $headers);

    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";

    /*** add by DS ***/
    }
    /***************/

    //endif;
    mysql_close($db);

    } }
    ?>
    Se è tutto giusto fino a qui ti segnalo errore:

    Parse error: syntax error, unexpected ';' line 153

    Credo che non gli piaccia

    Codice PHP:
    . "\r\n" .;
    in

    Codice PHP:
    $message = 'Grazie $username, per esserti registrato presso il nostro sito.' . "\r\n" .;
    Incrocio le dita

  16. #16
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da test4you Visualizza messaggio

    Codice PHP:
    $message = 'Grazie $username, per esserti registrato presso il nostro sito.' . "\r\n" ;
    Incrocio le dita
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  17. #17
    Guest

    Predefinito

    Ho provato la pagina ma niente inserisco i dati do l'ok carica per un po mi da una pagina bianca non carica sul db e non invia mail.
    Dove sbaglio?

    Codice PHP:
    <?php

    include ("../script/config.php");

    if(!empty(
    $_POST['ad_profile']))
    {
    $fullname = trim(htmlspecialchars($_POST['fullname']));
    $username = trim(htmlspecialchars($_POST['username']));
    $age = trim(htmlspecialchars($_POST['age']));
    $email = trim(htmlspecialchars($_POST['email']));
    $email2 = trim(htmlspecialchars($_POST['email2']));
    $password = trim(htmlspecialchars($_POST['password']));
    $password2 = trim(htmlspecialchars($_POST['password2']));
    $md5_password = md5($password);
    /*Invio E-Mail*/
    $to = '$email';
    $subject = 'Convalida il tuo profilo WorldTech';
    $message = 'Grazie $username, per esserti registrato presso il nostro sito.' . "\r\n";
    $dati = 'I Tuoi dati sono WorldTech ID = $username, Password = $password.'. "\r\n";
    $convalida = 'Per convalidare la tua iscrizione recati a questo indirizzo: '. "\r\n";

    $headers = 'Questà è una E-Mail auto generata vi preghiamo di non rispondere.'. "\r\n";
    /*Convalida*/
    $lung_string = 10; // mi dice quante volte devo ciclare
    // val è l'array e in val[0] ho A e in val[1] ho B
    $val = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789';
    // uso new_string per memorizzare la stringa che a me serve
    $new_str = "";
    for(
    $i=0;i<$lung_string;$i++){ //ciclo lung_string volte compiendo le operazioni seguenti
    //calcolo un valore casuale da 0 a 31
    $rand = rand(0,31);
    // unisco(aggiungo) alla stringa precedente la nuova lettera
    //supponiamo che a $rand assegno 5 e $new_string = "abfgh"

    $new_str .= $val[$rand];
    }
    if ((!
    $fullname) || (!$username) || (!$age) || (!$email) || (!$email2) || (!$password) || (!$password2))
    {
    echo
    "Errore: Occorre compilare tutti i campi.";
    }
    else if (
    $password != $password2)
    {
    echo
    "Errore: Le password non coincidono.";
    }
    else if (
    $email != $email2)
    {
    echo
    "Errore: Le e-mail non coincidono.";
    }
    else if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
    {
    echo
    "Errore: E-mail non è valida.";
    }
    else
    {
    $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    /*** add by DS ***/
    $query = "SELECT username FROM ".$prefix."_users WHERE username = '$username'";
    $result = mysql_query ($query);
    if (
    mysql_num_rows($result) > 0)
    echo
    "Errore: Username $username non disponibile.";
    else {
    /***************/
    $convalida .= 'http://www.test4you.altervista.org/user/attivazione.php?user=$username&key=$new_str';
    $query = "INSERT INTO ".$prefix."_users (fullname, username, email, age, password, activekey) VALUES ('".$fullname."', '".$username."', '".$email."', '".$age."', '".$md5_password."', '".$new_str."')";
    if (
    mysql_query($query, $db))
    {
    echo
    "Caricamento completato. Grazie";
    mail($to, $subject, $message, $dati, $convalida, $headers);
    }
    else
    echo
    "Si e' verificato un errore. Se questo errore dovesse ripetersi contattare l'assistenza";

    /*** add by DS ***/
    }
    /***************/

    //endif;
    mysql_close($db);

    } }
    ?>
    Ultima modifica di test4you : 05-10-2009 alle ore 17.14.50

  18. #18
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    posta il codice della form
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  19. #19
    Guest

    Predefinito

    Non so cosa sia successo prima di inserire il codice di validazione e le e-mail funzionava tutto


    Codice HTML:
    					<form action="" method="post">
    					<table style="width: 100%">
                    <tr>
    					<td height="27px" class="text1"><strong>Nome completo</strong></td>
    					<td height="27px"><input type="text" name="fullname"  size="40"/></td>
    				</tr>
    				<tr>
    					<td>&nbsp;</td>
    					<td>&nbsp;</td>
    				</tr>
    				<tr>
    					<td height="27px" class="text1"><strong>Nome</strong></td>
    					<td height="27px"><input type="text" name="username"  size="40"/></td>
    				</tr>
    				<tr>
    					<td>&nbsp;</td>
    					<td>&nbsp;</td>
    				</tr>
    
    				<tr>
    					<td height="27px" class="text1"><strong>Anno di nascita</strong></td>
    					<td height="27px"><input type="text" name="age"  size="5"/></td>
    				</tr>
    				<tr>
    					<td>&nbsp;</td>
    					<td>&nbsp;</td>
    				</tr>
    				<tr>
    					<td height="27px" class="text1"><strong>E-Mail</strong></td>
    					<td height="27px"><input type="text" name="email"  size="50"/></td>
    				</tr>
    				<tr>
    					<td>&nbsp;</td>
    					<td>&nbsp;</td>
    				</tr>
    				<tr>
    					<td height="27px" class="text1"><strong>Reinserisci l'E-Mail</strong></td>
    					<td height="27px"><input type="text" name="email2"  size="50"/></td>
    				</tr>
    				<tr>
    					<td>&nbsp;</td>
    					<td>&nbsp;</td>
    				</tr>
    				<tr>
    					<td height="27px" class="text1"><strong>Password</strong></td>
    					<td height="27px"><input type="password" name="password"  size="40"/></td>
    				</tr>
    				<tr>
    					<td>&nbsp;</td>
    					<td>&nbsp;</td>
    				</tr>
    				<tr>
    					<td height="27px" class="text1"><strong>Reinserisci password</strong></td>
    					<td height="27px"><input type="password" name="password2"  size="40"/></td>
    				</tr>
    				<tr>
    					<td>&nbsp;</td>
    					<td>&nbsp;</td>
    				</tr>
    				<tr>
    					<td colspan="2">&nbsp;</td>
    				</tr>
    				<tr>
    					<td colspan="2" class="align1"><input type="submit" value="Continua" name="ad_profile"/></td>
    				</tr>
    				</table>
    				</form>

Regole di scrittura

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