Récupération variable session sur la même page

Fermé
Delphine333 Messages postés 2 Date d'inscription mercredi 27 février 2013 Statut Membre Dernière intervention 27 février 2013 - Modifié par Delphine333 le 27/02/2013 à 11:32
Delphine333 Messages postés 2 Date d'inscription mercredi 27 février 2013 Statut Membre Dernière intervention 27 février 2013 - 27 févr. 2013 à 14:03
Bonjour à tous,

Je développe actuellement une page web sur laquelle s'affiche une liste d'enregistrement. Chaque enregistrement comporte un id unique. Un icone supprimer permet de récupérer l'id pour faire l'action de suppression en SQL.
Lorsqu'un utilisateur clique sur l'image supprimer, le script PHP génère 2 boutons pour confirmer ou annuler. Pour l'instant tout va bien sauf que je n'arrive pas à conserver ma variable suppr_mep_id tout le long de ma fonction. J'ai donc décidé d'utiliser une session pour conserver la variable sur le serveur mais cela ne fonctionne toujours pas.

Voici le code simplifié que j'utilise :
<FORM method="POST" action=""> 
<INPUT border=0 src="icone_supprimer.gif" width="16" height="16" alt="Supprimer MEP" title="Supprimer MEP" type=image Value=submit> 
<input type="hidden" class="required" name="suppr_mep_id" value="test2"/> 
</FORM> 
<?php 
/*Initialisation de la session*/ 
session_start(); 
/*initialisation de la variable id_suppr*/ 
$_SESSION['id_suppr'] = 'test1'; 

if(isset($_POST[suppr_mep_id])) 
 { 
  echo '<form action="" method="post"> 
  <p><center> 
  <input type="submit" name="confirmer" value="Confirmer" /> <input type="submit" name="annuler" value="Annuler" /></center></p></form>'; 
  $_SESSION['id_suppr'] = $_POST[suppr_mep_id]; 
 } 
   
if (isset($_POST['confirmer'])) 
 {  
  echo 'confirmer suppression id:'; 
  $id = $_SESSION['id_suppr']; 
 }  
  
?> 


A l'éxécution, le script affichera test1 (valeur d'initialisation de $_SESSION['id_suppr']) au lieu de test2 (valeur du champ caché du formulaire).
Si quelqu'un pouvait m'apporter de l'aide sur ce problème de session ou m'expliquer comment faire simplement avec des variables, je serai ravie parce que j'y suis depuis hier après midi....

Bonne journée.

A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 févr. 2013 à 13:29
problème de logique de chargement de variable de session sans condition, voir commentaires:
<?php 
session_start(); //a mettre tout au début de la page
?>
<FORM method="POST" action=""> 
<INPUT border=0 src="icone_supprimer.gif" width="16" height="16" alt="Supprimer MEP" title="Supprimer MEP" type="image" Value="submit"> 
<input type="hidden" class="required" name="suppr_mep_id" value="test2" /> 
</FORM> 
<?php 
/*en mettant cette ligne :$_SESSION['id_suppr'] = 'test1'; sans condition donc a chaque affichage de la page:
- au premier affichage de la page tu initialise bien la variable de session avec la valeur test1
- au deuxième affichage tu remets test1, puis comme $_POST['suppr_mep_id'] est isset tu mets bien test2 comme valeur dans la variable de session
- au troisème affichage, tu remets test1, puis comme $_POST['suppr_mep_id'] n'est plus isset la valeur reste à test1
DONC il faut tout simplement supprimer la ligne $_SESSION['id_suppr'] = 'test1';
*/

/*initialisation de la variable id_suppr*/ 
//$_SESSION['id_suppr'] = 'test1'; 

if(isset($_POST['suppr_mep_id'])) 
 {
	echo 'Vous allez supprimer l\'id: '.$_POST['suppr_mep_id'];
  echo '<form action="" method="post"> 
  <p><center> 
  <input type="submit" name="confirmer" value="Confirmer" /> <input type="submit" name="annuler" value="Annuler" /></center></p>
  
  </form>'; 
  $_SESSION['id_suppr'] = $_POST['suppr_mep_id']; 
 } 
   
if (isset($_POST['confirmer'])) 
 {  
  
  $id = $_SESSION['id_suppr']; 
  echo 'confirmer suppression id: '.$id; 
 }  
  
?> 
0
Delphine333 Messages postés 2 Date d'inscription mercredi 27 février 2013 Statut Membre Dernière intervention 27 février 2013
27 févr. 2013 à 14:03
Merci beaucoup pour votre explication. Finalement j'ai pu trouver une solution avant votre réponse. J'ai inséré un champ input caché dans mon formulaire confirmer/annuler avec la valeur id. Utiliser les sessions dans mon cas n'a pas de sens. Néanmoins votre correction me servira pour une autre fonction.

Merci beaucoup
0