Comment puis-je réinitialiser mon id de Session?
Je suis en train de détruire une session après qu'il a fait succès de paiement .
$session_id = session_id();
$sql = "
UPDATE
tbl_seat_book
SET
final_book = 'Y'
WHERE
session_id = '$session_id'
";
$r = $this->db->executeQuery($sql);
session_unset();
session_destroy();
echo 'Booking successfull';
Mais quand je réserver des billets , de la même session_id
s'affiche . Comment puis-je détruire la session_id
après paiement réussi .
EDIT :
$sql = "
INSERT INTO
tbl_seat_book
SET
booking_date = '$_REQUEST[bus_date]',
booking_time = '$_REQUEST[bus_time]',
bus_id = '$_REQUEST[bus_id]',
route_id = '$_REQUEST[route_id]',
session_id = '$session_id',
session_start_time = '$time',
temp_book = 'Y',
final_book = 'N',
$cond
";
$booked = $this->db->insertQuery($sql);
EDIT2:
function book_final_tickets()
{
$session_id = session_id();
$sql = "
UPDATE
tbl_seat_book
SET
final_book = 'Y'
WHERE
session_id = '$session_id'
";
//session_unset();
if($r = $this->db->executeQuery($sql)){
if(session_destroy()){
unset($session_id);
echo 'Booking successfull';
}
}
}
- php.net/session_destroy
- J'ai ajouté,mais même résultat
Vous devez vous connecter pour publier un commentaire.
Utilisation
session_regenerate_id(true)
pour générer un nouvel ID de session et de supprimer l'ancien. Notez que cela vous permettra de garder toutes les informations de$_SESSION
dans le cadre de la nouvelle ID de session.par exemple Pour obtenir un nouvel ID de session, mais garder les informations de la session en
$_SESSION
.Si vous ne souhaitez pas conserver les informations dans
$_SESSION
soit, alors vous voulez utilisersession_destroy()
pour détruire la session d'info sur le côté serveur, etsetcookie()
manuellement désactiver le cookie de session sur le côté client. Ensuite, vous pouvez démarrer une nouvelle session et générer un nouvel ID de session comme avant.par exemple Pour obtenir une nouvelle session_id ET de supprimer toutes les informations de session.
(Vous pouvez vous en sortir sans le
setcookie()
appel ici, puisque vous êtes en train de créer une nouvelle session de toute façon, alors le cookie sera supprimé et remplacé par la nouvelle carte d'identité, mais c'est une bonne pratique explicitement détruire l'ancien cookie).session_destroy()
ne suffira pas à supprimer le côté client cookie, donc la prochaine fois que l'utilisateur visite, ils auront toujours le même id de session set (mais leur session côté serveur info aura été détruit).De la documentation (l'emphase est mienne):
Votre Juste remplacer session_unset() avec session_destroy()
session_unset(); seulement gratuit la variable que vous avez enregistrées, si vous souhaitez détruire toutes les session de l'utilisation
session_destroy();
essayer avec ceci: