[PHP 5.6.25] (je travaille en localhost pour le moment)
Bonjour à tous,
Pour le contexte, je suis dans le cadre d'un projet en train de coder un site de réservation de véhicules à partir d'une grille horaire définie.
J'ai un souci concernant les variables de sessions. Avant toute chose, j'ai bien mis session_start(); au début de chaque page.
Le projet :
=> index.php
=> profil.php
=> reserver.php
Le déroulement :
=> Un utilisateur se connecte via un identifiant et un mot de passe dans index.php, une variable $_SESSION["username"] est créée et se transmets bien sur toutes les pages de mon site, je la visualise bien avec var_dump($_SESSION["username"]);. Sa connexion le fait arriver sur la page profil.php
=> Sur la page profil se trouve une grille horaire avec des horaires "cliquables", sous forme de différents submits button codés de cette façon :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
<form method="post" action="../php/reserver.php" id="horaires" >
<table>
<caption>Grille horaire</caption>
<tr>
<th>Commune</th>
<th>Arrêt</th>
<th colspan="2">Horaires</th>
</tr>
<tr class="L_C">
<td>LYON</td>
<td>Arrêt 1</td>
<td><input type="submit" name="trajet" id="LC11" value="07:00" /></td>
<td><input type="submit" name="trajet" id="LC21" value="16:30" /></td>
</tr>
<tr class="L_C">
<td>LYON</td>
<td>Arrêt 2</td>
<td><input type="submit" name="trajet" id="LC12" value="07:10"></td>
<td><input type="submit" name="trajet" id="LC22" value="16:48"></td>
</tr>
<tr class="L_C">
<td>LEMPDES</td>
<td>Arrêt 3</td>
<td><input type="submit" name="trajet" id="LC13" value="09:05"></td>
<td><input type="submit" name="trajet" id="LC23" value="18:35"></td>
</tr>
// plein d'autres horaires
</table>
</form> |
Ce formulaire est disponible dans un horaires.php qui est include dans profil.php. Tout se passe bien, la grille horaire est affichée et chaque horaire est cliquable.
=> J'ai également dans profil.php include afficherReserv.php. Lorsque l'on clique sur un horaire le code suivant est lancé :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST" and isset($_POST["trajet"])) {
switch ($_POST["trajet"]) {
case "07:00":
$_SESSION["sensTrajet"] = "Vers Cl-Fd";
$_SESSION["arretTrajet"] = "Arrêt 1";
$_SESSION["heureTrajet"] = "07:00";
$_SESSION["idTrajet"] = "LC11";
break
;
case "07:10":
$_SESSION["sensTrajet"] = "Vers Clermont-Ferrand";
$_SESSION["arretTrajet"] = "Arrêt 2";
$_SESSION["heureTrajet"] = "07:10";
$_SESSION["idTrajet"] = "LC12";
break
;
// tous les autres cas
default:
$_SESSION["sensTrajet"] = "";
$_SESSION["arretTrajet"] = "";
$_SESSION["heureTrajet"] = "";
$_SESSION["idTrajet"] = "";
break
;
}
}
?> |
Ce bout de code a pour objectif de me faire initialiser des variables de sessions pour alimenter dans la page reserver.php (l'action du formulaire plus haut) et plus tard une base de données phpmyadmin.
=> Mon problème :
Lorsque je change la page d'action du formulaire de grille horaire en PHP_SELF, tout fonctionne. C'est-à-dire que si je fais echo $_SESSION["sensTrajet"]; , j'ai bien sous ma grille horaire la valeur correspondante à l'horaire cliqué (et ceci pour tous les horaires).
Ceci veut bien dire que mon switch fonctionne et que les variables sont initialisées.
Cependant, lorsque je remplace l'action du formulaire par la page reserver.php, j'arrive sur la page mais les variables de session sensTrajet, arretTrajet, heureTrajet et idTrajet sont vides !
Notice: Undefined index: heureTrajet in C:\wamp64\www\InterfaceReservations\php\reserver.php on line 3
ET POURTANT ma variable de session $_SESSION["username"] est bien affichée !
J'ai essayé plein de choses et recherché plein d'infos sur le net mais je désespère sur quelque chose qui, je suis sûr n'est juste qu'une simple erreur de ma part que je n'arrive pas à détecter. Sur la même page les variables de sessions fonctionnent, mais sur la prochaine elles ne fonctionnent plus.
Merci d'avance de toute aide !
Akhekhu
Partager