Pagina 1 di 9 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 85
  1. #1

    Modificare il metodo di registrazione in una chat

    Salve a tutti, io voglio che nella mia chat quando uno si registra non possa scrivere subito nella chat ma che l'utente debba prima andare a leggere la mail che viene a lui spedita e cliccando il link all'interno della mail la registrazione venga attivata, altresì voglio che se questo utente si registra una volta, se tenta di registrarsi un seconda volta con la stessa mail gli venga impedito.

    posto la pagina attuale che gestisce la registrazione:
    Codice PHP:
    <?
    if(!isset($_POST['Submit']))
    {
    echo 
    "
        <script language=\"javascript\">
        alert(\"Non hai  i permessi per accedere a questa pagina\");
            </script>
            "
    ;
           
            exit;
    }
    ?>
    <html>
    <head>
    <title>Registrazione alla chat</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body bgcolor="#FBBEAA">
    <?
    include("config.php");
    $ip $_SERVER['REMOTE_ADDR'];
    $nick=$_POST['nick'];
    $nick=strtolower($nick);/*conversione della stringa del nick in minuscolo*/
    $nick=stripslashes($nick);/*toglie gli slashes aggiunti ad una stringa  
    con addslòashes*/
    $password=$_POST['password'];
    $password=strtolower($password);/*conversione della stringa della
    password in minuscolo*/
    $password_cr=crypt($password,$nick);/*criptazione di tipo DES della
    password usando come chiave la stringa del nick*/
    $password_cr=str_replace("|","*",$password_cr);/*questa la si definisce
    una criptazione aggiuntiva:  se nella password criptata sono presenti
    |   sono sostituiti con *  */
    $age=(int)$_POST['age'];/*qquio si verifica che eta sia intera ,altro  controllo
    per la sicurezza*/
    if(!(int)$age)
    {
    echo 
    "
    <script>
        alert(\"Inserimento di un dato non numerico\");
        history.back();
        </script>
        "
    ;
        exit;
    }
    $sex=$_POST['sex'];
    $nation=$_POST['nation'];
    $hobbies=$_POST['hobbies'];
    $nation=stripslashes($nation);
    $hobbies=stripslashes($hobbies);
    if (!(
    file_exists($file_reg)))
    {
    fopen($file_reg,"w");}
    $utente_ok=1;
    $ut_regist=file($file_reg);/*si memorizza  il file  in un vettore ;ogni
    elemento del vettore corrisponde ad ogni riga del file*/
    $dim_reg=count($ut_regist);/*conta le righe del vettore*/
    /*ora che il file è un vettore era meglio utilizzare un foreach
    piuttosto che un for*/
    for ($i=0;$i<$dim_reg;$i++)
    {
    $utente=chop($ut_regist[$i]);/*chop è alias di rtrim ed elimina spazi ed
    altro dalla fine del file in questo caso dalla riga in cui andremo a
    scrivere*/
    $dati_ut=explode("|",$utente);/*considerando ogni riga come un array si
    separa ogni elemento  dell'array con un |*/
    $nick_ut=$dati_ut[0];
    $pass_ut=$dati_ut[1];
    if ( (
    $nick==$nick_ut) | ($password_cr==$pass_ut) ) $utente_ok=0/*si
    controlla che il nick o la passwords nopn esistano*/
    }
    if (
    $utente_ok==1)
    {
    if (empty(
    $nick) | empty($password) | empty($nation) | empty($sex) |
    empty(
    $hobbies))
    {
    echo 
    "<center><font face=\"Verdana\" size=\"2\">NON HAI RIEMPITO UNO O
    PIU' CAMPI</font></center>

    "
    ;
    echo 
    "<center><font face=\"Verdana\" size=\"2\"><a
    href=\"javascript:history.back();\">TORNA INDIETRO</a></font></center>"
    ;
    }
    else  
    /*in caso in cui tutti i campi siano stati tutti riempiti*/
    {
    $utente=$nick."|".$password_cr."|".$age."|".$sex."|".$nation."|".$hobbies."|".$ip."\n";
    $ins_utente=fopen($file_reg,"a+");/*si scive i dati dell'utente nel  
    vettore-filre*/
    fputs($ins_utente,$utente);
    fclose($ins_utente);
    echo 
    "<center><font face=\"Verdana\" size=\"3\">SEI REGISTRATO ALLA CHAT.
     PER ENTRARE E SCRIVERE NELLA CHAT, CHIUDI QUESTA FINESTRA DI CONFERMA DELL'AVVENUTA REGISTRAZIONE, ED EFFETTUA IL LOGIN INSERENDO NEI DUE RISPETTIVI CAMPI IL NICKNAME E LA PASSWORD SCELTI.</font></center>"
    ;
    }
    }
    else
    echo 
    "<center>Nick o password già utilizzata.
    <a
    href=\"javascript:history.back();\">Torna indietro</a><center>"
    ;
    ?>
    </body>
    </html>

  2. #2
    vedo che molti visionano il topic ma nessuno risponde, lo so è difficile, specie per me ma almeno è possibile realizzare questo...?

  3. #3
    x il punto 1: creati una nuova colonna nella tabella degli utenti, per esempio chiamala user_confirmed, tipo booleano se 1 confermato, se 0 no

    x il punto 2: prima della registrazione ricerca sul database utenti x e-mail, se già esiste messaggio di avviso


    la cosa non è difficile, solo che se queste cose vengono fatte sbattendoci un pò la testa si ottengono delle belle soddisfazioni

    x ogni chiarimento no problem

  4. #4
    Originariamente inviato da tarakekko
    x il punto 1: creati una nuova colonna nella tabella degli utenti, per esempio chiamala user_confirmed, tipo booleano se 1 confermato, se 0 no

    x il punto 2: prima della registrazione ricerca sul database utenti x e-mail, se già esiste messaggio di avviso


    la cosa non è difficile, solo che se queste cose vengono fatte sbattendoci un pò la testa si ottengono delle belle soddisfazioni

    x ogni chiarimento no problem
    ci vorrebbero mille chiarimenti per me che ho trovato la chat già fatta sul web, comunque tu parli di database ma la mia chat si basa su foglio di testo .txt, è possibile lo stesso?

  5. #5
    bè quindi passo il testimone a qualcun'altro, io sono sempre del parere che le cose anche se prese dalla rete vanno un pò studiate, anche per propria cultura personale.

    quindi mi spiace ma non so proprio come aiutarti

  6. #6
    Originariamente inviato da tarakekko
    bè quindi passo il testimone a qualcun'altro, io sono sempre del parere che le cose anche se prese dalla rete vanno un pò studiate, anche per propria cultura personale.

    quindi mi spiace ma non so proprio come aiutarti
    VVoVe: ..........

    spero che qualcun'altro mi aiuti.

  7. #7
    nessuna idea sul come fare? :master:

  8. #8
    La tua chat si basa su file di testo per quello che riguarda i messaggi o anche per il salvataggio degli utenti registrati che possono accedere??

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Originariamente inviato da alcio74
    La tua chat si basa su file di testo per quello che riguarda i messaggi o anche per il salvataggio degli utenti registrati che possono accedere??

    ciao alcio si tutta la chat compresa pagina di salvataggio utenti e i messaggi si basano sul file .txt

    hai qualche idea?

  10. #10
    hai qualche idea?
    Beh.... se dovessi risponderti a bruciapelo, ti direi: "cambia chat". Quantomeno la parte di gestione degli utenti.

    Senti mi fai un esempio di come è strutturato il file di testo dove sono salvati i dati di accesso degli utenti?
    Sperando poi che almeno sia separato da quello dove vengono scritti i messaggi della chat!!!!

    Parti però dal presupposto che è un bel casino fare un login serio e funzionante con i file di testo! Nonché andare a gestire la conferma di iscrizione per email. Penso proprio che ci dovremo inventare un bel mostro tecnologico!!!

    Ad ogni modo, ragionamo per gradi.
    Al momento dell'iscrizione, non salvare i dati dell'utente direttamente nel file utenti.
    Creati una cartella, e chiamala (esempio) /iscrizioni_temp.
    Lì vai a salvare tanti fogli di testo, quanti sono gli utenti in attesa di attivazione per email del loro account.

    I fogli di testo avranno come nome un codice alfanumerico casuale del tipo ds87df45398743.dat.
    Questo codice alfanumerico, non fai altro che crearlo al volo al momento dell'iscrizione di un nuovo utente.
    Qualcosa tipo:
    Codice PHP:
    // crei un codice
    $codice_alfanumerico_casuale MD5(microtime());
    // mescoli i caratteri
    $codice_alfanumerico_casuale str_shuffle($codice_alfanumerico_casuale);
    // ne prendi una piccola quantità (esempio: 15)
    $codice_alfanumerico_casuale substr($codice_alfanumerico_casuale015);

    $nome_file_temporaneo $codice_alfanumerico_casuale.".dat";
    /*
    qui metti tutto il codice per salvare i dati dell'utente che 
    si sta iscrivendo, nel file di testo chiamato come sopra
    e salvi il file nella cartella temporanea di cui ti parlavo sopra
    */

    $link_da_spedire_per_email "http://www.tuosito.tld/conferma_iscrizione.php?rif=$codice_alfanumerico_casuale";

    /*
    qui metti tutto il codice per comporre un messaggio
    cui allegare il link appena formattato, poi spedisci tutto 
    all'indirizzo segnalato dall'utente
    */ 
    Questo per sommi capi il procedimento.

    Una volta arrivata l'email al tuo utente, questi per confermare l'iscrizione dovrà chillare sul link che gli hai fornito.
    Andiamo a costruire la pagina conferma_iscrizione.php.

    Codice PHP:
    $riferimento $_GET['rif'];
    $nome_file $rif.".dat";
    /*
    qui fai i controlli che il file esista e tutto il resto.
    una volta che il file esiste, lo apri con FOPEN
    lo leggi, con FREAD, prelevi i dati e li vai a salvare nel 
    file di testo dove sono salvati gli utenti confermati
    Fatto questo con UNLINK vai a cancellare il file .dat
    appena appena aperto.
    */ 
    Anche se un po' macchinoso, il metodo è piuttosto semplice.
    Nel caso tu non ne conosca alcune, per vedere come funzionano le funzioni che ti ho scritto, ti rimando al manuale ufficiale.

    Vedi te se ti piace come metodo, ma ripeto... senza DB questo è il massimo che mi possa venire in mente.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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 © 2025 vBulletin Solutions, Inc. All rights reserved.