Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [PHP] Conferma registrazione via mail

    Ciao ragazzi,
    il mio sistema di registrazione utenti prevede una mail automatica dopo la registrazione in cui c'è un link che attiva l'account...

    Ma quando clicco sul link mi dice che la registrazione non può essere effettuata. Ho impostato il tempo massimo tra la mail e la conferma a 24 ore... ma magari ho sbagliato qualcosa nel codice...

    Codice PHP:
    $_CONFIG['regexpire'] = 24//in ore

    function reg_clean_expired(){
        global 
    $_CONFIG;
        
        
    $query mysql_query("
        DELETE FROM "
    .$_CONFIG['table_utenti']."
        WHERE (regdate + "
    .($_CONFIG['regexpire'] * 60 60).") <= ".time()." and temp='1'");
    }

    if(isset(
    $_GET['id']) and strlen($_GET['id']) == 32){
        
    reg_clean_expired();
        
    $status reg_confirm($_GET['id']);
        
        switch(
    $status){
            case 
    REG_SUCCESS:
                
    $msg "La tua registrazione è stata confermata; ora puoi effettuare il login.";
            break;
            case 
    REG_FAILED:
                
    $msg "La registrazione non può essere confermata, probabilemente poichè è scaduta.";
            break;
        } 
    Cosa sbaglio?

  2. #2
    Ma in effetti di cancella il record dalla tabella? Se si, prova a dare un echo della query prima di eseguirla e controlla che i dati che verrebbero inviati a mysql siano corretti;

    esempio prima di $query=mysql_que......
    codice:
    $q="DELETE FROM ".$_CONFIG['table_utenti']." WHERE (regdate + ".($_CONFIG['regexpire'] * 60 * 60).") <= ".time()." and temp='1'"; 
    
    echo $q;
    exit;
    Controlla cio' che ti stampa a video e se tutte le variabili sono come te le aspetteresti.

    ______________________________________

    Progresso Web.

  3. #3
    Hai ragione, è un buon consiglio... ma la query sta in una libreria di registrazione e non in quello della conferma dove stampo a video il risultato... Come faccio a stamparmi la query da lì?


    config.php
    Codice PHP:
    $_CONFIG['regexpire'] = 24//in ore 
    reg.lib
    Codice PHP:
    function reg_clean_expired(){
        global 
    $_CONFIG;
        
        
    $query mysql_query("
        DELETE FROM "
    .$_CONFIG['table_utenti']."
        WHERE (regdate + "
    .($_CONFIG['regexpire'] * 60 60).") <= ".time()." and temp='1'");

    confirm
    Codice PHP:
    if(isset($_GET['id']) and strlen($_GET['id']) == 32){
        
    reg_clean_expired();
        
    $status reg_confirm($_GET['id']);
        
        switch(
    $status){
            case 
    REG_SUCCESS:
                
    $msg "La tua registrazione è stata confermata; ora puoi effettuare il login.";
            break;
            case 
    REG_FAILED:
                
    $msg "La registrazione non può essere confermata, probabilemente poichè è scaduta.";
            break;
        } 

  4. #4
    Ho appena controllato nel db... il record c'è non è stato cancellato... Però è pur vero che non sono ancora passate 24 ore dalla registrazione...

    Ma allora perché non mi fa attivare l'account?


  5. #5

  6. #6
    Originariamente inviato da pezzo
    Hai ragione, è un buon consiglio... ma la query sta in una libreria di registrazione e non in quello della conferma dove stampo a video il risultato... Come faccio a stamparmi la query da lì?


    config.php
    Codice PHP:
    $_CONFIG['regexpire'] = 24//in ore 
    reg.lib
    Codice PHP:
    function reg_clean_expired(){
        global 
    $_CONFIG;
        
        
    $query mysql_query("
        DELETE FROM "
    .$_CONFIG['table_utenti']."
        WHERE (regdate + "
    .($_CONFIG['regexpire'] * 60 60).") <= ".time()." and temp='1'");

    confirm
    Codice PHP:
    if(isset($_GET['id']) and strlen($_GET['id']) == 32){
        
    reg_clean_expired();
        
    $status reg_confirm($_GET['id']);
        
        switch(
    $status){
            case 
    REG_SUCCESS:
                
    $msg "La tua registrazione è stata confermata; ora puoi effettuare il login.";
            break;
            case 
    REG_FAILED:
                
    $msg "La registrazione non può essere confermata, probabilemente poichè è scaduta.";
            break;
        } 
    ma reg_confirm($_GET['id']) in particolare cosa fa??
    il codice della funzione dov'è?


    Ciao!

  7. #7
    Codice PHP:
    function reg_confirm($id){
        global 
    $_CONFIG;
        
        
    $query mysql_query("
        UPDATE "
    .$_CONFIG['table_utenti']."
        SET temp='0'
        WHERE uid='"
    .$id."'");
        
        return (
    mysql_affected_rows () != 0) ? REG_SUCCESS REG_FAILED

  8. #8
    Originariamente inviato da pezzo
    Codice PHP:
    function reg_confirm($id){
        global 
    $_CONFIG;
        
        
    $query mysql_query("
        UPDATE "
    .$_CONFIG['table_utenti']."
        SET temp='0'
        WHERE uid='"
    .$id."'");
        
        
    $res = (mysql_affected_rows() != 0) ? REG_SUCCESS REG_FAILED;
        return 
    $res;

    prova cosi!
    Ciao!

  9. #9
    Niente da fare... solito msg che la registrazione non può essere confermata e niente altro...

  10. #10

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.