Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/06/2007, 07:41
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Se pasan el Captcha por los... (spammers)

Ya encontre el problema y es simple, el problema viene si abres directamente la pagina de procesa.php sin haber visitado la pagina de contacto, en esta ocasion $_SESSION['mipass'] esta en blanco porque se acaba de iniciar la session, y si envias el $_POST en blanco tambien coincide y tienes acceso a enviar todas las demas variables del formulario.

Puedes probar este codigo en procesa.php y asi evitar que se salten el captcha.

Código PHP:
<?php
// inicio sesiones
session_start();
$paginaDeContacto 'http://dominio.com/paginacontacto.php';
if( empty( 
$_SESSION['mipass'] ) ) {
      
header"Location: $paginaDeContacto" );
      exit;
}

// Si lo deseas tambien podrias checar de donde viene el usuario...
// Aunque no lo recomiendo pues muchos Firewalls como el Panda luego
// bloquean esta informacion
if( $_SERVER['HTTP_REFERRER' != $paginaDeContacto ) {
      
header"Location: $paginaDeContacto" );
      exit;
}

if (
$_SESSION['mipass'] == $_POST['pass']){
echo 
"código/contraseña aceptado .. coincide ...";
} else {
echo 
"Pues el código/contraseña NO coincide ...";
}

// Y nos deshacemos de la sesión ...
unset($_SESSION);
session_destroy();
?>