Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    23
    Ebbene, volevo evitare questo! Perché mi troverei dei record sul db inutili.
    hai provato a eliminare il record sul db, in caso fallisca l'invio dell'email?

    Puoi provare a fare una cosa del genere:

    codice:
    <?php
    
    
    //Dopo la compilazione del form, tenti di inviare una conferma di registrazione via email
    
    
        $destinatario  = "$email";
         $oggetto        = "Conferma di registrazione!";
          $messaggio    = "<p>Ciao, grazie per esserti registrato, questo è il codice per confermare la         registrazione!</p>";
          $mittente = "tu<tu@tu.com>";
         $html =  "MIME-Version: 1.0\r\n";
       $html .= "Content-type: text/html; charset=iso-8859-1\r\n";
    
    // SE L'EMAIL VIENE INVIATA, OK
    
    
        if(@mail($destinatario, $oggetto, $messaggio, $html . "From: $mittente")) { 
    
    
         echo "Registrazione completata con successo!";
    
        } else { 
    
    // ALTRIMENTI, ELIMINI L'UTENTE DAL DB
     
     $connessione = mysql_connect($host,$user,$pass); //Apri la connessione al DB
        
        mysql_select_db('utenti');
         
          DELETE FROM utenti WHERE email = '$email' ; // Elimini i dati dell'utente appena registrato
          
        echo "Email non valida!"
     
    mysql_close();
        
    }
    
    
    ?>
    Se sei padrone di te stesso sei padrone
    del mondo...

  2. #12
    Quote Originariamente inviata da Erwin19 Visualizza il messaggio
    Beh, allora, direi che potrei iniziare ad accontentarmi di una funzione che mi controlla se i record MX esistono rispetto ad usare la funzione di controllo formattazione, che mi fa passare la mail per "attendibile" se il formato risulta essere corretto.

    taaaaaaak
    Codice PHP:
            <?php
                
    function domain_exists($email){
                        list(
    $user$domain) = explode('@'$email);
                        
    $arrdns_get_record($domain,DNS_MX);
                        if(
    $arr[0]['host']==$domain&&!empty($arr[0]['target'])){
                                return 
    $arr[0]['target'];
                        }
                }
                
    $email'mio@dominio.com';

                if(
    domain_exists($email)) {
                        echo(
    'This MX records exists; I will accept this email as valid. '.$email);
                }
                else {
                        echo(
    'No MX record exists;  Invalid email. '.$email);
                }
            
    ?>
    Chiaro che il problema non l'ho risolto per i motivi sopra citati. Ho trovato alcuni script che verificano l'esistenza della mail, ma i server non rispondono e oltre a questo credevo che i tempi d'attesa fossero più rapidi (pur ottendo una risposta negativa su un email esistente!).

    Ma questo non significa che non esistono. Come fanno google, facebook e altri a controllare la validità e l'esistenza delle mail? Chiedo eh, non per essere polemico...
    quello che fa questo script è solamente di verificare se esiste il "dominio" dell'indirizzo...

    quindi se metti mailnonregistrata@google.com lui ti risponderà che l'indirizzo esiste... e mi sembra che non ti è cambiato molto

  3. #13
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99
    Quote Originariamente inviata da Dr.chm Visualizza il messaggio
    hai provato a eliminare il record sul db, in caso fallisca l'invio dell'email?

    Puoi provare a fare una cosa del genere:

    codice:
    Ottima dritta! Non avevo pensato ad impostarla così! 
    Grazie!
    
    <?php
    
    
    //Dopo la compilazione del form, tenti di inviare una conferma di registrazione via email
    
    
        $destinatario  = "$email";
         $oggetto        = "Conferma di registrazione!";
          $messaggio    = "<p>Ciao, grazie per esserti registrato, questo è il codice per confermare la         registrazione!</p>";
          $mittente = "tu<tu@tu.com>";
         $html =  "MIME-Version: 1.0\r\n";
       $html .= "Content-type: text/html; charset=iso-8859-1\r\n";
    
    // SE L'EMAIL VIENE INVIATA, OK
    
    
        if(@mail($destinatario, $oggetto, $messaggio, $html . "From: $mittente")) { 
    
    
         echo "Registrazione completata con successo!";
    
        } else { 
    
    // ALTRIMENTI, ELIMINI L'UTENTE DAL DB
     
     $connessione = mysql_connect($host,$user,$pass); //Apri la connessione al DB
        
        mysql_select_db('utenti');
         
          DELETE FROM utenti WHERE email = '$email' ; // Elimini i dati dell'utente appena registrato
          
        echo "Email non valida!"
     
    mysql_close();
        
    }
    
    
    ?>
    Ottima dritta! Non avevo pensato a gestirla in questa maniera.
    Grazie!

  4. #14
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99
    Quote Originariamente inviata da phpneo Visualizza il messaggio
    quello che fa questo script è solamente di verificare se esiste il "dominio" dell'indirizzo...

    quindi se metti mailnonregistrata@google.com lui ti risponderà che l'indirizzo esiste... e mi sembra che non ti è cambiato molto
    Eh... Hai ragione... In realtà pensandoci bene non ha neanche molto senso, perché il record di una mail farlocca lo registrerò comunque. Credo che il suggerimento di Dr.chm, non sia da sottovalutare.

  5. #15
    Quote Originariamente inviata da Erwin19 Visualizza il messaggio
    Ottima dritta! Non avevo pensato a gestirla in questa maniera.
    Grazie!
    Non serve a niente, mail() ritorna true ogni volta che il TUO server SMTP ha correttamente processato l'invio, non ti dice nulla sulla ricezione.

    Ripeto, non c'e' nessun modo per verificare una mail a parte mandarne una e aspettare un'azione dell'utente.

  6. #16
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    23
    Ha ragione k.b, effettivamente ho fatto una prova e anche inserendo un indirizzo e-mail inesistente, mail() ritorna true... colpa mia! Un altra idea che potresti considerare, per tenere pulito il DB da registrazioni fasulle, è quella di creare uno script che periodicamente (per esempio, ogni 72 ore), cancella gli account registrati, ma non attivati da più di un intervallo di tempo (es. 48 ore).

    So che è più complesso, ma potrebbe essere una possibilità
    Se sei padrone di te stesso sei padrone
    del mondo...

  7. #17
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99
    Ciao!!!
    Dunque, alla fine ho seguito alla lettera ciò che si è detto.
    Controllo formato mail (NO porcate) e call to action per la conferma.
    Ho apprezzato molto i vostri interventi!

    Buon Lavoro/Caxxeggio/Vacanze/Rientro
    Grazie a tutti!!

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