par
samueltremblay » 22 janv. 2018, 21:07
Salut Tesmet, merci de ton support! Vraiment, très apprécié!
Il y a quelque chose qui ne fonctionne pas et je me demande si c'est pas parce que je traite ma date comme un "get" en l'envoyant dans le lien au lieu de POST method ou autre. Tu peux tester ici, letheatre.entreprise-amg.com tu vas te rendre compte que le unset semble fonctionner, mais aussitôt que la date ne se retrouve plus dans le lien, les infos reviennent.
Alors avant tout, voici comment j'enregistre en session une date de spectacle de la billetterie ou quand on est sur la vu d'un spectacle:
Code : Tout sélectionner
session_start();
if(isset($_POST['spectacle_id']) && isset($_POST['date']) && isset($_POST['heure_debut']) && isset($_POST['num'])):
if(!isset($_SESSION['spectacle_id']) && isset($_SESSION['date']) && isset($_SESSION['heure_debut']) && isset($_SESSION['num'])):
$_SESSION['spectacle'] = array();
endif;
$item_ID = (isset($_POST['spectacle_id']) && !empty($_POST['spectacle_id']) ? (int) $_POST['spectacle_id'] : null);
$item_date = (isset($_POST['date']) && !empty($_POST['date']) ? (int) $_POST['date'] : null);
$item_heure = (isset($_POST['heure_debut']) && !empty($_POST['heure_debut']) ? (int) $_POST['heure_debut'] : null);
$item_num = (isset($_POST['num']) && !empty($_POST['num']) ? (int) $_POST['num'] : null);
if($item_ID !== null && $item_date !== null && $item_heure !== null && $item_num !== null):
$spect_id = $_POST['spectacle_id'];
$spect_date = $_POST['date'];
$spect_heure = $_POST['heure_debut'];
$spect_num = $_POST['num'];
$_SESSION['spectacle']['id'][] = $spect_id;
$_SESSION['spectacle']['date'][] = $spect_date;
$_SESSION['spectacle']['heure'][] = $spect_heure;
$_SESSION['spectacle']['num'][] = $spect_num;
endif;
endif;
Je reprend donc ma session comme ceci rendu au panier:
Code : Tout sélectionner
session_start();
$global_session = $_SESSION['spectacle']; // correspond au array que je t'ai présenté au début
et si j'ai besoin que des dates dans l'array, j'ai ce code:
(pareil pour les ID, l'heure et num)
Ensuite je reprend ma date à supprimer de cette manière:
Et j'envoi ton code:
Code : Tout sélectionner
$dateEkey = array_search($get_date_a_supprimer, $global_session['date']);
// si la recherche n'est pas en échec
if($dateEkey !== false) {
unset($global_session['id'][$dateEkey]); // ou array_splice($_SESSION['id'], $dateEkey, 1);
unset($global_session['date'][$dateEkey]); // ou array_splice($_SESSION['date'], $dateEkey, 1);
unset($global_session['heure'][$dateEkey]); // ou array_splice($_SESSION['heure'], $dateEkey, 1);
unset($global_session['num'][$dateEkey]); // ou array_splice($_SESSION['num'], $dateEkey, 1);
}
else echo 'pas trouver<br>';
Apres ce code, si je refait un print_r de $global_session APRES ton code, tout ce qui devait etre supprimé est supprimé, mais pas sur le print_r AVANT ton code. et ca fonctionne seulement si le lien est comme ça:
http://letheatre.entreprise-amg.com/pan ... e=20171123 aussitot que j'enleve le suprimer_date=, les données reviennent.
As tu une petite idée du pourquoi ?
Merci beaucoup mister

!!!
Salut Tesmet, merci de ton support! Vraiment, très apprécié!
Il y a quelque chose qui ne fonctionne pas et je me demande si c'est pas parce que je traite ma date comme un "get" en l'envoyant dans le lien au lieu de POST method ou autre. Tu peux tester ici, letheatre.entreprise-amg.com tu vas te rendre compte que le unset semble fonctionner, mais aussitôt que la date ne se retrouve plus dans le lien, les infos reviennent.
Alors avant tout, voici comment j'enregistre en session une date de spectacle de la billetterie ou quand on est sur la vu d'un spectacle:
[code]session_start();
if(isset($_POST['spectacle_id']) && isset($_POST['date']) && isset($_POST['heure_debut']) && isset($_POST['num'])):
if(!isset($_SESSION['spectacle_id']) && isset($_SESSION['date']) && isset($_SESSION['heure_debut']) && isset($_SESSION['num'])):
$_SESSION['spectacle'] = array();
endif;
$item_ID = (isset($_POST['spectacle_id']) && !empty($_POST['spectacle_id']) ? (int) $_POST['spectacle_id'] : null);
$item_date = (isset($_POST['date']) && !empty($_POST['date']) ? (int) $_POST['date'] : null);
$item_heure = (isset($_POST['heure_debut']) && !empty($_POST['heure_debut']) ? (int) $_POST['heure_debut'] : null);
$item_num = (isset($_POST['num']) && !empty($_POST['num']) ? (int) $_POST['num'] : null);
if($item_ID !== null && $item_date !== null && $item_heure !== null && $item_num !== null):
$spect_id = $_POST['spectacle_id'];
$spect_date = $_POST['date'];
$spect_heure = $_POST['heure_debut'];
$spect_num = $_POST['num'];
$_SESSION['spectacle']['id'][] = $spect_id;
$_SESSION['spectacle']['date'][] = $spect_date;
$_SESSION['spectacle']['heure'][] = $spect_heure;
$_SESSION['spectacle']['num'][] = $spect_num;
endif;
endif;[/code]
Je reprend donc ma session comme ceci rendu au panier:
[code]session_start();
$global_session = $_SESSION['spectacle']; // correspond au array que je t'ai présenté au début[/code]
et si j'ai besoin que des dates dans l'array, j'ai ce code:
[code]$get_date_in_cache = $global_session['date'];[/code] (pareil pour les ID, l'heure et num)
Ensuite je reprend ma date à supprimer de cette manière:
[code]$get_date_a_supprimer = $_GET['supprimer_date'];[/code]
Et j'envoi ton code:
[code]$dateEkey = array_search($get_date_a_supprimer, $global_session['date']);
// si la recherche n'est pas en échec
if($dateEkey !== false) {
unset($global_session['id'][$dateEkey]); // ou array_splice($_SESSION['id'], $dateEkey, 1);
unset($global_session['date'][$dateEkey]); // ou array_splice($_SESSION['date'], $dateEkey, 1);
unset($global_session['heure'][$dateEkey]); // ou array_splice($_SESSION['heure'], $dateEkey, 1);
unset($global_session['num'][$dateEkey]); // ou array_splice($_SESSION['num'], $dateEkey, 1);
}
else echo 'pas trouver<br>';[/code]
Apres ce code, si je refait un print_r de $global_session APRES ton code, tout ce qui devait etre supprimé est supprimé, mais pas sur le print_r AVANT ton code. et ca fonctionne seulement si le lien est comme ça: http://letheatre.entreprise-amg.com/panier/?supprimer_date=20171123 aussitot que j'enleve le suprimer_date=, les données reviennent.
As tu une petite idée du pourquoi ?
Merci beaucoup mister :)!!!