Histoire de SESSION et POST
Breub62
Messages postés
3452
Statut
Membre
-
Breub62 Messages postés 3452 Statut Membre -
Breub62 Messages postés 3452 Statut Membre -
Bonjour,
Étant novice en sessions, je souhaite savoir à quel moment après l'envoie d'un formulaire il faut faire
Car je dois toujours envoyer 2 fois mon formulaire pour que $_SESSION=$_POST
C'est à dire qu'à chaque fois ma $_SESSION contient la valeur précédente...
Pénible. Si quelqu'un peu m'aider...
Merci d'avance
Étant novice en sessions, je souhaite savoir à quel moment après l'envoie d'un formulaire il faut faire
$_SESSION['abc'] = $_POST['abc'].
Car je dois toujours envoyer 2 fois mon formulaire pour que $_SESSION=$_POST
C'est à dire qu'à chaque fois ma $_SESSION contient la valeur précédente...
Pénible. Si quelqu'un peu m'aider...
Merci d'avance
5 réponses
-
Bonjour,
Normalement, tu met $_SESSION['abc'] = $_POST['abc'] dans ta page de traitement de ton form et cela doit fonctionner. -
Oui c'est ce que je fais mais ma variable de session ne se met à la valeur du post qu'après rafraichissement ou relance(ce qui est pareil en fait).
-
MA LISTE DÉROULANTE :
<?php //gestion des types de logiciels via un menu déroulant $queryTypeLogiciel = "SELECT * FROM typelogiciel ORDER BY TypeLogiciel"; $resTypeLogiciel = mysql_query($queryTypeLogiciel); echo "<form method='POST' action='index.php?action=GestionLicences' name='menuDeroul'> Selectionnez le type de logiciel : <select name='typeLogiciel' onchange='document.menuDeroul.submit();'>"; if($_SESSION['typeLogiciel'] != 'Autre' && $_POST['typeLogiciel'] != 'Autre') { while($dataTypeLogiciel = mysql_fetch_assoc($resTypeLogiciel)) { if($dataTypeLogiciel['TypeLogiciel'] == $_POST['typeLogiciel'] && $dataTypeLogiciel['TypeLogiciel'] == $_SESSION['typeLogiciel'])//menu déroulant en adéquation avec la sélection faite { echo " <option value=\"".$dataTypeLogiciel['TypeLogiciel']."\" selected=selected>".$dataTypeLogiciel['TypeLogiciel']."</option>"; } else { echo " <option value=\"".$dataTypeLogiciel['TypeLogiciel']."\">".$dataTypeLogiciel['TypeLogiciel']."</option>"; } } echo " <option value='Autre'>Autre</option>"; } else // Si on a choisi "Autre" dans la liste déroulante { while($dataTypeLogiciel = mysql_fetch_assoc($resTypeLogiciel)) { if($dataTypeLogiciel['TypeLogiciel'] == $_SESSION['typeLogiciel'] && $dataTypeLogiciel['TypeLogiciel'] == $_POST['typeLogiciel'])//menu déroulant en adéquation avec la sélection faite { echo " <option value=\"".$dataTypeLogiciel['TypeLogiciel']."\" selected=selected>".$dataTypeLogiciel['TypeLogiciel']."</option>"; } else { echo " <option value=\"".$dataTypeLogiciel['TypeLogiciel']."\">".$dataTypeLogiciel['TypeLogiciel']."</option>"; } } echo " <option value='Autre' selected='selected'>Autre</option>"; } echo "</select> <input type=submit value='OK' /> </form>"; echo stripslashes($_POST['typeLogiciel'])." ".stripslashes($_SESSION['typeLogiciel'])." ".$dataTypeLogiciel['TypeLogiciel']; ?>
MON TRAITEMENT :
<?php $_SESSION['typeLogiciel'] = $_POST['typeLogiciel']; if(isset($_SESSION['typeLogiciel']) || isset($_POST['typeLogiciel'])) //Si le type de logiciel a été choisi dans la liste déroulante on affiche les logiciels correspondants { if(mysql_real_escape_string($_SESSION['typeLogiciel']) == 'Autre') // Si on a choisi Autre { include('AjoutTypeLogiciel.inc.php'); } else //selon le type choisi on affiche la liste des logiciels correspondants { $typeLogiciel = $_SESSION['typeLogiciel']; $queryListeLogiciel = "SELECT * FROM logiciel, typelogiciel WHERE logiciel.NumTypeLogiciel = typelogiciel.CodeTypeLogiciel AND logiciel.NumTypeLogiciel = (SELECT CodeTypeLogiciel FROM typelogiciel WHERE TypeLogiciel = '".$typeLogiciel."')"; $resListeLogiciel = mysql_query($queryListeLogiciel); echo "<table border=1 width=100%><tr> <td><strong>Type de logiciel</strong></td> <td><strong>Nom du logiciel</strong></td> <td><strong>Nombre de licences achetées</strong></td> <td><strong>Nombre de licences installées</strong></td> <td><strong>Action</strong></td></tr>"; while($dataListeLogiciel = mysql_fetch_assoc($resListeLogiciel)) { echo "<tr><td>".$dataListeLogiciel['TypeLogiciel']."</td> <td><a href='index.php?action=ConsultLogiciel&NumLogiciel=".$dataListeLogiciel['NumLogiciel']."' title='Consultation des caractéristiques du logiciel'>".$dataListeLogiciel['NomLogiciel']."</a></td> <td>".$dataListeLogiciel['NbLicencesAchetees']."</td> <td>".$dataListeLogiciel['NbLicencesInstallees']."</td> <td><a href='index.php?action=ModifierLogiciel&NumLogiciel=".$dataListeLogiciel['NumLogiciel']."' title='Permet de modifier un logiciel'>Modifier</a> / <a href='index.php?action=InstallerLogiciel&NumLogiciel=".$dataListeLogiciel['NumLogiciel']."' title='Permet de signaler sur quelles machines le logiciel est installé'>Installer logiciel</a></td></tr>"; } echo "</table>"; echo "<table width=100%><tr>"; echo "<td align=left><a href=\"index.php?typeLogiciel=".$typeLogiciel."&action=NouveauLogiciel\" title='Ajoute un nouveau logiciel '>Ajouter nouveau : ".stripslashes($typeLogiciel)."</a></td>"; echo "</tr></table>"; } } ?> -
Bah tu as oublié de démarrer la session : session_start(); à chaque fois que tu veux utiliser des sessions dans un scipt.
Exemple:
<?php
session_start();
$_SESSION['abc'] = $_POST['abc']
.
.
.
?> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Non en fait je gère toute mon appli via un index.php qui appelle mes diverses pages selon les cas.
Donc mon session_start(); se trouve en haut de mon index qui est appelé à chaque action du client...