Foros del Web » Programando para Internet » PHP »

Redireccionar conservando datos según opciones

Estas en el tema de Redireccionar conservando datos según opciones en el foro de PHP en Foros del Web. Hola: Necesito que al dar click a un botón que hace una reservación me valide lo siguiente: 1) Si está logueado va directamente a mostrar ...
  #1 (permalink)  
Antiguo 13/08/2012, 23:19
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Redireccionar conservando datos según opciones

Hola:

Necesito que al dar click a un botón que hace una reservación me valide lo siguiente:

1) Si está logueado va directamente a mostrar el detalle de la reservacion.
2) Si no está logueado va a loguearse y luego le muestra el detalle de la reservación.
3) Si no está registrado va a registro y luego al detalle de la reservación.

El problema que se me presente es que tengo un login que va a el panel del usuario y no se como hacer que en este caso vaya al detalle de la reservación.

Igualmente en registrarse va a otra parte y no se como hacer para que un caso vaya a un lado y en el otro caso al otro.

Esto es lo que tengo:

Código PHP:
Ver original
  1. $n_reservacion = $_POST['n_reservacion'];
  2. $nombre_posada = $_POST['nombre_posada'];
  3. $nombre_plan = $_POST['nombre_plan'];
  4. $llegada = $_POST['llegada'];
  5. $salida = $_POST['salida'];
  6. $totalDays = $_POST['totalDays'];
  7. $totalNoches = $_POST['totalNoches'];
  8. $adultos = $_POST['adultos'];
  9. $ninos = $_POST['ninos'];
  10. $habitaciones = $_POST['habitaciones'];
  11. $precio_total = $_POST['precio_total'];
  12. $precio_global = $_POST['precio_global'];
  13.  
  14.  
  15. $_SESSION['n_reservacion']= $n_reservacion;
  16. $_SESSION['nombre_posada']= $nombre_posada;
  17. $_SESSION['nombre_plan']= $nombre_plan;
  18. $_SESSION['llegada']= $llegada;
  19. $_SESSION['salida']= $salida;
  20. $_SESSION['totalDays']= $totalDays;
  21. $_SESSION['totalNoches']= $totalNoches;
  22. $_SESSION['adultos']= $adultos;
  23. $_SESSION['ninos']= $ninos;
  24. $_SESSION['habitaciones']= $habitaciones;
  25. $_SESSION['precio_total']= $precio_total;
  26. $_SESSION['precio_global']= $precio_global;
  27.  
  28.  
  29. if ($_SESSION['usuario']){
  30.     header('Location:reservacion_realizada.php');
  31. }
  32. else {
  33.         header('Location:/login.php');
  34. }

Por favor orientenme acerca de como puedo hacer esto.

Gracias
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 13/08/2012, 23:35
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Redireccionar conservando datos según opciones

Amiga, realmente no se entiende el problema, se entiende que necesitas hacer 3 validaciones, pero no se entiende el porque no puedes o cual es el problema, aparte, el código que muestras no es muy "explicativo" que digamos, expon mejor tu caso y los problemas que tienes para poder ayudarte...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 14/08/2012, 13:57
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Redireccionar conservando datos según opciones

Hola. Voy por partes:

Tengo una pagina que muestra los datos de una cotización:

http://vamonosdevacaciones.com.ve/re...servacion2.php

y al dar al botón reservar tengo que validar si la persona está logueada, si no está la redirijo a login pero el problema está allí porque cuando hace login en cualquier otra parte, el va a el panel_de_usuario.php y aqui quiero que vaya a reservacion_realizada.php.

Entonces como hago para que vaya a un lado o el otro dependiendo si viene de la reservacion.

Gracias
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 14/08/2012, 14:01
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Redireccionar conservando datos según opciones

guarda la última página que visitó, antes de redireccionar en una session. Te en cuenta que la página a donde redirecciona no sobre escriba la session ya hecha. Y una vez que logea, la redireccionas a la página que estaba en la session
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #5 (permalink)  
Antiguo 14/08/2012, 14:04
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Redireccionar conservando datos según opciones

A pues muy sencillo, en la página que procesas (a donde se dirige el navegador al dar al boton "reservar") guardas en una variable de sesión ($_SESSION) la procedencia, así tanto en la pagina de login como de registro sabrás de donde procede el usuario y así sabras si es un login/registro común o procede de la página "reservar"
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #6 (permalink)  
Antiguo 14/08/2012, 14:05
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Redireccionar conservando datos según opciones

gracias carlo pero como guardo la pagina que visitó?

No entiendo.

__________________
Caminando con el corazón partío
  #7 (permalink)  
Antiguo 14/08/2012, 14:07
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Redireccionar conservando datos según opciones

Gracias Nemutagk pero en la variable de sesión ($_SESSION) que datos guardo?

Estoy confundida y por ello hice un montón de variables de sesion.

No se que guardo ni como la llamo.
__________________
Caminando con el corazón partío
  #8 (permalink)  
Antiguo 14/08/2012, 14:10
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Redireccionar conservando datos según opciones

Puedes usar las var $_SERVER[]...

Como $_SERVER["PHP_SELF"] o $_SERVER["REQUEST_URI"] o buscar otra que se te acomode.

Puedes hacer algo como
$_SESSION['last_page'] = $_SERVER["PHP_SELF"];

después que hace el login un header
header("Location: ".$_SESSION['last_page']);
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #9 (permalink)  
Antiguo 14/08/2012, 14:10
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Redireccionar conservando datos según opciones

En la página "reserva"

Código PHP:
Ver original
  1. <?php
  2.  
  3. $paginaActual = $_SERVER['PHP_SELF'];
  4. $_SESSION['referencia'] = $paginaActual;

En el login/registro:
Código PHP:
Ver original
  1. <?php
  2.  
  3. if (isset($_SESSION['referencia'])) {
  4.      echo 'El usuario procede de: '.$_SESSION['referencia'];
  5. }

Ojo, solo es un ejemplo, pero esa es la idea
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #10 (permalink)  
Antiguo 14/08/2012, 14:12
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Redireccionar conservando datos según opciones

Muchas gracias a los dos. Las probaré y les comento.
__________________
Caminando con el corazón partío
  #11 (permalink)  
Antiguo 14/08/2012, 15:59
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Redireccionar conservando datos según opciones

Disculpen mi ignorancia pero después que la redirijo, en esa página debo llevarme todas las variables asi:

Código PHP:
Ver original
  1. $_SESSION['n_reservacion']= $n_reservacion;
  2. $_SESSION['nombre_posada']= $nombre_posada;
  3. $_SESSION['nombre_plan']= $nombre_plan;
  4. $_SESSION['llegada']= $llegada;
  5. $_SESSION['salida']= $salida;
  6. $_SESSION['totalDays']= $totalDays;
  7. $_SESSION['totalNoches']= $totalNoches;
  8. $_SESSION['adultos']= $adultos;
  9. $_SESSION['ninos']= $ninos;
  10. $_SESSION['habitaciones']= $habitaciones;
  11. $_SESSION['precio_total']= $precio_total;
  12. $_SESSION['precio_global']= $precio_global;

o hay otra forma????
__________________
Caminando con el corazón partío
  #12 (permalink)  
Antiguo 14/08/2012, 16:05
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Redireccionar conservando datos según opciones

Pues de que la hay, la hay y es pasar todas las variables via GET en el header:location, pero, es la peor forma, la mas facil es como lo tienes hecho....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #13 (permalink)  
Antiguo 14/08/2012, 16:07
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Redireccionar conservando datos según opciones

podrias aplicar esta

Código PHP:
Ver original
  1. header("Location:reservacion_realizada.php?n_reservacion=$n_reservacion&nombre_posada=$nombre_posada");

pero se me hace mejor opcion echarlos en session
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #14 (permalink)  
Antiguo 14/08/2012, 16:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Redireccionar conservando datos según opciones

Cita:
Iniciado por kimmy Ver Mensaje
Disculpen mi ignorancia pero después que la redirijo, en esa página debo llevarme todas las variables asi:

Código PHP:
Ver original
  1. $_SESSION['n_reservacion']= $n_reservacion;
  2. $_SESSION['nombre_posada']= $nombre_posada;
  3. $_SESSION['nombre_plan']= $nombre_plan;
  4. $_SESSION['llegada']= $llegada;
  5. $_SESSION['salida']= $salida;
  6. $_SESSION['totalDays']= $totalDays;
  7. $_SESSION['totalNoches']= $totalNoches;
  8. $_SESSION['adultos']= $adultos;
  9. $_SESSION['ninos']= $ninos;
  10. $_SESSION['habitaciones']= $habitaciones;
  11. $_SESSION['precio_total']= $precio_total;
  12. $_SESSION['precio_global']= $precio_global;

o hay otra forma????
Sólo algunas observaciones:

Código PHP:
Ver original
  1. $_SESSION['reservacion'] = array(
  2.     'n_reservacion' => $n_reservacion,
  3.     'nombre_posada' => $nombre_posada, // Yo pasaría sólo ID de posada
  4.     'nombre_plan' => $nombre_plan, // Yo pasaría sólo ID de plan
  5.     'llegada' => $llegada,
  6.     'salida' => $salida,
  7.     'totalDays' => $totalDays,
  8.     'totalNoches' => $totalNoches, // Este es necesario realmente?
  9.     'adultos' => $adultos,
  10.     'ninos' => $ninos,
  11.     'habitaciones' => $habitaciones,
  12.     'precio_total' => $precio_total,  // Este es mejor calcularlo
  13.     'precio_global' => $precio_global, // Este es mejor calcularlo
  14. );
  15.  
  16. // Una vez que hayas procesado la reservación:
  17. unset($_SESSION['reservacion']);

Cuando vayas a procesar la reservación, no importa si los datos ya están en sesión, tienes que verificar contra la base de datos que existan posada y plan, además de volver a realizar los cálculos necesarios para precios.

Porqué?, la información de sesión podría ser manipulada por el usuario (aunque realmente no es tan fácil) o tal vez realizaste cambios en posadas, planes, tarifas, etc.
__________________
- León, Guanajuato
- GV-Foto
  #15 (permalink)  
Antiguo 14/08/2012, 18:00
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Redireccionar conservando datos según opciones

Que tal @Triby, un favor, podrías aportar algún link de algún documento que especifique como se logra modificar variables de sesión?, o podrías explicar de manera sencilla la vulnerabilidad de las sesiones?
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #16 (permalink)  
Antiguo 14/08/2012, 18:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Redireccionar conservando datos según opciones

Nemutagk, precisamente por eso mencioné (aunque realmente no es tan fácil):

Robo de sesión (session fixation): actualmente muy pocos servidores (sitios) están configurados para enviar la ID de sesión por URL en lugar de almacenarla en cookies, aunque en ambas formas se puede robar la sesión, principalmente cuando el equipo es compartido entre varios usuarios y en lugares públicos.

Inyección de sesión (session poisoning): Esto sólo puede ser causado por mala validación en los scripts, cosa que todos aquí en FDW advertimos a otros usuarios, pero no falta quien aún tiene $_SESSION['usuario'] = $_GET['usuario'].

Por otra parte, si no verificas todos los datos que tienes en sesión estás propenso a errores como los que mencionaba por la posibilidad de cambios en el sitio mientras el usuario finaliza el proceso.

Suena muy paranoico?, sí, de acuerdo, pero supongamos que el usuario inició el proceso, se le pide ingresar sus datos y las variables de sesión ya están creadas, después sigue navegando por el sitio durante un tiempo, mientras el administrador realiza cambios en precios y condiciones; posteriormente el usuario finaliza el proceso con los datos almacenados en sesión... qué pasa si los precios ya no son los mismos (mal menor) o si el plan que reservó ya no está disponible (se eliminó, no hay cupo, etc.)?
__________________
- León, Guanajuato
- GV-Foto
  #17 (permalink)  
Antiguo 14/08/2012, 19:59
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Redireccionar conservando datos según opciones

Excelente explicación Triby, de verdad que es importante por lo de la actualización de datos y la seguridad.

Lo voy a cambiar como indicas.

Gracias también Nemutagk por todas las explicaciones y ayuda.

__________________
Caminando con el corazón partío
  #18 (permalink)  
Antiguo 15/08/2012, 01:21
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Redireccionar conservando datos según opciones

Como siempre una excelente intervención @Triby, la verdad ya estaba al tanto de los dos metodos que indicas, pensé que se trataba de algún nuevo "truco" para tomar control de las sesiones o algo por el estilo, agradezco la explicación!
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: opciones, redireccionar, registro, según, usuarios
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 19:15.