pb de session avec un lien php

pb de session avec un lien php - PHP - Programmation

Marsh Posté le 11-07-2007 à 16:17:34    

Bonjour
 
j'ai un petit problème de session : je veux faire un calendrier, stocker le mois du calendrier en cours dans une session. Je met session_start(); au début, puis je stocke le mois en cours ($mois) dans une session. voilà mon lien qui ne marche pas :
<a href="admin.php?mois=<?php echo $mois_suivant; ?>&amp;an=<?php echo $an_suivant; ?>">
Sans session_start() tout fontionne a merveille, si je le rajoute je ne peux plus naviguer à travers les mois. Une idée d'ou vient le pb ?
autre question : quand on met le ? apres la page du lien (ici admin.php) c'est pour changer la valeur des variables ?
Merci d'avance :-)

Reply

Marsh Posté le 11-07-2007 à 16:17:34   

Reply

Marsh Posté le 11-07-2007 à 18:06:09    

comment stockes tu tes variables de sessions?
 
le '?' est pour mettre des parametres a ta page

Reply

Marsh Posté le 11-07-2007 à 18:13:32    

je stocke ma variable comme celà :
$_SESSION['mois']=$mois;
 
apparemment le problème ne vient pas de là, juste en mettant session_start(); je ne peux plus naviguer a travers les mois. Si je met session_destroy à la fin ca fonctionne mais bon je n'ai plus rien lol. Je suis perdu :-(

Reply

Marsh Posté le 11-07-2007 à 23:42:13    

met plus de code ...

Reply

Marsh Posté le 12-07-2007 à 00:20:07    

hercule29 a écrit :


autre question : quand on met le ? apres la page du lien (ici admin.php) c'est pour changer la valeur des variables ?


Ben, c'est pour séparer le nom du fichier ("admin.php" ) des paramètres que tu lui fournis en get (an=1912&mois=05) [:le kneu]
 
Pour le reste, plus de code serait cool ouais.


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 12-07-2007 à 16:20:56    

ok merci bien. Euhh dur de mettre + de code yen a des pages et des pages lol. Je viens de retester en mettant juste session-start(); ca passe, mais des que j'utilise $_SESSION['mois']=$mois; (ou toute autre variable dans la session) je ne peux plus naviguer dans le calendrier. Voilà un morceau du calendrier, juste les boutons de navigation
 
<td width="150" class="date"><div><?php echo $mois_en_clair," ", $an; ?></div></td>
        <td width="38"><div align="right"> <a href="admin7.php?mois=<?php echo $mois_prec; ?>&amp;an=<?php echo $an_prec; ?>"> <img src="../calendrier_chambres/img/prec.png" width="31" height="30" border="0" title="Mois précédent" /> </a> </div></td>
        <td width="26"><div> <a href="admin7.php?mois=<?php echo $mois_suivant; ?>&amp;an=<?php echo $an_suivant; ?><?php session_destroy();?>"> <img src="../calendrier_chambres/img/suiv.png" width="31" height="30" border="0" title="Mois suivant" /> </a> </div></td>

Reply

Marsh Posté le 12-07-2007 à 16:43:50    

balise [ code=php ] [ /code ] ce serait plus lisible ;)

 
Code :
  1. <td width="150" class="date"><div><?php echo $mois_en_clair," ", $an; ?></div></td>
  2.        <td width="38"><div align="right"> <a href="admin7.php?mois=<?php echo $mois_prec; ?>&amp;an=<?php echo $an_prec; ?>"> <img src="../calendrier_chambres/img/prec.png" width="31" height="30" border="0" title="Mois précédent" /> </a> </div></td>
  3.        <td width="26"><div> <a href="admin7.php?mois=<?php echo $mois_suivant; ?>&amp;an=<?php echo $an_suivant; ?><?php session_destroy();?>"> <img src="../calendrier_chambres/img/suiv.png" width="31" height="30" border="0" title="Mois suivant" /> </a> </div></td>
 

edit : rajoute un error_reporting(E_ALL); au début de ton code, histoire d'être sûr qu'il t'affiche toutes les erreurs...
Et sinon le session_destroy() en plein milieu du HTML c'est très très crade :/
et utilise du CSS pour la mise en forme... Ca a rien à voir avec ton pb mais tant qu'on y est...


Message édité par theredled le 12-07-2007 à 16:50:55

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 12-07-2007 à 17:03:31    

Ah oui le session_destroy j'ai oublié de l'enlever ct pour tester :-)
sinon en erreur j'ai :
Notice: Undefined offset: 1 in /homepages/19/.../admin7.php on line 297
 
avec ca en ligne 297 : if($prix[$i+1]==' ')
mais c'est normal dans le tableau j'ai des valeurs ou ya rien


Message édité par hercule29 le 12-07-2007 à 20:30:00
Reply

Marsh Posté le 12-07-2007 à 18:14:41    

ben voila [:dawa]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 16-07-2007 à 12:27:33    

non l'erreur ne vient pas de là, même en affectabnt une valeur ca ne fonctionne pas :-(((

Reply

Marsh Posté le 16-07-2007 à 12:27:33   

Reply

Marsh Posté le 17-07-2007 à 10:46:07    

Bonjour, j'ai une question similaire, et je me dis que peut-être qu'en l'exposant on pourra résoudre nos 2 problèmes.
 
Le système d'identification que j'utilise fonctionne très bien sous Firefox et IE7, mais sous IE6, ça bug. Après quelques tets j'en conclu que les variables de session ne sont pas enregistrées avec IE6. Il me semblait pourtant que c'était juste le rôle du serveur !
 
code du script PHP

Code :
  1. session_start();
  2. /* Récupération des données
  3. -----------------------------------------------------------------------------
  4. Les informations saisies sur le formulaire sont transmises avec la
  5. méthode POST. Il suffit de les récupérer
  6. ---------------------------------------------------------------------------*/
  7. $login = $_POST['login'];
  8. $pass = $_POST['pass'];
  9. /* Vérification des données
  10. -----------------------------------------------------------------------------
  11. Test à partir d'un objet erreur.
  12. ---------------------------------------------------------------------------*/
  13. // Création d'un objet Erreur
  14. $erreur = new Erreur();
  15. /*
  16. TEST 1 : login et mot de passe ne doivent pas être des champs vides
  17. */
  18. if ($login == '') {
  19.  $erreur->ajouter('ID-1-1', 'login', '');
  20. }
  21. elseif ($pass == '') {
  22.  $erreur->ajouter('ID-1-2', 'pass', '');
  23. }
  24. // Traitement des erreurs
  25. if ($erreur->compterErreur() > 0) {
  26. // On sauvegarde le login
  27.  $erreur->sauvegarder($login, 'login');
  28. // On place l'erreur dans une variable de session
  29.  $_SESSION['id_erreur'] = $erreur;
  30. // On redirige vers le formulaire
  31.  header('location: ../identification.php5');
  32.  exit;
  33. }


 
 
Code de la page identification.php5 qui foire :

Code :
  1. session_start();
  2. // Traitement en cas d'alerte
  3. if (isset($_SESSION['id_erreur'])) {
  4.  echo 'il y a une erreur<br>';
  5. }
  6. else echo 'il n\'y a pas d\'erreurs.<br>';


 
Sous firefox et IE7, il affiche "il y a une erreur", alors que sous IE6, "Il n'y a pas d'erreurs".
 
Avez vous une idée : pourquoi le variable de session ne se transmet pas avec IE6 !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed