Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    205

    Piccolo capcha con numeri per invio dati form

    Ciao,
    Ho creato un form che consente agli utenti di mandare email.
    Vorrei inserire un piccolo accorgimento contro lo spam per evitare email indesiderate.

    Come è possibile mettere un campo in cui indicare, alcune alternative, ad esempio 5 + 5 = [qui spazio per rispondere]?
    In modo che l'utente che sbaglia non possa andare avanti.

    Vorrei inserirne giusto un paio in ordine casuale magari.
    Come posso farlo?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sul mio sito faccio così: link

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    205
    Ho provato a seguire il tuo metodo ma non va.
    mi da sempre errore per il codice inserito.

    ho inserito questo codice nel controllo generale campi ($code == $_SESSION['codice_somma'])

    che ho sbagliato?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Eh, ma $code chi è nel tuo codice? Come lo recuperi?
    Da qualche parte fai così?
    $code = $_POST['code']

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    205
    Si quel code è definito in quel modo

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Verifica che ci sia effettivamente il codice, prova a stamparlo con un echo, anzi stampa anche ciò che c'è in sessione, fa così

    echo $code.'<br />';
    echo $_SESSION['codice-somma'];

    così vedi se sono uguali ed eventualmente capisci dove sia il problema.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    205
    Si il risultato è lo stesso ma non va il form.

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Allora posta il codice PHP che stai usando perché ci sarà qualche altra cosa che non va.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    205
    Ho inserito il codice all interno di un file default.php di joomla.
    Possono esserci.problemi con la.sessione?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    205
    Ecco il codice:

    <?php
    // per piccolo capcha
    session_start();

    $a1 = rand(1,10);
    $a2 = rand(1,10);

    $_SESSION['codice_somma'] = $a1 + $a2;
    ?>




    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $email = $_POST['email'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio'];
    $privacy = $_POST['privacy'];
    $code = $_POST['code'];


    if(isset($_POST['submit'])){





    if (($nome != null) && ($cognome != null) && ($email != null) && ($oggetto != null) && ($messaggio != null) && ($privacy != null)) {
    echo "<p class='attenzione'>".JText::_('-COMPILA-CAMPI')."</p>";
    }


    if(!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email))
    {
    echo "<p class='attenzione'>".JText::_('-EMAIL-ERROR')."</p>";
    } else{
    echo "";
    }
    if ($privacy == null) {
    echo "<p class='attenzione'>".JText::_('-DEVI-ACCETTARE-PRIVACY')."</p>";
    }
    if ($code != $_SESSION['codice_somma'] ) {
    echo "<p class='attenzione'>".JText::_('-CODICE-NON-CORRETTO')."</p>";
    }



    if ((ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email)) && ($privacy != null) && ($code == $_SESSION['codice_somma'])) {

    // qui codice per invio email

    }
    Html forum

    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" id="contatto-diretto" name="contattodiretto">
    <fieldset>


    <li>
    <label for="nome"><?php echo JText::_('-NOME'); ?> *</label>
    <input type="text" name="nome" id="nome" />
    </li>
    <li>
    <label for="cognome"><?php echo JText::_('-COGNOME'); ?> *</label>
    <input type="text" name="cognome" id="cognome" />
    </li>
    <li>
    <label for="email"><?php echo JText::_('-EMAIL'); ?> </label>
    <input type="text" name="email" id="email" />

    </li>
    <li>
    <label for="Oggetto"><?php echo JText::_('-INFO-RIGUARDO'); ?> *</label>
    <input type="text" name="oggetto" id="oggetto" />
    </li>
    <li>
    <div class="messaggio-supporto"><label for="messaggio"><?php echo JText::_('-MESSAGGIO'); ?> *</label></div>
    <textarea name="messaggio" id="messaggio" rows="10" cols="50" ></textarea>
    </li>
    <li>
    <label for="privacy"><?php echo JText::_('-ACCETTI-INFORMATIVA'); ?>
    <?php echo JText::_('-SI'); ?> <input type="checkbox" name="privacy" id="privacy" Value="Si" >

    </label>
    </li>
    <li>
    <br>
    <?php echo $a1.' + '.$a2.' = ' ?><input type="text" name="code" id="code" />
    </li>

    </fieldset>

    <input type="submit" name="submit" id="submit" value="<?php echo JText::_('-INVIA-MAIL'); ?>" class="Invia-mail" />

    </form>
    Sembra tutto ok ma non funziona invece.

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.