Visualizzazione risultati 1 fino 1 di 1

Discussione: [PHP]Conferma email

  1. #1
    Guest

    Predefinito [PHP]Conferma email

    Ciao a tutti
    oggi una persona mi ha chiesto di aiutarla nella creazione di una registrazione e visto che le sfide di php mi piacciono gliu ho detto che avrei provato e ho buttato giu questo codice al volo:
    Codice PHP:
    <?php
    if($_GET['step'] == "conf") {

    } else {
    if(isset(
    $_POST['submit'])) {
    $username=htmlentities($_POST['username']);
    $password=htmlentities($_POST['password']);
    $rip_password=htmlentities($_POST['rip_password']);
    $email=htmlentities($_POST['email']);
    if(
    $username == '' or $password == '' or $email == '') {
    echo
    "Riempi tutti i campi!";
    } else {
    if(
    $password != $rip_password) {
    echo
    "Le due password non sono uguali!";
    } else {
    if(
    strpos($username, ',') !== false or strpos($password, ',') !== false or strpos($email, ',') !== false or strpos($username, ';') !== false or strpos($password, ';') !== false or strpos($email, ';') !== false) {
    echo
    "Non puoi usare i caratteri '<strong>,</strong>' e '<strong>;</strong>'!";
    } else {
    if (!
    eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email)) {
    echo
    "La sintassi dell'email non &egrave; corretta!";
    } else {
    if(
    strlen($username) < 4) {
    echo
    "Username deve avere piu di 4 caratteri!";
    } else {
    if(
    strlen($password) < 4) {
    echo
    "La password deve avere piu di 4 caratteri!";
    } else {
    $file='utenti.txt';
    $apri=fopen($file, 'a+');
    $contenuto=fread($apri, filesize($file));
    $array=explode(';', $contenuto);
    foreach(
    $array as $valore) {
    list(
    $username_file, $password_file, $email_file, $codice_file, $attivo_file)=explode(',', $valore);
    if(
    $username_file == $username) {
    $user_non_valido++;
    }
    if(
    $email_file == $email) {
    $email_non_valido++;
    }
    }
    if(
    $user_non_valido == '1') {
    echo
    "User gia scelto! Scegliene un altro!";
    } else {
    if(
    $email_non_valido == '1') {
    echo
    "Email gia usata! Usane un altra!";
    } else {
    $crypt_password=md5($password);
    $arraycodice=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
    for(
    $i=0; $i<30; $i++) {
    $randcodice=rand(1,31);
    $codice.=$arraycodice[$randcodice];
    }
    fwrite($apri, $username.','.$crypt_password.','.$email.','.$codice.',0;\n');
    fclose($apri);
    list(
    $sito, $inutile)=explode('.', $_SERVER['HTTP_HOST']);
    $testo="<p>Ciao ".$username."!<br> Questa &egrave; l'emai di conferma del sito <a href=http://\"".$_SERVER['HTTP_HOST']."\">".$sito."</a>.<br>Per completare la registazione clicca <a href=\"http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?step=conf&username=".$username."&codice=".$codice."\">Qui</a>!<br><p align=right>Lo Staff</p></p>";
    $head="MIME-Version: 1.0\n";
    $head.="Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $head.="Content-Transfer-Encoding: 7bit\n\n";
    mail($email, 'Conferma registrazione', $testo, $head);
    echo
    "Ti &egrave; stata spedita un email dove troverai un link per confermare il tuo indirizzo email!";
    }
    }
    }
    }
    }
    }
    }
    }
    } else {
    ?>
    <form method="post">
    <input name="submit" type="hidden"/>
    <table width="27%" border="0">
    <tr>
    <td width="49%">Username:</td>
    <td width="51%"><input name="username" type="text" /></td>
    </tr>
    <tr>
    <td>Password:</td>
    <td><input name="password" type="password" /></td>
    </tr>
    <tr>
    <td>Ripeti Password:</td>
    <td><input name="rip_password" type="password" /></td>
    </tr>
    <tr>
    <td>Email:</td>
    <td><input name="email" type="text" /></td>
    </tr>
    <tr>
    <td align="right"><input type="reset" value="Reset" /></td>
    <td><input type="submit" value="Registrati" /></td>
    </tr>
    </table>
    </form>
    <? }
    }
    ?>
    l'ho provato e funziona alla perfezione solo che manca la parte di conferma che non so come creare.
    penso che bisogni fare un foreach su explode(';', stringa) per individuare la riga dell utente che vuole confermare l'email e poi modificare lo 0 con l'1 ma non so come fare.
    qualcuno mi puo aiutare per questo ultimo punto?
    grazie in anticipo
    edit:
    ho provato a buttare giu un po il codice pero mi manca ancora la parte dove setto a 1 l'attivo
    Codice PHP:
    $username=$_GET['username'];
    $codice=$_GET['codice'];
    $file="utenti.txt";
    $apri=fopen($file, 'r+');
    $contenuto=fread($apri, filesize($file));
    $array=explode(';', $contenuto);
    $log="0";
    foreach(
    $array as $valore) {
    list(
    $username_file, $password, $email, $codice_file, $attivo)=explode(',', $contenuto);
    if(
    $username_file == $username and $codice_file == $codice) {
    $log="1";
    if(
    $attivo == "1") {
    $log="2";
    }
    }
    }
    if(
    $log == '0') {
    echo
    "La combinazione username codice non è corretta! Verifica i dati e riprova!";
    }
    if(
    $log == '1') {
    //codice mancante
    }
    if(
    $log == '2') {
    echo
    "Hai gia confermato l'email!";
    }
    adesso forse si riesce a capire meglio come dovrebbe venire.
    Ultima modifica di webeasy : 23-03-2009 alle ore 22.26.57

Regole di scrittura

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