Yii Framework Forum: No me funciona el Captcha en la versión 1.1 - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

No me funciona el Captcha en la versión 1.1 Rate Topic: -----

#1 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 14 January 2010 - 02:01 PM

Hola, lo que sucede es que actualicé la versión del framework y me puse a probar para ver que todo continuara funcionando, pero tengo un formulario de login donde pido el código de la imagen de seguridad y este me dejó de funcionar, es decir, ahora aunque le ingrese el código correcto aun así continua diciendo que el código de verificación es incorrecto.

¿Alguien sabe que puedo hacer en este caso?

Muchas gracias!
0

#2 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 495
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 14 January 2010 - 09:18 PM

Envia un poco los códigos para ver que pasa.

Yo hasta ahora no tuve problemas con esto.

Saludos,
1

#3 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 15 January 2010 - 08:13 AM

Mira que ya solucioné el problema pero para mi este problema nunca debió suceder, es decir, me da la impresión de que es un error de Yii, así que lo voy a comentar aquí por si estoy equivocado alguien me explique...

Yo hago la asignación de los campos en el controlador con:
$model->attributes=$_POST['UsersLoginForm'];


Y en el modelo tengo las siguientes reglas de validación:
		return array(
			// username and password are required
			array('username, password', 'required'),
			// verifyCode needs to be entered correctly
			array('verifyCode', 'captcha'),
			// password needs to be authenticated
			array('password', 'authenticate'),
		);


...Pero siempre me decía que el 'verifyCode' estaba vació, entonces yo imprimí en pantalla el atributo '$model->attributes' para ver que pasaba y efectivamente el 'verifyCode' estaba vació... entonces investigando encontré que en '$model->attributes' solo se almacenan los atributos seguros (safe attributes) y que para un atributo ser seguro debe aparecer en las reglas de validación... pero entonces ahí venia mi duda porque segun lo que yo veia yo el atributo 'verifyCode' ya aparecía en las reglas de validación cuando yo coloqué lo siguiente en las reglas:
...
array('verifyCode', 'captcha'),
...


Entonces... ¿Por que me sale que no es un atributo seguro?

Luego se me ocurrió pensar que tal vez debía aparecer otro tipo de validación en las reglas para poder que lo considerara seguro y entonces agregué la siguiente regla:
array('verifyCode', 'length', 'min'=>6, 'max'=>7),


Y cuando probé de nuevo ya funcionaba mi formulario.

Pero para mi.. con solo la primera regla debió ser considerado como seguro.... ¿estoy loco?

Un saludo!
0

#4 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 15 January 2010 - 08:48 AM

View Postjuanmjimenezs, on 15 January 2010 - 08:13 AM, said:

Mira que ya solucioné el problema pero para mi este problema nunca debió suceder, es decir, me da la impresión de que es un error de Yii, así que lo voy a comentar aquí por si estoy equivocado alguien me explique...

Yo hago la asignación de los campos en el controlador con:
$model->attributes=$_POST['UsersLoginForm'];


Y en el modelo tengo las siguientes reglas de validación:
		return array(
			// username and password are required
			array('username, password', 'required'),
			// verifyCode needs to be entered correctly
			array('verifyCode', 'captcha'),
			// password needs to be authenticated
			array('password', 'authenticate'),
		);


...Pero siempre me decía que el 'verifyCode' estaba vació, entonces yo imprimí en pantalla el atributo '$model->attributes' para ver que pasaba y efectivamente el 'verifyCode' estaba vació... entonces investigando encontré que en '$model->attributes' solo se almacenan los atributos seguros (safe attributes) y que para un atributo ser seguro debe aparecer en las reglas de validación... pero entonces ahí venia mi duda porque segun lo que yo veia yo el atributo 'verifyCode' ya aparecía en las reglas de validación cuando yo coloqué lo siguiente en las reglas:
...
array('verifyCode', 'captcha'),
...


Entonces... ¿Por que me sale que no es un atributo seguro?

Luego se me ocurrió pensar que tal vez debía aparecer otro tipo de validación en las reglas para poder que lo considerara seguro y entonces agregué la siguiente regla:
array('verifyCode', 'length', 'min'=>6, 'max'=>7),


Y cuando probé de nuevo ya funcionaba mi formulario.

Pero para mi.. con solo la primera regla debió ser considerado como seguro.... ¿estoy loco?

Un saludo!


tambien puedes poner

   array('verifyCode', 'safe'),


pon tu caso como un bug
KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
1

#5 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 15 January 2010 - 09:00 AM

Muchas gracias por tu respuesta Horacio. ;)

..En cuanto a lo de publicarlo como un bug... la verdad no se como escribir todo eso en un ingles que me entiendan :unsure:

Alguien que sepa ingles me puede ayudar con eso?


Y aprovecho para preguntar una duda con respecto a este mismo tema, es que me gustaría que alguien me confirmara si estoy en lo correcto cuando entendí que para hacer una asignación masiva por medio de:
$model->attributes

Solo se puede hacer para los atributos seguros y que para un atributo ser seguro debe aparecer en las reglas del modelo.
¿Estoy en lo correcto?
0

#6 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 15 January 2010 - 09:15 AM

captcha is not safe when declared in rules();

if I declare
array('verifyCode', 'captcha'),


the verifyCode do not pass the validation because is not safe. But if I add other rule
array('verifyCode', 'captcha'),
array('verifyCode', 'length', 'min'=>6, 'max'=>7), // or array('verifyCode', 'safe'),

Then verifyCode becomes safe!

Is not enough whit the fist one?
Don't say what you think, think what you say
The problem is communication! Excess of communication!
0

#7 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 15 January 2010 - 01:19 PM

View PostPoL, on 15 January 2010 - 09:15 AM, said:

captcha is not safe when declared in rules();

if I declare
array('verifyCode', 'captcha'),


the verifyCode do not pass the validation because is not safe. But if I add other rule
array('verifyCode', 'captcha'),
array('verifyCode', 'length', 'min'=>6, 'max'=>7), // or array('verifyCode', 'safe'),

Then verifyCode becomes safe!

Is not enough whit the fist one?


Muchas gracias Pol!
0

#8 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 15 January 2010 - 01:35 PM

Ya agregué el tick del bug en: http://code.google.c...s/detail?id=834
0

#9 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 15 January 2010 - 04:02 PM

View Postjuanmjimenezs, on 15 January 2010 - 01:35 PM, said:

Ya agregué el tick del bug en: http://code.google.c...s/detail?id=834


Qiang lo puso en estado "Invalid"
KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

#10 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 18 January 2010 - 06:29 AM

Vos podrias reproducir el mismo bug en una instalacion nueva?
Quiero decir, a lo mejor es algo que sucede con alguna configuracion que vos tenes, porque solo con una regla deberia funcionar.
Don't say what you think, think what you say
The problem is communication! Excess of communication!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users