Saltar al contenido

El token CSRF no es válido. Intente volver a enviar el formulario

Manuel, parte de este equipo, nos hizo el favor de escribir este tutorial ya que conoce a la perfección dicho tema.

Solución:

Necesitas agregar el _token en su forma es decir

 form_row(form._token) 

A partir de ahora, a su formulario le falta el campo de token CSRF. Si usa las funciones de formulario de ramita para representar su formulario como form(form) esto generará automáticamente el campo de token CSRF para usted, pero su código muestra que está procesando su formulario con HTML sin procesar como

por lo que debe representar manualmente el campo.

O simplemente agregue form_rest(form) antes de la etiqueta de cierre del formulario.

De acuerdo con los documentos

Esto representa todos los campos que aún no se han procesado para el formulario dado. Es una buena idea tener esto siempre en algún lugar dentro de su formulario, ya que mostrará los campos ocultos y hará que los campos que olvidó mostrar sean más obvios (ya que mostrará el campo por usted).

form_rest(vista, variables)

También puede ver este mensaje de error cuando su formulario tiene muchos elementos.

Esta opción en php.ini causa del problema

; How many GET/POST/COOKIE input variables may be accepted
 max_input_vars = 1000

El problema es que el campo _token pierde la solicitud PUT (GET), por lo que debe aumentar el valor.

Además, se trata de archivos grandes. Aumentando el

upload_max_filesize

La opción resolverá el problema.

Esto sucede porque los formularios por defecto contienen protección CSRF, que no es necesaria en algunos casos.

Puede deshabilitar esta protección CSRF en su clase de formulario en getDefaultOptions método como este:

// Other methods omitted

public function getDefaultOptions(array $options)

    return array(
        'csrf_protection' => false,
        // Rest of options omitted
    );

Si no desea deshabilitar la protección CSRF, debe representar el campo de protección CSRF en su formulario. Se puede hacer usando form_rest(form) en su archivo de vista, así:

form_rest(form)

form_rest(form) muestra todos los campos que no ha ingresado manualmente.

Reseñas y calificaciones del artículo

Si haces scroll puedes encontrar las críticas de otros creadores, tú aún eres capaz insertar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *