Foros del Web » Programando para Internet » PHP » CodeIgniter »

Problema al enviar formulario con CodeIgniter

Estas en el tema de Problema al enviar formulario con CodeIgniter en el foro de CodeIgniter en Foros del Web. Hola: Soy nuevo en el uso de este framework y tengo el siguiente problema: Quiero enviar un formulario sin usar las funciones del helper para ...
  #1 (permalink)  
Antiguo 28/03/2011, 12:51
 
Fecha de Ingreso: enero-2011
Mensajes: 74
Antigüedad: 13 años, 11 meses
Puntos: 4
Problema al enviar formulario con CodeIgniter

Hola:
Soy nuevo en el uso de este framework y tengo el siguiente problema:
Quiero enviar un formulario sin usar las funciones del helper para formularios del framework pues quiero tener el menor codigo php posible en mis vistas y me da el siguiente error: (An Error Was Encountered The action you have requested is not allowed.)
este es el codigo de mi vista:
<body>

<h1>Página para registrarse</h1>
<form action="http://localhost/pruebaCodeIgniter/index.php/user_controller/registrarse" method="POST" name="form_registrase">
<label>E-Mail:</label>
<input type="text" name="email" value=""/>
<label>Password:</label>
<input type="password" name="password" value=""/>
<label>Nombre:</label>
<input type="text" name="nombre" value=""/>
<label>Apellido:</label>
<input type="text" name="apellido" value=""/>
<label>Edad:</label>
<input type="text" name="edad" value=""/>
<input type="submit" name="" value="Registrarse"/>
</form>
</body>
y este el de mi controladora
class User_controller extends CI_Controller {

function __construct() {
parent::__construct();
$this->load->library('parser');
$this->load->Model('user_model');
}
function registrarse(){
$email=$this->input->post('email');
$password=$this->input->post('password');
$nombre=$this->input->post('nombre');
$apellido=$this->input->post('apellido');
$edad=$this->input->post('edad');
/*$email='[email protected]';
$password='casa';
$nombre='ruben';
$apellido='castellanos';
$edad=26;*/
$this->user_model->registrarse($email, $password, $nombre, $apellido, $edad);
$this->load->view('listado_view');
}

Si pongo la dirección del acción del formulario manual en el navegador funciona perfectamente, sin embargo me da el error descrito anteriormente si lo trato de hacer normalmente, no pongo el codigo del modelo pues este funciona bien,De antemano agradezco la ayuda que me puedan brindar.
Saludos
  #2 (permalink)  
Antiguo 28/03/2011, 15:07
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: Problema al enviar formulario con CodeIgniter

Extremadamente extraño, cuando mandas el submit te manda a la url http://localhost/pruebaCodeIgniter/i...er/registrarse ?¿
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 28/03/2011, 20:34
 
Fecha de Ingreso: enero-2011
Mensajes: 74
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Problema al enviar formulario con CodeIgniter

Si cuando hago submit me da el error An Error Was Encountered The action you have requested is not allowed. Si lo hago usando el helper para formularios
<?php echo form_open('http://localhost/pruebaCodeIgniter/index.php/user_controller/registrarse'); ?>

<label>E-Mail:</label>
<input type="text" name="email" value=""/>
<label>Password:</label>
<input type="password" name="password" value=""/>
<label>Nombre:</label>
<input type="text" name="nombre" value=""/>
<label>Apellido:</label>
<input type="text" name="apellido" value=""/>
<label>Edad:</label>
<input type="text" name="edad" value=""/>
<input type="submit" name="" value="Registrarse"/>

<?php echo form_close(); ?> me funciona perfectamente, mi duda es si tengo que usar el helper obligatoriamente, pues quería usar el html clásico y usar la clase parser para así minimizar el codigo php en la lógica de presentación
Gracias por atender mi pregunta soy nuevo en este framework y tengo muchas dudas
  #4 (permalink)  
Antiguo 29/03/2011, 16:44
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: Problema al enviar formulario con CodeIgniter

Me parece de que no, al menos de que en la apertura del form te este enviando algun token, supongo que estas usando la version 2.
Te fijaste el html que te devuelve ambos formularios?, alli te vas a dar cuenta donde esta el fallo.
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 20/05/2011, 13:31
 
Fecha de Ingreso: enero-2009
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema al enviar formulario con CodeIgniter

Tienes activado CSRF (Cross Site Request Forgery) en config.php. Debes usar form_open para mandar ese token en el post del formulario, sino te dará ese error de seguridad.

Etiquetas: frameworks-y-php-orientado-a-objetos
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 07:34.