Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

clase captcha

Estas en el tema de clase captcha en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, estoy queriendo usar una clase para armar captcha en mi sistema, la libreria que uso es http://code.google.com/p/cool-php-captcha/ en su pagina dice que hay que ...
  #1 (permalink)  
Antiguo 15/12/2009, 17:41
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
clase captcha

Buenas,
estoy queriendo usar una clase para armar captcha en mi sistema, la libreria que uso es http://code.google.com/p/cool-php-captcha/
en su pagina dice que hay que hacer esto:
Código PHP:
Ver original
  1. $captcha = new SimpleCaptcha();
  2. // Change configuration...
  3. $captcha->wordsFile = null;           // Disable dictionary words
  4. $captcha->wordsFile = 'words/es.txt'; // Enable spanish words
  5. $captcha->session_var = 'secretword'; // Change session variable
  6. $captcha->CreateImage();

bien yo lo estoy queriendo implementar desde mi clase abstracta de la cual extienden todos los controladores de esta forma:
Código PHP:
Ver original
  1. abstract class Controller {
  2.    
  3.     //protected $Smarty;
  4.     protected $Email;
  5.     protected $Paginador;
  6.     protected $Session;
  7.     protected $Utilidades;
  8.     protected $Imagen;
  9.     protected $Upload;
  10.     protected $Captcha;
  11.     protected $Vistas;
  12.    
  13.  
  14.     /**
  15.      * Constructor
  16.      *
  17.      * @access public
  18.      * @version 0.1
  19.      *
  20.      */
  21.     public function __construct()
  22.     {  
  23.        
  24.        
  25.         //creo una instancia de la configuración              
  26.         $config = Config::singleton();
  27.        
  28.         //creo la instancia para las sesiones.
  29.         $this->Session  = new Session();
  30.         $this->Session->Session();
  31.                
  32.         //creo las instancias para el email
  33.         $this->Email = new PHPMailer();
  34.         $this->Email->IsSMTP();
  35.         $this->Email->SMTPAuth   = true;                  // enable SMTP authentication
  36.         $this->Email->Host       = $config->get('host');
  37.         $this->Email->Username   = $config->get('usuario');
  38.         $this->Email->Password   = $config->get('pass');
  39.         $this->Email->Port       = $config->get('puerto');
  40.  
  41.         $this->Email->From       = $config->get('email');
  42.         $this->Email->FromName   = $config->get('nombre');
  43.                    
  44.         //creo las instancias para las utilidades varias
  45.         $this->Utilidades   = new Utilidades();                
  46.        
  47.         //creo la instancia para el captcha
  48.         $this->Captcha    = new SimpleCaptcha();
  49.         $this->Captcha->resourcesPath   = $config->get('librerias');
  50.         $this->Captcha->wordsFile       = $config->get('librerias').'words/es.php';
  51.         $this->Captcha->session_var     ='secretword';
  52.         $this->Captcha->imageFormat     = 'gif';
  53.         $this->Captcha->sscale          = 3;
  54.         $this->Captcha->blur            = true;
  55.        
  56.        
  57.        
  58.        
  59.        
  60.        
  61.         //creo la instancia para las imagenes
  62.         $this->Imagen   = new SimpleImage();
  63.        
  64.         //creo la instancia para el upload
  65.         $this->Upload   = new file_upload();
  66.        
  67.         //creo la instancia de la vista
  68.         $this->Vistas   = new Vistas();
  69.              
  70.         //Incluimos los modelos        
  71.         $this->Utilidades->recursiveInclude($config->get('modelsFolder'));
  72.  
  73.     }
  74. }

y desde mi controlador hago esto:
Código PHP:
Ver original
  1. class indexController extends Controller {
  2.     public function index(){
  3.         $hola.="Hola mundo<br/>";
  4.         $pass=$this->Utilidades->crearPassword(5,'a');
  5.         $hola.="tu password es $pass<br/>";
  6.        
  7.         echo $hola;
  8.         $this->Captcha->CreateImage();
  9.     }
  10.    
  11.     public function chau(){
  12.         echo "chau!!!!";
  13.     }
  14. }

y lo que me sale es:
y en el titulo de la pagina sale
Cita:
(imgen JPEG)
pero no se ve nada, en que le estoy "pifiando" salu2
  #2 (permalink)  
Antiguo 16/12/2009, 15:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: clase captcha

Me imagino el método CreateCaptcha crea la imagen por lo que si envias algo de texto antes, corrompes la imagen (en este caso tu echo $hola lo hace).

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 00:05.