Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Ayuda con redireccionar y clases

Estas en el tema de Ayuda con redireccionar y clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Lo que intento hacer es usar el modelo MVC. Mi problema es que yo hago submit en un formulario(se encuentra en index.html) lo envia a ...
  #1 (permalink)  
Antiguo 10/07/2009, 13:57
 
Fecha de Ingreso: abril-2009
Ubicación: Santa Fe, Capital
Mensajes: 38
Antigüedad: 15 años
Puntos: 0
Pregunta Ayuda con redireccionar y clases

Lo que intento hacer es usar el modelo MVC.

Mi problema es que yo hago submit en un formulario(se encuentra en index.html) lo envia a un archivo .php(control/peliculaControl.php), lo que quiero es que después de guardar la información ingresada, me redireccione a otra pagina(paginas/peliculaVista.php) que es la vista, de lo que se guardo. Pero se queda en control/peliculaControl.php no me ingresa a la clase en la cual tiene código para que me redireccione a la vista(creo que el código es correcto).

Archivo principal(index.html)

Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="control/peliculaControl.php" method="post">
<input name="nombre" type="text"/>
<input name="duracion" type="text"/>
<input type="submit" value="Guardar">
</form>
</body>
</html> 
Control

Código PHP:
<?php
class peliculaControl{
        var 
$pelicula;

    public function 
peliculaControl(){
        
$this->control();
    }

    public function 
control(){
        
header('../modelo/pelicula.php');
        
$pelicula = new pelicula();
        
$pelicula->setNombre((string)$_POST['nombre']);
        
$pelicula->setDuracion((int)$_POST['duracion']);
        
header ('../paginas/peliculaVista.php');

    }
}
?>
Vista

Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<?php
require '../modelo/pelicula.php';
$prueva = new peliculas();
echo $this->prueva->getNombre();
?>
</body>
</html> 
Modelo

Código PHP:
<?php
class pelicula{
    var 
$nombre;
    var 
$duracion;
    
    public function 
pelicula(){}
    
    public function 
getNombre(){
        return 
$this->nombre;
        
    }
    public function 
getDuracion(){
        return 
$this->duracion;
    }
    public function 
setNombre($nombre){
        
$this->nombre=$nombre;
    }
    public function 
setDuracion($duracion){
        
$this->duracion=$duracion;
    }
}
?>
  #2 (permalink)  
Antiguo 10/07/2009, 14:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda con redireccionar y clases

Ok, tu haces un POST a peliculaControl.php que código PHP hay en ese archivo?
  #3 (permalink)  
Antiguo 10/07/2009, 15:48
 
Fecha de Ingreso: abril-2009
Ubicación: Santa Fe, Capital
Mensajes: 38
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con redireccionar y clases

El codigo del peliculaControl.php, es el encargado de guardar la informacion en algun lugar, esto todabia no lo hice, porque estoy provando haber si me funciona bien el codigo antes de seguir porque es la primera vez que intento hacer una pagina en php.

Dentro de peliculaControl incluyo el archivo peliculas.php que es un modelo de una pelicula(hice una clase con dos variables nombre y duraccion).

En resumen entro a index.html, envio el formulario a control/peliculaControl.php ahí incluyo modelo/peliculas.php, guardo la informacion en una base de datos o un archivo y luego quiero volver al formulario pero que me muestre una lista con las peliculas guardadas.

P/D: la vista y el formulario pueden ser uno yo lo hice como para probar como funciona y despues mejorarlo.

Última edición por PanchoJ; 10/07/2009 a las 15:58
  #4 (permalink)  
Antiguo 11/07/2009, 14:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda con redireccionar y clases

Si pero si quieres redireccionar tienes que de alguna forma llamar a tu función control() por eso te preguntaba que tenia el archivo peliculaControl.php ya que ahí es donde esta tu problema si no llamas al método control() no va a redireccionar.

Tienes que hacer algo así:
Código php:
Ver original
  1. $pelicula = new peliculaControl();
  2. $pelicula->control();

Recuerda que PHP no tiene ningun método main() como en otros lenguajes, tienes tu que llamar explícitamente al método.

Saludos.
  #5 (permalink)  
Antiguo 12/07/2009, 12:57
 
Fecha de Ingreso: abril-2009
Ubicación: Santa Fe, Capital
Mensajes: 38
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con redireccionar y clases

Ahora pude arreglar el error, lo que no se como es esta parte

Código PHP:
public function control(){
        
header('../modelo/pelicula.php');
        
$pelicula = new pelicula();
        
$pelicula->setNombre((string)$_POST['nombre']);
        
$pelicula->setDuracion((int)$_POST['duracion']);
        
header ('../paginas/peliculaVista.php');

Después en la vista intento

echo $pelicula->getNombre();

o

en control
$nomb = $pelicula->getNombre()
y en la vista
echo $nomb;

no me muestra nada o hay que guardar en un archivo o BD, para poder ver el nombre.

echo $_Post["nombre"];//si funciona
pero quiero usar la funcción getNombre(); como para que después me pueda mostrar una lista de nombres o algo similar.
  #6 (permalink)  
Antiguo 12/07/2009, 13:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda con redireccionar y clases

Esos header no sirven para nada, el uso correcto es:
Código php:
Ver original
  1. header('Location: archivo.ext');

Si solo pones el archivo no sirve de nada, por otro lado recuerda que PHP es un lenguaje stateless, al redireccionar se borra todo lo que estaba, por lo cual debes de persistir lo que quieras en un medio persistente, como una base de datos, un archivo, o una sesión.

Saludos.
  #7 (permalink)  
Antiguo 12/07/2009, 13:33
 
Fecha de Ingreso: abril-2009
Ubicación: Santa Fe, Capital
Mensajes: 38
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con redireccionar y clases

Habia provado el header de la forma que pusiste pero no me funcionaba

ahora cambie el 1er header por require o include y el 2do por header('Location: ../paginas/peliculaVista.php');

Ahora si funciona bien lo que no me funciona get y set, pero debe ser porque no persisto los datos todabía.

Gracias todo funciona bien como debe ser.
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 20:01.