Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/05/2013, 03:45
helenp
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
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