Foros del Web » Programando para Internet » PHP » Zend »

como obtener codigo de Zend captcha

Estas en el tema de como obtener codigo de Zend captcha en el foro de Zend en Foros del Web. Hola a todos: Les cuento, tengo un form diseñado fuera de frameworks, tengo que agregarle captcha, y me dijeron que debo usar Zend pero solo ...
  #1 (permalink)  
Antiguo 03/06/2009, 13:53
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
como obtener codigo de Zend captcha

Hola a todos:
Les cuento, tengo un form diseñado fuera de frameworks, tengo que agregarle captcha, y me dijeron que debo usar Zend pero solo en la parte de Captcha.
Soy muy novato en frameworks pero pude testear y logré generar el codigo y mostrarlo en la imagen distorsionada!!
Todo un avance para mi.

Usando el metodo getWord() obtengo el codigo generado.
Ahora ¿como debería enviar, en forma segura, ese dato?
El código generado se compara con el input del usuario, recién en otro script que recibe los datos. No puedo trasladar el codigo dentro de un hidden porque se vería en el codigo fuente, pasarlo en una SESSION no me parece eficiente....
Que me aconsejan?

Sé que lo que estoy haciendo no es lo recomendable pero quieren que use esa función de Zend si o si.
Gracias por su respuesta!
  #2 (permalink)  
Antiguo 03/06/2009, 15:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como obtener codigo de Zend captcha

Pues de hecho lo mejor y lo ideal es que sea en una variable de sesión así no se puede modificar.

Saludos.
  #3 (permalink)  
Antiguo 03/06/2009, 15:21
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: como obtener codigo de Zend captcha

Ok, si tu lo dices, entonces no me quedan dudas.
Usaré session. Gracias GatorV!!
Dejo el codigo por si le sirve a algún novato como yo.
Código PHP:
ini_set('include_path',ini_get('include_path').';.\library\library');

require_once 
"Zend/Loader/Autoloader.php";
Zend_Loader_Autoloader::getInstance(); 

class 
usarCaptcha{
    private 
$codigoCaptcha;
    public function 
generateCaptcha($psFontPath$psImgPath){
        
$captcha = new Zend_Captcha_Image();
        
$captcha->setTimeout('300');
        
$captcha->setWordLen('6');
        
$captcha->setHeight('80');
        
$captcha->setFont($psFontPath);
        
$captcha->setImgUrl($psImgPath);
        
$captcha->generate();    //genera session y crea imagen
        
$view = new Zend_View();
        echo 
$captcha->render($view);
        echo 
'<br>La palabra es:'.$captcha->getWord().'<br>';
        
$this->codigoCaptcha $captcha->getWord();
            
        return 
$captcha->getId();   //devuelve el ID        
    
}
    public function 
ObtenerCodigoCaptcha(){
            return 
$this->codigoCaptcha;
    }
}
$var = new usarCaptcha();
$pathFuente='arial.ttf';
$pathCarpetaImage='./images/captcha';
echo 
$var->generateCaptcha($pathFuente,$pathCarpetaImage);
$_SESSION['codigoCaptcha'] = $var->ObtenerCodigoCaptcha(); 
  #4 (permalink)  
Antiguo 03/06/2009, 15:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como obtener codigo de Zend captcha

Recuerda que PHP es un lenguaje "stateless", por lo que la unica forma de transportar datos es:
- Por POST
- Por GET
- Por Cookie
- Por Sesión
- Un Archivo de Texto
- Una BDD

De todas esas formas la más eficiente en cuanto a recursos es la sesión.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:35.