Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/02/2011, 11:41
cosobo
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 66
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: agregar recaptcha a formulario comentarios

Yo lo hago de esta forma:
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     //include('funciones.php'); // la funcion cndCrea
  4.     /**/
  5.         function cdnCrea($tamanio = 10, $munisculas=1, $numeros=1, $maiusculas=0, $especialesValido=0, $especialesInvalido=0, $especialesFuertes=0){
  6.     $caracter = "";
  7.     if ($munisculas==1) $caracter .= "abcdefghijklmnopqrstuvwxyz";
  8.     if ($numeros==1) $caracter .= "0123456789";
  9.     if ($maiusculas==1) $caracter .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  10.     if ($especialesValido==1) $caracter .= "_-";
  11.     if ($especialesInvalido==1) $caracter .= "€@#$%()+={}][*Ç";
  12.     if ($especialesFuertes==1) $caracter .= "~^|¬:;";
  13.     $grande = $tamanio;
  14.     $clave = '';
  15.     for ($t=0; $t<$grande; $t++){
  16.         $clave .= $caracter[(mt_rand(0,(strlen($caracter)-1)))];
  17.     }
  18.     return $clave;
  19. }
  20.        /**/
  21.     $_SESSION['ahctpac'] = cdnCrea(6);
  22.     $imagen = imagecreatefrompng("fondoCapcha.png"); // una imagen de fondo real
  23.     $texto = imagecolorallocate($imagen, 0, 0, 0);
  24.     imagestring($imagen, 10, 25, 7, $_SESSION['ahctpac'], $texto);
  25.    
  26.     header("Content-type: image/gif");
  27.     imagepng($imagen);
  28. ?>
lo guardas como capcha.php
--
y luego lo colocas tu etiqueta imagen en tu formulario
Código HTML:
Ver original
  1. <img id="cap" src="capcha.php" onclick="actucap();">
para actualizar el capcha con js:
Código Javascript:
Ver original
  1. function actucap(){
  2.   obj=document.getElementById("cap");
  3.   if (!obj) obj=window.document.all.cap;
  4.   if (obj){
  5.      obj.src="captcha.php?"+Math.random();
  6.   }
  7. }

CON eso creas una session " $_SESSION['ahctpac'] " que luego comparas con lo enviado por el formulario algo asi:

Código PHP:
Ver original
  1. if($_SESSION['ahctpac'] == $_POST['capcha']) {
  2.   echo 'son iguales';
  3. } else echo 'no son iguales';

Última edición por cosobo; 22/02/2011 a las 11:45 Razón: no termine de editar