Nueva pregunta

Pregunta:

Fecha: 16-06-2015 04:12:22 (En Español)

Redireccionar y cambiar url del navegador[Resuelta]

Hola a todos, miren tengo una duda. Cuando desarrollo un sitio con MVC, por lo general la url la construyo de la siguiente manera: http://misitio/controllador/function/item, por ejemplo si quiero ver un listado de usuarios sería: http://misitio/usuario, como no pongo function entonces asumo que voy a mostrar la function 'Index' y si quiero editar un usuario sería http://misitio/usuario/editar/pepe, diciendo que voy a editar el usuario con nick 'pepe', el problema es el siguiente, en la function Editar tengo que ve si existe el usuario 'pepe', si existe lo muestro para que lo editen, pero si no lo muestro entonces redirecciono al index. Redirecciono de 2 formas:
1-La primera es llamando a la function 'Index' de ese controllador y le paso el mensaje de error sería:
$this->Index($mensaje); 


La function Index del controllador es:
function Index($mensaje = null)
{
    ...
}


Lo malo es que de esta forma la url del navegador sigue siendo http://misitio/usuario/editar/pepe cuando realmente debería ser: http://misitio/usuario

2-La otra opción es llamando el método de php
header("Location: http://misitio/usuario");
pero de esta forma no puedo mandar el mensaje de error al 'Index' para mostrarlo.

Muchas gracias!!!.
Etiquetas: PHP - Pregunta - URL Votos: 0 - Respuestas: 2 - Vistas: 14 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 19-06-2015 02:58:12 Hola Jaime, lo que puedes hacer es utilizar la sesión del usuario para llevar el mensaje entre las distintas páginas.

    $_SESSION['mensaje'] = 'el usuario XXXX no existe';


    Una vez que muestres el mensaje podrás hacer un unset de la variable para evitar que se siga mostrando.

    echo $_SESSION['mensaje'];
    unset($_SESSION['mensaje']);


    Recuerda que antes de usar el array superglobal "$_SESSION" debes iniciar la sesión con "session_start()".

    Por otro lado, recuerda también que despues de un "header('Location: .......);" siempre debes usar la instrucción "exit;" para evitar que el script se siga ejecutando.

    Saludos,
      Votos: 1 - Link respuesta
     
  • Fecha: 19-06-2015 04:25:41 Tienes razón Fernando, no sé cómo no me di cuenta, una solución simple pero práctica, jejeje.

    Gracias.
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com