Hola nuevamente...
El asunto es que tengo un formulario en
contacto.php al cual le incorpore el
Captcha que me muestra la imagen con su código sin problemas.
Al enviar el formulario lo recepciona el archivo
registro.php, es decir, sería el archivo que procesa el formulario. Este
registro.php verifica si algunos campos (obligatorios) están llenos o no. Si todo está bien, incorpora los datos aportados en una BD y envía un correo al usuario para que active su cuenta.
Hasta ahí todo bien, el inconveniente que tengo y no puedo darme cuenta como es (después de mucho intentar), es cómo meter en el archivo
registro.php la comprobación del código captcha ingresado... no puedo hacerlo funcionar!!!
Comprobación del Captcha Código PHP:
if(Captcha::verificaCaptcha($_POST['captcha'])) {
echo "Captcha correcto";
} else {
echo "Captcha incorrecto";
}
Posteo el archivo
registro.php que procesa el formulario.
Por favor, ayudenmé!!!
Gracias.
registro.php Código PHP:
<?php
session_start();
//datos para establecer la conexion con la base de mysql.
$conexion=mysql_connect('localhost','usuario','contraseña')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('BD')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
//añadimos la funcion que se encargara de generar un numero aleatorio
function genera_random($longitud){
$exp_reg="[^A-Z0-9]";
return substr(eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())),
0, $longitud);
}
function formRegistro(){
?>
<?php
}
// verificamos si se han enviado ya las variables necesarias, las que tenemos en nuestro form cambialo, como sea el tuyo.
if (isset($_POST["apellido"])) {
$apellido = $_POST["apellido"];
$nombre = $_POST["nombre"];
$email = $_POST["email"];
echo "<div style='text-align:center;font-weight:bold;font-size:200%;color:#005784;margin-top:200px;'>";
echo "<span>$apellido </span>";
echo $nombre;
echo "</div>";
// Hay campos en blanco
if($apellido==NULL|$nombre==NULL|$nacimiento==NULL|$residencia==NULL|$provincia==NULL|$email==NULL|$investiga==NULL) {
echo "<div style='font-size:250%;text-align:center;font-weight:bold;color:#B40404;'>Algún campo obligatorio está vacio!</div>";
formRegistro();
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkemail = mysql_query("SELECT email FROM gerrusarg WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if ($email_exist>0) {
echo "<div style='font-size:130%;text-align:center;font-weight:bold;color:#B40404;'>La cuenta de correo <span style='color:blue;'>$email</span> ya está en uso.</div>";
formRegistro();
}else{
//agregamos la variable $activate que es un numero aleatorio de
//20 digitos crado con la funcion genera_random de mas arriba
$activate = genera_random(20);
//aqui es donde insertamos los nuevos valosres en la BD activate y el valor 1 que es desactivado
$query = 'INSERT INTO gerrusarg (apellido, nombre, nacimiento, residencia, provincia, email, web, investiga, argentina, rusia, activate, estado)
VALUES (\''.$apellido.'\',\''.$nombre.'\',\''.$nacimiento.'\',\''.$residencia.'\',\''.$provincia.'\',\''.$email.'\',\''.$web.'\',\''.$investiga.'\',\''.$argentina.'\',\''.$rusia.'\',\''.$activate.'\', 1)';
mysql_query($query) or die(mysql_error());
echo "<div style=text-align:center;font-size:130%;>";
echo "<span style='font-weight:bold;font-style:italic;color:#B40404;'>Parece que todo ha ido bien!!!</span><br />";
echo "Ha sido registrado con la cuenta de correo: <span style='font-weight:bold;color:blue;'>$email</span> de manera satisfactoria.<br />";
echo "Le enviaremos ahora un email para activar su cuenta al correo que nos facilito.<br />";
echo "Luego de esa activación, integrará la lista Ger-Rus-Arg con los datos aportados.<br />";
echo "<span style='font-weight:bold;font-style:italic;color:#B40404;'>Muchas gracias por participar!!!</span>";
echo "</div>";
$query = "SELECT * FROM gerrusarg WHERE apellido='$apellido'";
$result = mysql_query($query , $conexion) or die ( mysql_error() );
$row = mysql_fetch_array($result);
$path="http://miweb/formulario/registros/"; //creamos nuestra direccion, con las carpetas que sean si hay
//armamos nuestro link para enviar por mail en la variable $activateLink
$activateLink=$path."activar_cuenta.php?id=".$row['id']."&activateKey=".$activate."";
// Datos del email
$nombre_origen = "miweb";
$email_origen = "[email protected]";
$email_copia = "[email protected]";
$email_ocultos = "[email protected]";
$email_destino = "".$row['email']."";
$asunto = "".$row['apellido']." Active su cuenta";
$mensaje = '<table width="629" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="623" align="left"></td>
</tr>
<tr>
<td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong> Estos son sus datos de registro, '.$row['apellido'].'</strong></div></td>
</tr>
<tr>
<td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '.$row['apellido'].'</strong><br><br><br>
<strong>EMAIL : </strong>'.$row['email'].'</strong><br><br><br>
<strong>SU LINK DE ACTIVACION:<br><a href="'.$activateLink.'">'.$activateLink.' </strong></a><br><br><br>
<strong>POR FAVOR HAGA CLICK EN LINK DE ARRIBA PARA ACTIVAR SU CUENTA E INGRESAR AL LISTADO</strong><br><br><br>
<strong>SI EL LINK NO FUNCIONA AL PRIMER INTENTO, HAGALO UNA SEGUNDA VEZ, EL SERVIDOR A VECES TARDA EN PROCESAR LA PRIMERA ORDEN</strong><br><br><br>
<strong>Gracias por participar.</strong><br><br><br>
</div>
</td>
</tr>
</table>';
$formato = "html";
//*****************************************************************//
$headers = "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";
//*****************************************************************//
if($formato == "html")
{ $headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n"; }
else {
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";
}
if (@mail($email_destino, $asunto, $mensaje, $headers))
{ }
}
}
} else {
formRegistro();
}
?>