• Super User

    modulo per contatti

    Ciao a tutti,
    nel mio sito ho inserito un modulo attraverso il quale inviare quesiti o richieste dopo aver indicato i propri dati (nome, cognome, mail ecc..)
    Da qualche giorno ricevo 4 o 5 mail spazzatura ogni giorno generate in automatico immagino da qualche programma.
    E' possibile proteggersi?
    Non so se qusta è la sezione adatta e mi scuso anche per il linguaggio non proprio tecnico.
    Il modulo potete vederlo nel sito in firma nella sezione quesiti.

    Fabrizio


  • Moderatore

    Ciao fab,
    caso mai puoi inserire un controllo captcha o qualcosa di simile.


  • User Attivo

    Già puoi anche creartene uno tuo in php ma ne trovi di certo già fatti


  • Super User

    Proverò a vedere cosa trovo non sono molto pratico.
    Grazie per le risposte.


  • User Attivo

    Sennò ho un modo un pò artigianale 😄 se vuoi ^^


  • Super User

    Sentiamo la proposta


  • User Attivo

    Ok guarda,
    siccome sono anche io alle prime armi col php e non sapendo se ci fosse qualcosa di meglio in giro ho fatto in questo modo:
    Ho una directory dove ho le immagini (le immagini del codice di controllo quindi: A, B, C, D, E, F e così via), poi nello script scelgo la lunghezza del codice esempio 5 apro la directory dove sono le immagini e metto tutti i nomi delle stesse .gif in un array che quindi conterrà a.gif b.gif e così via.
    Chiudo la cartella immagini, faccio un for che si ripete il numero di immagini che vuoi cioè 5 come detto sopra.
    Ora creo un numero random ad ogni for (numero che è massimo grande quante sono le immagini --> quindi se hai tutto l'alfabeto maiuscolo più i numeri [ho omesso 0 e O perchè sono simili e gli utenti si possono sbagliare] avrai un numero massimo pari a 33) quindi il numero corrisponde ad una pos nell'array (poi lo vedi nel codice sotto postato) e carico la prima immagine. Tutto questo per il numero di immagini che vuoi. Chiaramente poi avrai una stringa che non stampi a video con il codice cosìcchè te lo puoi portare avanti dopo il form e confrontarlo con quella inserita dall'utente. Comunque ecco il codice:
    [PHP]
    <?PHP
    $dir="images/codice_controllo/"; //Directory di dove si trovano le immagini
    $lunghezza_codice=5; //La lunghezza del codice di verifica
    $handle = opendir($dir);
    $i=0;
    ////////////////////////////////////////////////////////////////////////////////

    while (false !== ($file = readdir($handle))) {
    if(is_file($dir.$file)){
    //Se siamo nell'if significa che è un file ora selezioniamo solo le gif

    $estensione=strrchr($file,"."); //Mi tronca il file nel suo solo .estensione
    $estensione=substr($estensione,1); //Mi toglie il punto che è il primo carattere
    switch($estensione)
    

    {
    case "gif":
    case "GIF":
    $array_immagini*=$file;
    $i++;
    }//fine switch
    }//fine if
    }//fine while
    closedir($handle);

    for($i=0; $i<$lunghezza_codice; $i++)
    {
    $x=rand(0,32); //33 il numero totale di file
    $url=$dir.$array_immagini[$x];
    echo"<img src="$url" alt="" />";
    $code*=substr("$array_immagini[$x]",0,1); //Inserisco in array_caratteri solo il carattere della relativa immagine
    }
    // metto il codice in una stringa
    $codice="";
    for($i=0; $i<$lunghezza_codice; $i++)
    {
    $codice=$codice.$code*;
    }

    ?>
    [/PHP]
    Se vuoi ti dò lo zip con anche le immagini senza che te le crei tutte.
    A me funziona poi vedi te se ti va bene o se lo ripudi 😄