PHP - recaptcha V3 no ejecuta linea para envío

 
Vista:
Imágen de perfil de Gina
Val: 54
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

recaptcha V3 no ejecuta linea para envío

Publicado por Gina (27 intervenciones) el 06/12/2019 20:03:34
Hola
Todos los programas ya están probados y funcionando con recaptcha V2 pero me han pedido pasar a la V3

En este proyecto uso recaptcha V3 y funciona muy bien detectando si es humano o robot.
El problema es que no ejecuta el programa que hace el envío de correo.

No sé si por el cambio de versión algunas instrucciones ya no sean compatibles o las clases que uso de smtp (que en V2 funciona sin problemas).

Programa de formulario (sección):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<form action="recaptcha-control.php" method="post" class="" onsubmit="MM_validateForm('nombre','','R','email','','telefono','','R','mensaje','','R');return document.MM_returnValue">
    <div class="col-lg-6">
        <label for="nombre">Nombre: </label><br>
        <input class="" name="nombre" id="nombre" type="text" required placeholder="Nombre..."><br>
    </div>
    <div class="col-lg-6">
        <label for="email">Email: </label><br>
        <input class="" name="email" id="email" type="email" required placeholder="Email..."><br>
    </div>
    <div class="col-lg-6">
        <label for="cargo">Cargo: </label><br>
        <input class="" name="cargo" id="cargo" type="text" placeholder="Cargo..."><br>
    </div>
    <div class="col-lg-6">
        <label for="telefono">Telefono: </label><br>
        <input class="" name="telefono" id="telefono" type="text" required placeholder="Telefono..."><br>
    </div>
    <div class="col-lg-6">
        <label for="empresa">Empresa: </label><br>
        <input class="" name="empresa" id="empresa" type="text" placeholder="Empresa..."><br>
    </div>
    <div class="col-lg-6">
        <label for="gempresa">Giro de tu Empresa: </label><br>
        <input class="" name="gempresa" id="gempresa" type="text" placeholder="Giro..."><br>
    </div>
    <div class="col-lg-6">
        <label for="mensaje">Mensaje: </label><br>
        <textarea  class="" name="mensaje" id="mensaje" required placeholder="Mensaje...."></textarea><br>
    </div>
    <div class="col-lg-6">
        <label for="archivo">Adjuntar Archivo: </label><br>
        <input type="file" name="archivo" id="archivo"><br>
    </div>
    <div class="col-lg-6">
        <label for="aviso">Aviso de privacidad: </label><br>
        <textarea  class="" id="aviso" cols="22" rows="5">He leído y me doy por enterado del presente aviso de privacidad, de igual forma, estoy de acuerdo.</textarea><br>
    </div>
    <div class="col-lg-4">
    </div>
    <div class="col-lg-2">
    <input type="hidden" name="recaptcha_response" id="recaptchaResponse">
        <center>
            <button class="btn btn-primary">Enviar</button>
        </center>
    </div>
    <div class="col-lg-6">
    </div>
</form>

Programa de recaptcha-control.php y que SI funciona identificar si es o no Robot pero ya no se ejecuta el programa correo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if($_SERVER['REQUEST_METHOD'] === 'POST'){
	// Realizamos la petición de control:
	$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
	$recaptcha_secret = '6Lds5sUUAAAAALObrtx-7HWY5YmVcAR5Gv3M_eTT';
	$recaptcha_response = $_POST['recaptcha_response'];
	$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
	$recaptcha = json_decode($recaptcha);
	// Miramos si se considera humano o robot:
	if($recaptcha->score >= 0.6){
		include ("correo.php");
	}else{
    	echo 'Probablemente no eres un humano.';
		echo "error";
		}
}
?>

Programa de correos: que es en sí el que NO se ejecuta:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?
ob_start("ob_gzhandler");
include ("seguridad.php");
 
session_start();
 
mysql_connect("l00000","00000000","000000");
mysql_select_db("000000000");
mysql_query ("SET NAMES 'utf8'");
 
 
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];else $carro=false;
 
$nombre 	=$_POST['nombre'];
	$email		=$_POST['email'];
	$aviso		=$_POST['aviso'];
	if($nombre==""){
		if($email==""){
			if($aviso==""){
			    header ("Location: contacto.php");
			}
		}
	}
 
//
$regresa ="<a href=index>inicio</a> . ";
$regresa.="Correo";
 
 
include("mailer/contacto.php");
echo "ghjj";
$nombre 	=$_POST['nombre'];
$email		=$_POST['email'];
$mensaje	=$_POST['mensaje'];
$aviso		=$_POST['aviso'];
if($nombre!=""){
    if($email!=""){
        if($mensaje!=""){
            if($aviso!=""){echo sendmail();}
        }
    }
}
?>

Agradeceré su apoyo.
Bonita tarde.
Gina M.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de José Manuel
Val: 172
Ha disminuido su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

recaptcha V3 no ejecuta linea para envío

Publicado por José Manuel (62 intervenciones) el 09/12/2019 17:03:43
Hola Gina:

Esta URL sintetiza las diferencias:
https://www.smythsys.es/11400/diferencias-entre-recaptcha-v2-y-recaptcha-v3/

Cuándo usar uno u otro:
https://developers.google.com/recaptcha/docs/versions

En estas otras hay ejemplos de cómo utilizarlo:
https://codeforgeek.com/google-recaptcha-v3-tutorial/
https://www.easyappcode.com/como-utilizar-el-nuevo-recaptcha-v3-de-google-en-nuestro-proyecto-web
https://code.tutsplus.com/es/tutorials/example-of-how-to-add-google-recaptcha-v3-to-a-php-form--cms-33752

Como verás, básicamente, la versión 3 evita la interactividad con el usuario. Un saludo,
https://obelearningservices.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar