Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    1,742

    reCAPTCHA come inserire in un form correttamente

    Buongiorno a tutti,

    devo implementare in un form il controllo CAPTCHA per questi maledetti spamm.

    Purtroppo però non riesco ad implementare il codice. Vi posto il codice:

    Codice PHP:
    <?

    if ($ok=='invia')  {
                
    $query="INSERT INTO `text`( `user`, `email`, `testo`, `id_categ` ) VALUES ( '$user', '$email', '$testo', '$categ' ) ";
                    
    //echo $query;
                    
                    
    if (mysql_query($query)){
                    
    header("location:ok.php");
                    }else{
                    
    header("location:ko.php");
             }
    }
    ?>

    <? if ((isset($cat)) AND (!isset($ok))) { ?>
                    <form name="form1" method="post" action="inssms.php">
                              
                        
                  

    <font size="2" face="Arial, Helvetica, sans-serif">Nick*: 
                    <input name="user" type="text" id="user" size="10" maxlength="10">
                          

                    Email: 
                    <input name="email" type="text" id="email" size="20" maxlength="30">
                          

                    Messaggio*: 
                    <input name="testo" type="text" id="testo" size="40" maxlength="255">
                          

                    Categoria* 
                    <select name="categ" >
                            <?  $query1="SELECT * FROM `categ` ORDER BY id DESC";
                            
    $rez1=mysql_query($query1);
                            while (
    $row1=mysql_fetch_array($rez1))
                            {
                                echo 
    "<option value=\"$row1[categ]\"";
                                if (
    $cat==$row1[categ]) {
                                                echo 
    " selected ";
                                                };
                                echo 
    ">$row1[categ]</option>";                        
                            };
                        
    ?>
                          </select>
                          

                          <input name="ok" type="submit" id="ok" value="invia">
                          <input name="cancella" type="reset" id="cancella" value="cancella">
                          </font> </p>
    </form>
                    
    <?                ?>
    Mentre il codice chaptcha da inserire è il seguente:

    <?php
    require_once('recaptchalib.php');
    $publickey = "your_public_key"; // you got this from the signup page
    echo recaptcha_get_html($publickey);
    ?>


    L'ho inserito all'interno dei tag <form></form> ma nulla. se compilo i moduli e non considero il codice captcha e clicco invia le informazioni vengono inserite ugualmente.

    Come mai?

    grazie mille

  2. #2
    Hai seguito bene la documentazione sul sito ufficiale?
    Hai fatto modifiche personali al codice originale?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    1,742
    Originariamente inviato da fdisotto
    Hai seguito bene la documentazione sul sito ufficiale?
    Hai fatto modifiche personali al codice originale?
    ho eseguito come qui https://developers.google.com/recaptcha/docs/php

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    1,742
    Dovrei forse integrare prima la verifica e poi tutto il resto. Ma come?

  5. #5
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Ho lo stesso problema...
    Invia il modulo nonostante il codice non corrisponda!

  6. #6
    Quote Originariamente inviata da kiapparo Visualizza il messaggio
    L'ho inserito all'interno dei tag <form></form> ma nulla. se compilo i moduli e non considero il codice captcha e clicco invia le informazioni vengono inserite ugualmente.

    Come mai?

    grazie mille
    Perchè non ci posti il codice completo che non funziona?

    il problema sembra che sia nel procedurale che hai scritto sopra,
    codice:
    if ($ok=='invia')  {
    , a parte che è un pessimo modo di verificare se è stato inviato un form, il nome del campo non dice nulla e sarà sempre vero ogni volta che premi il bottone di invio del form.. quindi è giusto che venga inserita la riga sul database..

    Non so come funziona la libreria che stai usando ma mi aspetto che sia qualcosa del genere:

    codice:
    if ( isset( $_POST['ok'] ) ) {
      if ( controllo che il captcha sia corretto ) {
        // inserisco la riga nel db
        } else {
        // errore captcha
      }
      } else {
      // errore form
    }
    ad occhio..
    Questa volta, più che un voto.. è favoreggiamento.

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.