Estoy haciendo por primera vez en sf 1.4 un formulario a mano, y me
encuentro con el siguiente error al validarlo. Pese a que los dem�s
campos cumplan con los requisitos de la validaci�n, este error siempre sale.
�Alguien sabe como solucionarlo?.
Os pego el c�digo.
acction.class.php
public function executeIndex(sfWebRequest $request)
{
$this->form= new Public_Users_ItemForm();
#Validaci�n.
if($request->isMethod('post')){
$this->form->bind($request->getParameter('login'));
if($this->form->isValid()){
$this->redirect('login/login?'.
http_build_query($this->form->getValues()));
}
}
}
indexSuccess.php
<?php use_stylesheets_for_form($form) ?>
<?php use_javascripts_for_form($form) ?>
</script>
<?php slot('title', ' Formulario de acceso.'); ?>
<div id="containerLogin">
<div class="header">
<h1>Formulario de acceso</h1>
</div>
<div id="content">
<?php echo form_tag('login/index') ?>
<div id="form">
<div id="fieldset">
<table style="width: 100%;">
<?php echo $form['_csrf_token']; ?>
<?php echo $form ?>
<tr>
<td colspan="2">
<div class="action">
<ul>
<li>
<button type="submit">
<span class="icon"></span>
Acceder
</button>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td>
<div class="action">
<?php echo link_to('Registrarse',
'constantes/registrarse') ?>
</div>
</td>
<td>
<div class="action_right">
<?php echo link_to('�Has olvidado la
contrase�a?', 'constantes/passwordNuevo') ?>
</div>
</td>
</tr>
</table>
</div>
</div>
</form>
</div>
</div>
Public_Users_Item.class.php
class Public_Users_ItemForm extends BasePublic_Users_ItemForm
{
public function configure()
{
$this->setWidgets(array(
'usuario'=> new sfWidgetFormInputText(array(),
array('maxlength'=>20)),
'passwd' => new sfWidgetFormInputPassword(array(),
array('maxlength'=>50))
));
$this->widgetSchema->setLabels(array(
'usuario'=> 'Usuario',
'passwd' => 'Contrase�a'
));
$this->setValidators(array(
'usuario' => new sfValidatorString(array(),
array('required'=>'Introduce un usuario.')),
'passwd' => new sfValidatorString(array(),
array('required'=>'Introduce la contrase�a.'))
));
}
}
--
Saludos cordiales.
Pablo.
Si lo reenv�as, ten la precauci�n de borrar los datos de procedencia que
encabezar�an tu reenv�o � empezando por mi direcci�n de correo
electr�nico - . Coloca siempre las direcciones de tus contactos en el
campo <CCO> para que viajen discretas, no en el campo <Para> ni en
el<CC>. De esa forma nadie que lo reciba tendr� constancia de las se�as
de los dem�s destinatarios a los que tambi�n se remite. Todo ello a fin
de evitar que nadie se aproveche de todas las direcciones que se van
acumulando al pasar de buz�n a buz�n para el lanzamiento de correo
basura y otras indeseadas lindezas. Aparte claro est� de garantizar la
privacidad.
Gracias.
Seg�n veo lo primero que me pones lo que hace es desactivar la protecci�n.
La segunda opci�n da el mismo error.
Creo que mi problema es que no se est� aplicando la validaci�n, pues lo
que trata de validar es que los campos tengan datos, y siempre da error
como si estuvieran vac�os.
El 11/10/10 22:50, Alain Sanchez Gutierrez escribi�:
> Hola, tienes dos soluciones para resolver ese problema:
> 1.- incluye en la clase del formulario Public_Users_ItemForm en el
> m�todo configure() lo siguiente:
> [code]
> parent::configure();
> $this->disableLocalCSRFProtection();
> [/code]
>
> 2.- incluye en el c�digo de la vista del formulario antes del boton
> submit, o sea en indexSuccess.php, seg�n el c�digo que presentas lo
> siguiente:
> $form->renderHiddenFields();
>
> _________________
> Atentamente...
> Ing. Alain S�nchez Guti�rrez
> emial: brazzi[arroba]brazzisoft.com
> cell: 005353339528 / +5353339528
> url: http://www.brazzisoft.com
> fb: http://www.facebook.com/mr.brazzi
>
--
Saludos cordiales.
Pablo.
Si lo reenv�as, ten la precauci�n de borrar los datos de procedencia que
encabezar�an tu reenv�o � empezando por mi direcci�n de correo
electr�nico - . Coloca siempre las direcciones de tus contactos en el
campo <CCO> para que viajen discretas, no en el campo <Para> ni en
el<CC>. De esa forma nadie que lo reciba tendr� constancia de las se�as
de los dem�s destinatarios a los que tambi�n se remite. Todo ello a fin
de evitar que nadie se aproveche de todas las direcciones que se van
acumulando al pasar de buz�n a buz�n para el lanzamiento de correo
basura y otras indeseadas lindezas. Aparte claro est� de garantizar la
privacidad.
Gracias.
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.
Es una herencia de cuando programa en sf 1.0
No se si est� depreciado.
El 12/10/10 14:20, Julian Lasso escribi�:
> pero tiene esto
> <?php echo form_tag('login/index') ?>
> y creo que eso lo reemplaza �no?
Ya me han comentado como desactivarlo, pero no como validarlo.
�Alguna idea?.
El 12/10/10 14:37, chus escribi�:
Si, pero es que creo que el problema es como validar eso.
Ya me han comentado como desactivarlo, pero no como validarlo.
¿Alguna idea?.
El 12/10/10 14:37, chus escribió:
si es verdad!!!! no me habia fijado....
no se... yo siempre utilizo el metodo que te he dicho y no me da
problemas...
es posible ke te de ese problema porke solo estas mostrando dos tokens
distintos.... primero cundo lo especificas en<?php echo
$form['_csrf_token']; ?> y despues cuando muestras todo el formularo
<?php echo $form; ?>, se supone ke si pones solo lo segundo, ya va
incluido el campo de token...
--
Saludos cordiales.
Pablo.
Si lo reenvías, ten la precaución de borrar los datos de procedencia que encabezarían tu reenvío – empezando por mi dirección de correo electrónico - . Coloca siempre las direcciones de tus contactos en el campo <CCO> para que viajen discretas, no en el campo <Para> ni en el<CC>. De esa forma nadie que lo reciba tendrá constancia de las señas de los demás destinatarios a los que también se remite. Todo ello a fin de evitar que nadie se aproveche de todas las direcciones que se van acumulando al pasar de buzón a buzón para el lanzamiento de correo basura y otras indeseadas lindezas. Aparte claro está de garantizar la privacidad.
Gracias.
Si, pero es que creo que el problema es como validar eso.
Ya me han comentado como desactivarlo, pero no como validarlo.
¿Alguna idea?.
El 12/10/10 14:37, chus escribió:
si es verdad!!!! no me habia fijado....
no se... yo siempre utilizo el metodo que te he dicho y no me da
problemas...
es posible ke te de ese problema porke solo estas mostrando dos tokens
distintos.... primero cundo lo especificas en<?php echo
$form['_csrf_token']; ?> y despues cuando muestras todo el formularo
<?php echo $form; ?>, se supone ke si pones solo lo segundo, ya va
incluido el campo de token...
--
Saludos cordiales.
Pablo.
Si lo reenvías, ten la precaución de borrar los datos de procedencia que encabezarían tu reenvío – empezando por mi dirección de correo electrónico - . Coloca siempre las direcciones de tus contactos en el campo <CCO> para que viajen discretas, no en el campo <Para> ni en el<CC>. De esa forma nadie que lo reciba tendrá constancia de las señas de los demás destinatarios a los que también se remite. Todo ello a fin de evitar que nadie se aproveche de todas las direcciones que se van acumulando al pasar de buzón a buzón para el lanzamiento de correo basura y otras indeseadas lindezas. Aparte claro está de garantizar la privacidad.
Gracias.
--
Muchas gracias.
El 12/10/10 15:19, Gustavo Adrian escribi�:
> El token CSRF lo valida automaticamente el formulario (a menos que
> desactives la proteccion CSRF del form). El problema que tienes puede
> ser, como indica chun, que al hacer "echo $form" ya estas imprimiendo el
> campo del token csrf. Por lo que veo estas imprimiendolo aparte tambien
> haciendo "<?php echo $form['_csrf_token']; ?>". Elimina esa linea y
> verifica si funciona. Si sigue sin funcionar, fijate que valores estas
> enviando via POST con Firebug o alguno similar y muestranos.
>
>
> Saludos.
>
--
Saludos cordiales.
Pablo.
Si lo reenv�as, ten la precauci�n de borrar los datos de procedencia que
encabezar�an tu reenv�o � empezando por mi direcci�n de correo
electr�nico - . Coloca siempre las direcciones de tus contactos en el
campo <CCO> para que viajen discretas, no en el campo <Para> ni en
el<CC>. De esa forma nadie que lo reciba tendr� constancia de las se�as
de los dem�s destinatarios a los que tambi�n se remite. Todo ello a fin
de evitar que nadie se aproveche de todas las direcciones que se van
acumulando al pasar de buz�n a buz�n para el lanzamiento de correo
basura y otras indeseadas lindezas. Aparte claro est� de garantizar la
privacidad.
Gracias.
Si como dices el CSRF se valida autom�ticamente, no entiendo el porqu�
cuando trato de ejecutar la acci�n borrar (de batch actions, de un
m�dulo creado con generate-admin), me da el mismo error o similar.
500 | Internal Server Error | sfValidatorErrorSchema
_csrf_token [CSRF attack detected.]
En este caso no he modificado los validadores en el formulario. Est�n
los que admin establece por defecto.
El 12/10/10 15:19, Gustavo Adrian escribi�:
> El token CSRF lo valida automaticamente el formulario (a menos que
> desactives la proteccion CSRF del form). El problema que tienes puede
> ser, como indica chun, que al hacer "echo $form" ya estas imprimiendo el
> campo del token csrf. Por lo que veo estas imprimiendolo aparte tambien
> haciendo "<?php echo $form['_csrf_token']; ?>". Elimina esa linea y
> verifica si funciona. Si sigue sin funcionar, fijate que valores estas
> enviando via POST con Firebug o alguno similar y muestranos.)
>
>
> Saludos.
>
--
Saludos cordiales.
Pablo.
Si lo reenv�as, ten la precauci�n de borrar los datos de procedencia que
encabezar�an tu reenv�o � empezando por mi direcci�n de correo
electr�nico - . Coloca siempre las direcciones de tus contactos en el
campo <CCO> para que viajen discretas, no en el campo <Para> ni en
el<CC>. De esa forma nadie que lo reciba tendr� constancia de las se�as
de los dem�s destinatarios a los que tambi�n se remite. Todo ello a fin
de evitar que nadie se aproveche de todas las direcciones que se van
acumulando al pasar de buz�n a buz�n para el lanzamiento de correo
basura y otras indeseadas lindezas. Aparte claro est� de garantizar la
privacidad.
Gracias.
--
De todos modos yo me refer�a al borrado multiple.
El 12/10/10 21:23, Jesus Garcia escribi�:
> --
> Has recibido este mensaje porque est�s suscrito al grupo "symfony-es" de
> Grupos de Google.
> Para publicar una entrada en este grupo, env�a un correo electr�nico a
> symfo...@googlegroups.com.
> Para anular tu suscripci�n a este grupo, env�a un correo electr�nico a
> symfony-es+...@googlegroups.com
> Para tener acceso a m�s opciones, visita el grupo en
> http://groups.google.com/group/symfony-es?hl=es.