Foros del Web » Programando para Internet » PHP »

Sessiones con paypal

Estas en el tema de Sessiones con paypal en el foro de PHP en Foros del Web. Hola, No me gustan las sessiones, pero no tengo más remedio. Tengo reservas online, despues de rellenar un formulario van a una página que registra ...
  #1 (permalink)  
Antiguo 18/05/2013, 11:23
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
Sessiones con paypal

Hola,
No me gustan las sessiones, pero no tengo más remedio.

Tengo reservas online,
despues de rellenar un formulario van a una página que registra la reserva en la base de datos mysql y despues es rediregido a la página de pago en Paypal.
Toda va bien, solo que si hace clic en el botón atras para corregir, pues no pueden ya que la base dice que no esta ya disponible, y deben de esperar hasta que el chronjob elimine la reserva para hacerlo de nuevo.

Creo que debe de empezar la páginas con:
<?php
session_start();
?>
Una vez que se haga la reserva en la base debo de guardar el id de la reserva en la session asi creo:
$id=$_SESSION['id'];

Despues en el php, si viene del formulario que siga el proceso,
si no un else { eliminar el id

Cuanto tiempo dura una sessión sin especificar duración?
Se debe especificar duración?
Mis pensamientos van por buen camino o es erroneo?

Pensandolo bien, una vez que se elimina la reserva, habría que cerrar la sessión y despues abrir una nueva
eso ya ni idea.
Alguna recomendación o enlace sencillo?
Gracias
  #2 (permalink)  
Antiguo 20/05/2013, 01:25
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Sessiones con paypal

ya que la base dice que no esta ya disponible, y deben de esperar hasta que el chronjob elimine la reserva para hacerlo de nuevo. esta lógica la has implementado tu y no tiene nada que ver con las sessiones, si no es lo que quieres eleminala.
Para el resto de las preguntas consulta el manual PHP donde se explica con detalle todo esto: http://www.php.net/manual/es/features.sessions.php
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 23/05/2013, 03:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Sessiones con paypal

Gracias,
ya he metido las sessiones con duración etc.
Ahora tengo dos problemas, uno es con el php que debe de ser resuelto primero,
el código es muy largo con muchos { etc.
Y no pensaba en una cosa.
Yo quiero que si alquien hace clic en el boton atrás cuando van a pagar que la reserva que se ha insertado anteriormente se elimine.
Y para hacerlo tengo en un else
(si no vienen del formulario de la pagina anterior)
tengo este php
Código PHP:
else { 
$ids=$_SESSION['ids'];
echo 
$_SESSION['ids'];
$sql mysql_query("DELETE FROM bookings WHERE id=$ids");
echo 
"test";
 } 
No sé si funciona o no, ya que el php no va,
si entro directamente en la página sin venir del formulario de la página anterior, me imprime correctamente la palabra test del echo.
Pero sin embargo, si vengo del formulario de la pagina anterior,
la reserva se hace correctamente, me redirecciona a paypal y cuando le doy al boton atras,
pues claro, me da el contenido de antes, osea la redirección a paypal en vez de imprimir la palabra test del echo, por la tanto el else no se ejecute.

Solución 2:
Pues entonces pensé, que eliminaré la reserva en la página anterior donde esta el formulario (en caso de que den en el boton atras para corregir algo) pero alli no puedo, (o no sé) me sale error Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in /home/marbella/public_html/bookinginstantcontinue2.php on line 18
Es que al eliminar la reserva, la session debe caducar y empezar otra nueva ya que el id de la reserva está en la sessión.
Esto he puesto arriba en la página del formulario y esto me da el error de arriba de headers already sent:
Código PHP:
<?php
/* establecer el limitador de caché a 'private' */
session_cache_limiter('private');
$cache_limiter session_cache_limiter();

/* establecer la caducidad de la caché a 30 minutos */
session_cache_expire(45);
$cache_expire session_cache_expire();

/* iniciar la sesión */

session_start();
$ids=$_SESSION['ids'];
echo 
$_SESSION['ids'];
$sql mysql_query("DELETE FROM bookings WHERE id=$ids");
echo 
"test";
session_regenerate_id();
Estoy perdida que soy novata en esto de sessiones.

Última edición por helenp; 23/05/2013 a las 03:51

Etiquetas: Ninguno
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 01:06.