[PHP] Inserire google recaptcha in uno form contatti

luigi777

Utente Attivo
14 Feb 2008
1.080
1
38
39
Massa, Italy
Salve, vorrei inserire il google Invisible reCAPTCHA .. ho trovato questo esempio:
https://github.com/geordyjames/google-Invisible-reCAPTCHA

Lo inserito nel mio codice .. ma se provo mi da:
An Error Occured and Error code is :missing-input

questo è il codice:
PHP:
<?php
include("inc.php");
include("include/inc_browser.php");
include("include/inc_ipinfo.io.php");
$title ="Contatti";
$layout = new layout;
$layout->setTitle($title);
$layout->startBody();
?>
<h1 class="title_page">Contatti</h1>
<div id="contact">
    <fieldset>
        <?php
        if(isset($_POST["invia"]))
        {
            $nome = $_POST["nome"];
            $cognome = $_POST["cognome"];
            $oggetto = $_POST["oggetto"];
            $messaggio =$_POST["messaggio"];
            $email = $_POST["email"];

            if(empty($nome))
            {
                $error = "Non hai inserito il nome";
            }
            elseif(empty($cognome))
            {
                $error = "Non hai inserito il cognome";
            }
            elseif(empty($oggetto))
            {
                $error = "Non hai inserito l'oggetto";
            }
            elseif(empty($email))
            {
                $error = "Inserire il l'email";
            }
            elseif(!valid_email($email))
            {
                $error = "Inserire la tua email valida";
            }

            elseif(empty($messaggio))
            {
                $error = "Non hai inserito il messaggio";
            }
            else

            {
                require("classs/class.google.php");
                $recaptcha = $_POST['g-recaptcha-response'];
                $object = new Recaptcha();
                $response = $object->verifyResponse($recaptcha);
                if(isset($response['success']) and $response['success'] != true) {
                    echo "An Error Occured and Error code is :".$response['error-codes'];
                }else {
                    require("classs/class.phpmailer.php");
                    require("classs/class.smtp.php");

                    $mail = new PHPMailer();

                    $mail->IsSMTP(); // abilitiamo l'SMTP
                    $mail->SMTPDebug = 0;  // debug: 1 = solo messaggi, 2 = errori e messaggi
                    $mail->SMTPAuth = true;  // abilitiamo l'autenticazione
                    $mail->SMTPSecure = 'ssl'; // abilitiamo il protocollo ssl richiesto per Gmail
                    $mail->Host = $admin_email_host; // ecco il server smtp di google
                    $mail->Port = $admin_email_port; // la porta che dobbiamo utilizzare



                    // Inseriamo i dati della casella che utilizzeremo per spedire

                    $mail->Username = $admin_email_username;

                    $mail->Password = $admin_email_password;


                    $mail->From = $_POST["email"];

                    $mail->FromName = $_POST["nome"]." ".$_POST["cognome"];

                    // Qui inseriamo l'indirizzo a cui recapitare le email spedite tramite il form

                    $mail->AddReplyTo($_POST["email"], $_POST["nome"]."  ".$_POST["cognome"]);


                    $mail->AddAddress($admin_email);

                    $mail->IsHTML(true);

                    $messaggio = "Nome:&nbsp;&nbsp;". $_POST["nome"]."<br />";
                    $messaggio .= "Cognome:&nbsp;&nbsp;". $_POST["cognome"]."<br />";
                    $messaggio .= "Indirizzo Ip:&nbsp;&nbsp;". $_SERVER["REMOTE_ADDR"]."<br />";
                    $browser = getBrowser($_SERVER['HTTP_USER_AGENT']);
                    $ip = $_SERVER["REMOTE_ADDR"];
                    $loc = _ipinfo($ip);
                    $messaggio .= "Location: ".$loc. "<br />";
                    $messaggio .= "Browser:&nbsp;&nbsp;". $browser."&nbsp;&nbsp;<br />";
                    $messaggio .= "Messaggio: <br />". nl2br(replace_text($_POST["messaggio"]))."<br />";
                    $messaggio .= "=====================================================================";

                    $mail->Body= $messaggio;

                    $oggetto = "Richiesta da ".$www_email." : ".$_POST["oggetto"]."";

                    $mail->Subject=$oggetto;


                    if($mail->Send()){

                        $msg = "ok, attendere prego..al ritorno della home page. ";

                        redirect("index.php",4);

                    }else{

                        $error = "Errore invio mail";

                    }
                }
            }
        }
        $config = require('config.php');
        $nome = (isset($_POST["nome"])) ? trim(($_POST["nome"])): '';
        $cognome = (isset($_POST["cognome"])) ? trim(($_POST["cognome"])): '';
        $oggetto = (isset($_POST["oggetto"])) ? trim(($_POST["oggetto"])): '';
        $messaggio = (isset($_POST["messaggio"])) ? trim(($_POST["messaggio"])): '';
        $email = (isset($_POST["email"])) ? trim(($_POST["email"])): '';
        ?>
        <script src='https://www.google.com/recaptcha/api.js'></script>
         <script>
       function onSubmit() {
         document.getElementById("contact-form").submit();
       }
    </script>
        <?php
        if(isset($error)){ echo '<p class="info_error">'.$error.'</p>';}
        if(isset($msg)){ echo $msg;} else {
            ?>           
            <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" id="contact-form">
                <p>Nome</p>
                <p><input type="text" name="nome"  class="form-control" value="<?php if(isset($_POST['nome'])){echo htmlspecialchars($_POST['nome']);}else { echo htmlspecialchars($nome); }?>" /></p>
                <p>Cognome</p>
                <p><input type="text" name="cognome" class="form-control"  value="<?php if(isset($_POST['cognome'])){echo htmlspecialchars($_POST['cognome']);}else { echo htmlspecialchars($cognome); }?>"  /></p>
                <p>Oggetto</p>
                <p><select name="oggetto" class="form-control">
                    <option value="Informazioni"   <?php if ($oggetto == "Informazioni") echo ' selected' ?>>Informazioni</option>
                    <option value="Richiesta di contatto"    <?php if ($oggetto == "Richiesta di contatto") echo ' selected' ?>>Richiesta di contatto</option>
                    <option value="Richiesta Curriculum Vitae"    <?php if ($oggetto == "Richiesta Curriculum Vitae") echo ' selected' ?>>Richiesta Curriculum Vitae</option>
                    <option value="Altro"    <?php if ($oggetto == "Altro") echo ' selected' ?>>Altro</option>
                </select>
            </p>
            <p>Email</p>
            <p><input type="text" name="email" class="form-control" size="40" value="<?php if(isset($_POST['email'])){echo htmlspecialchars($_POST['email']);}else { echo htmlspecialchars($email); }?>" /></p>
            <p>Messaggio</p>
            <p><textarea rows="10" cols="40"  class="form-control"name="messaggio"><?php if(isset($_POST['messaggio'])){echo $_POST['messaggio'];}else { echo $messaggio; }?></textarea></p>
            <p><button class="g-recaptcha"     data-sitekey="<?php echo $config['client-key']; ?>" data-callback="onSubmit"></button></p>
            <p><input type="submit" name="invia" value="invia"></p>
        </form>
    <?php } ?>
</fieldset>
</div>
<?php
$layout->endBody();
echo $layout->render('theme/'.$theme.'/template.php');
?>

Le chiavi le ho creato adesso .. per caso devo aspettare le chiavi che si attivano?
Grazie mille e buon sabato.
 

luigi777

Utente Attivo
14 Feb 2008
1.080
1
38
39
Massa, Italy
risolto.. era l'engine template che non andava bene e ho dovuto cambiare metodo..
vi posto il codice anche se non avete altre parti del codice:

PHP:
<?php
/* http://www.onlinecode.org/google-invisible-recaptcha-using-php/ */
include("inc.php");
include("include/inc_browser.php");
include("include/inc_ipinfo.io.php");
$title ="Contatti";
include("theme/".$theme."/header.php");
?>
<div class="container">
  <div class="row">
    <div class="col-md-12">
      <?php
      echo "<div id=\"f\">\n";
      echo "<div id=\"pages\">\n";
      ?>

      <h1 class="title_page">Contatti</h1>
      <div id="contact">
        <fieldset>
          <?php
          if($_SERVER["REQUEST_METHOD"] === "POST")
          {
            $nome = $_POST["nome"];
            $cognome = $_POST["cognome"];
            $oggetto = $_POST["oggetto"];
            $messaggio =$_POST["messaggio"];
            $email = $_POST["email"];

            if(empty($nome))
            {
              $error = "Non hai inserito il nome";
            }
            elseif(empty($cognome))
            {
              $error = "Non hai inserito il cognome";
            }
            elseif(empty($oggetto))
            {
              $error = "Non hai inserito l'oggetto";
            }
            elseif(empty($email))
            {
              $error = "Inserire il l'email";
            }
            elseif(!valid_email($email))
            {
              $error = "Inserire la tua email valida";
            }

            elseif(empty($messaggio))
            {
              $error = "Non hai inserito il messaggio";
            }
            else

            {
              //verify captcha code process
              // add your secret key
              $google_recaptcha_secret = $google_secretkey;

              // pass secret key in google recaptcha api url
              $api_response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$google_recaptcha_secret."&response=".$_POST['g-recaptcha-response']);

              // json decode for data
              $api_response = json_decode($api_response, true);

              if($api_response["success"] === true)
              {

                require("classs/class.phpmailer.php");
                require("classs/class.smtp.php");

                $mail = new PHPMailer();

                $mail->IsSMTP(); // abilitiamo l'SMTP
                $mail->SMTPDebug = 0;  // debug: 1 = solo messaggi, 2 = errori e messaggi
                $mail->SMTPAuth = true;  // abilitiamo l'autenticazione
                $mail->SMTPSecure = 'ssl'; // abilitiamo il protocollo ssl richiesto per Gmail
                $mail->Host = $admin_email_host; // ecco il server smtp di google
                $mail->Port = $admin_email_port; // la porta che dobbiamo utilizzare



                // Inseriamo i dati della casella che utilizzeremo per spedire

                $mail->Username = $admin_email_username;

                $mail->Password = $admin_email_password;


                $mail->From = $_POST["email"];

                $mail->FromName = $_POST["nome"]." ".$_POST["cognome"];

                // Qui inseriamo l'indirizzo a cui recapitare le email spedite tramite il form

                $mail->AddReplyTo($_POST["email"], $_POST["nome"]."  ".$_POST["cognome"]);


                $mail->AddAddress($admin_email);

                $mail->IsHTML(true);

                $messaggio = "Nome:&nbsp;&nbsp;". $_POST["nome"]."<br />";
                $messaggio .= "Cognome:&nbsp;&nbsp;". $_POST["cognome"]."<br />";
                $messaggio .= "Indirizzo Ip:&nbsp;&nbsp;". $_SERVER["REMOTE_ADDR"]."<br />";
                $browser = getBrowser($_SERVER['HTTP_USER_AGENT']);
                $ip = $_SERVER["REMOTE_ADDR"];
                $loc = _ipinfo($ip);
                $messaggio .= "Location: ".$loc. "<br />";
                $messaggio .= "Browser:&nbsp;&nbsp;". $browser."&nbsp;&nbsp;<br />";
                $messaggio .= "Messaggio: <br />". nl2br(replace_text($_POST["messaggio"]))."<br />";
                $messaggio .= "=====================================================================";

                $mail->Body= $messaggio;

                $oggetto = "Richiesta da ".$www_email." : ".$_POST["oggetto"]."";

                $mail->Subject=$oggetto;


                if($mail->Send()){

                  $msg = "ok, attendere prego..al ritorno della home page. ";

                  redirect("index.php",4);

                }else{

                  $error = "Errore invio mail";

                }

              }
              else
              {
                // not success result
                $error = "You are a robot";
              }
            }
          }
          $nome = (isset($_POST["nome"])) ? trim(($_POST["nome"])): '';
          $cognome = (isset($_POST["cognome"])) ? trim(($_POST["cognome"])): '';
          $oggetto = (isset($_POST["oggetto"])) ? trim(($_POST["oggetto"])): '';
          $messaggio = (isset($_POST["messaggio"])) ? trim(($_POST["messaggio"])): '';
          $email = (isset($_POST["email"])) ? trim(($_POST["email"])): '';
          ?>
          <script src='https://www.google.com/recaptcha/api.js'></script>
          <?php
          if(isset($error)){ echo '<p class="info_error">'.$error.'</p>';}
          if(isset($msg)){ echo $msg;} else {
            ?>
            <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" id="reCaptchaForm">
              <p>Nome</p>
              <p><input type="text" name="nome"  class="form-control" value="<?php if(isset($_POST['nome'])){echo htmlspecialchars($_POST['nome']);}else { echo htmlspecialchars($nome); }?>" /></p>
              <p>Cognome</p>
              <p><input type="text" name="cognome" class="form-control"  value="<?php if(isset($_POST['cognome'])){echo htmlspecialchars($_POST['cognome']);}else { echo htmlspecialchars($cognome); }?>"  /></p>
              <p>Oggetto</p>
              <p><select name="oggetto" class="form-control">
                <option value="Informazioni"   <?php if ($oggetto == "Informazioni") echo ' selected' ?>>Informazioni</option>
                <option value="Richiesta di contatto"    <?php if ($oggetto == "Richiesta di contatto") echo ' selected' ?>>Richiesta di contatto</option>
                <option value="Richiesta Curriculum Vitae"    <?php if ($oggetto == "Richiesta Curriculum Vitae") echo ' selected' ?>>Richiesta Curriculum Vitae</option>
                <option value="Altro"    <?php if ($oggetto == "Altro") echo ' selected' ?>>Altro</option>
              </select>
            </p>
            <p>Email</p>
            <p><input type="text" name="email" class="form-control" size="40" value="<?php if(isset($_POST['email'])){echo htmlspecialchars($_POST['email']);}else { echo htmlspecialchars($email); }?>" /></p>
            <p>Messaggio</p>
            <p><textarea rows="10" cols="40"  class="form-control"name="messaggio"><?php if(isset($_POST['messaggio'])){echo $_POST['messaggio'];}else { echo $messaggio; }?></textarea></p>
            <div class="g-recaptcha" data-sitekey="<?php echo $google_sitekey; ?>"></div>
            <input type="submit" value="Invia contatto" class="btn btn-primary submit" name="submit" />
          </form>
          <?php } ?>
        </fieldset>
      </div>
      <?php
      echo "</div>\n";
      echo "</div>\n";
      ?>
    </div>
  </div>
</div>
<?php
include("theme/".$theme."/footer.php");
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
G Google recaptcha in verify.php - dove inserire il codice PHP 1
neo996sps Inserire grafico google analytics in pagina PHP Google Analytics 0
A inserire variabile php colore in div html PHP 2
D [Javascript] inserire uno script in un file php Javascript 6
M [PHP] Come inserire codice html in un ciclo while PHP 2
P [PHP] Inserire stringhe in input(text),memorizzarle e stamparle in file successivo PHP 0
Shyson [PHP] Inserire testo nel codice PHP 2
Alex_70 Inserire photo in php PHP 0
spider81man [PHP] Inserire file .pdf in db PHP 6
A [PHP] Ciclare array multidimensionale e inserire valori in DB PHP 2
M [PHP] Inserire array nel db PHP 6
G [PHP] inserire risultato di una query in una tabella PHP 3
M [wordpress-galleria immagini]Inserire classe php in html PHP 0
C Inserire dati tabella leggendo parte di altra tabella con php PHP 13
crealatualista [PHP] Inserire nomi nel database PHP 1
T4MAR4 [PHP] Inserire piu campi di ricerca PHP 2
D Come inserire opzioni menù prelevandole dal database con PHP ? PHP 12
M PHP/SQL Inserire più valori in una colonna di tipo integer - Checkbox - PHP 3
G [Javascript] jQuery PHP MySql - inserire variabile nel DataBase Javascript 8
giancadeejay inserire condizione php PHP 6
N [PHP] inserire campi tabella in file word PHP 0
9 inserire contenuto in un file pdf aperto sul browser tramite script php PHP 0
E [PHP] inserire HTML in una stringa PHP 16
A [PHP] inserire paginazione su script php/mysql PHP 6
S Come inserire file in database Mysql senza scrivere codice PHP? PHP 0
L Inserire codice php dentro al javascript PHP 4
L [PHP/HTML] Inserire metodo di pagamento PHP 4
M inserire articolo nel blog php PHP 7
D inserire foto in database php PHP 2
D Inserire script php in un sito PHP 1
T Inserire automaticamente Categorie in hikashop da php mysql PHP 0
T [PHP] inserire un file pdf da poter far scaricare... PHP 22
M inserire codice php in articolo joomla Joomla 2
A PHP calendario, come inserire i giorni precedenti? PHP 1
D php e maschera per inserire dati in mysql PHP 4
A Inserire codice html gooole maps in una variabile php PHP 1
P [PHP] Inserire email in un database PHP 2
A inserire nel codice php una stringa xml PHP 0
A inserire messaggio php al centro pagina PHP 4
N come inserire un supporto php per il web ? HTML e CSS 1
Matt89 [php gd library] inserire un'immagine in un canvas PHP 3
M Aiuto come inserire dati tramite php? PHP 1
L Inserire uno file TXT....in PHP PHP 1
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11

Discussioni simili