¿Codificar el campo de entrada del formulario en cakephp para que el usuario no pueda editarlo?
Frecuentes
Visto 491 equipos
3 Respuestas
2
Entonces no lo agregues al formulario. Esos campos deben agregarse en el controlador (o incluso antes de Validar/antes de Guardar la capa del modelo) y luego justo antes de guardar:
if ($this->request->is('post')) {
$this->User->create();
// add the content before passing it on to the model
$this->request->data['User']['status'] = 1;
if ($this->User->save($this->request->data)) {
...
}
}
Ver "valores predeterminados - ocultos" aquí.
Respondido 05 Feb 14, 10:02
0
Puedes configurar el readonly
propiedad:
echo $form->input('name', array('label' => __('Name *', true), 'readonly' => true));
Sin embargo, esto solo afecta la interfaz de usuario, por lo que aún debe aplicar la respuesta de Mark para asegurarse de que el usuario no cambie el valor.
Respondido 05 Feb 14, 10:02
0
Dos opciones:
- codifique el valor antes de guardar
- usar lista blanca
Si desea que el campo sea de solo lectura, desde el momento en que se establece. usar lista blanca. de esta manera, no importa si el usuario enviará el campo o no. el pastel no lo salvará.
$white_list = array('title', 'category');
$this->Model->save($data,$validate,$white_list);
La otra solución es como marca codificada:
$this->request->data['User']['status'] = 1;
if ($this->User->save($this->request->data)) {
...
}
Cualquier solución debe mezclar una indicación de interfaz de usuario de que el campo no se cambiará. aunque una buena UX no lo permitirá en primer lugar.
Respondido 05 Feb 14, 11:02
La inclusión en la lista blanca no impide que se pueda modificar cuando proviene de la vista (solo el uso de un componente de seguridad o similar lo garantizaría). Es por eso que prefiero no agregarlos al formulario en primer lugar. - marca
Corríjame si me equivoco, pero si un campo no está en la lista blanca, ¿no debería el pastel evitar que esté en la consulta de actualización? - yossi
Sí, pero eso no viene al caso aquí. Como el campo tendría que estar en la lista blanca para poder guardarlo también. - marca
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas cakephp or haz tu propia pregunta.
Exactamente, sin el componente de seguridad este campo muy bien podría ser modificado por cualquier visitante. - marca