Varriable de session vide

cs_DjChat Messages postés 69 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 25 novembre 2010 - 2 juil. 2008 à 20:29
Farfadh Messages postés 68 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 7 juillet 2008 - 3 juil. 2008 à 19:56
Bonjour a tous, j'ai mi mon site une fois terminer sur un serveur mutualiser de OVH et toute les partie ou il y a des variables de sesson ne fonctionne pas.

En local je faisait juste un session start a l'authentification du membre et ca me gardait ces informations en memoire, on ma dit que je devais mettre session start sur tout les pages ou il y a des variables de sesion, ce que j'ai fait, mais rien ne change...

 J'ai fait des echo des variables de session pour voir si il y avait quelque chose dedans, mais il n'y a rien....


J'vous met mon script d'authentification, la ou je recupere les infos de l'utilisateur et apres les pages par ou il passe pour editer son profil.


Authentification:


case "verification" :
 
/*Initialise la session*/
   
   session_start();
   
/*Connection a la BDD*/
   
require_once('connec_bdd.php');
   
   
  /*Verifie si il y a quelque chose dans les variables POST*/
   
    
    if(isset($_POST['nom']) and isset($_POST['motdepasse']))
    
  {  
     
  /*Transfert les données des variables POST dans des variables*/
     
    $pseudo=mysql_real_escape_string($_POST['nom']);
      
    $motdepasse=md5($_POST['motdepasse']);
      
  /*recupere toute les champs de l'utlisateur*/
          $requete "SELECT * FROM utilisateur WHERE nom '$pseudo' AND pass = '$motdepasse'";
    
    
    $result = mysql_query($requete) or die(mysql_error());
    
      
  /*initialise la varible a false*/
      
    $row=false;
      
  /* si row est egale a true alors il transfert les informations dans les variables de sessions*/
      
    if ($row = mysql_fetch_array($result)) {
    
     $_SESSION['id_user']=$row['id_user'];
     $_SESSION['nom']=$row['nom'];
     $_SESSION['texte']=$row['texte'];
     $_SESSION['texte2']=$row['texte2'];
     $_SESSION['statut']=$row['statut']; 
     $_SESSION['droit']=$row['droit']; 
     
     
  /* si le nom de l'utilisteur est egale a celui de l'admin il est rediriger vers sa partie spécifique*/
    
    if ($pseudo == 'Corine Keiflin')
    
   {
    
  /*attribution d'un nouveau numéro de session*/
      
    session_regenerate_id();
      
     header("Location: http://www.art-kateo.fr/pages/corine.php");
      
   }
     
  else
     
  /*Sinon le redirection vers la partie membre*/
     
   {
     
    session_regenerate_id();
     
     header("Location: http://www.art-kateo.fr/pages/action_membre.php");
    
   }   
     
   }
      
     
  /*si il le tableau est a FALSE (vide)*/
     
     
   }
   
    if(!$row)
    
   {
   
    header("Location: http://www.art-kateo.fr/pages/redirect_auth.php");
    
     
   }
   
    break;
   





Sa page d'admin:




<?php
session_start()
?>


<?php
include 'droit.php'
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Administration de Corine</title>
<link href="../css/page.css" rel="stylesheet" type="text/css" />
</head>






         <!--Choix de l'action de l' administrateur-->


              
              
               
               
                 
                
              
              
                
             
              
                
              
              
                
              
              
                
              
              
                
              




</html>





La page ou elle peux modifier son profil et la ou il n'y a rien qui s'affiche:


<?php
session_start()


?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Edition de la partie membre</title>
<link href="../css/page.css" rel="stylesheet" type="text/css" />


<!--Javascript qui verifie si le nombre de caractere n'a pas ete depasser dans les textarea-->


  <script type="text/javascript"> 
        //----------------------- 
        // this_ = objet TEXTAREA 
        // nb_   = longueur maxi du texte 
        //----------------------- 
        function Test( this_, nb_){ 
          //-- Recup. le texte de la TEXTAREA 
          var Texte = this_.value; 
          //-- SI valeur SUP au parametre nb_ 
          if( Texte.length > nb_) 
            //-- Tronquage du texte 
            Texte= Texte.substr( 0, nb_); 
          //-- Reaffectation du texte 
          this_.value = Texte; 
        } 
        </script> 


</head>






          <!--formulaire d'edition du profil-->
        
           <!--sur click renvoi sur traintment_n_membre.php-->


    <!--affiche les valeur de la BDD grace au variables de session-->


        <form method="post" target="contenu" action="traitement_n_membre.php" name="membre">
            
            
        
              '/>
              
              
            
            
        <select name="statut" class="bout_auth2">
        
               <option value="Président(e)" <?php if($_SESSION['statut'] == 'Président(e)') echo 'selected="selected"'; ?>>
               Président(e)</option>
               <option value="Vice président(e)" <?php if($_SESSION['statut'] == 'Vice président(e)') echo 'selected="selected"'; ?>>
               Vice président(e)</option>
               <option value="Trésorier(e)" <?php if($_SESSION['statut'] == 'Trésorier(e)') echo 'selected="selected"'; ?>>
               Trésorier(e)</option>
               <option value="Trésorier(e) adjoint(e)" <?php if($_SESSION['statut'] == 'Trésorier(e) adjoint(e)')
       echo 'selected="selected"'; ?>>Trésorier(e) adjoint(e)</option>
               <option value="Secrétaire" <?php if($_SESSION['statut'] == 'Secrétaire') echo 'selected="selected"'; ?>>
               Secrétaire</option>
               <option value="Secrétaire adjoint(e)" <?php if($_SESSION['statut'] == 'Secrétaire adjoint(e)') 
      echo 'selected="selected"'; ?>>Secrétaire adjoint(e)</option>
               <option value="Membre" <?php if($_SESSION['statut'] == 'Membre') echo 'selected="selected"'; ?>>
               Membre</option>
               
        </select>
               
            
           
               <textarea name="texte" cols="20" rows="5" class="bout_auth2" onkeyup="Test( this, 490);">
    <?php echo $_SESSION[('texte')];?></textarea>
            
            
              
        
               <textarea name="texte2"  cols="20" rows="5" class="bout_auth1" onkeyup="Test( this, 742);">
    <?php echo $_SESSION[('texte2')];?></textarea>
              
            
             
            
            
            
             
               
            
         </form>




    





 



</html>


Avez vous une idée?




Merci d'avance!!!

3 réponses

PlayerMania Messages postés 95 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 28 avril 2009
2 juil. 2008 à 23:05
Pour concerver les var de sessions, il faut qu'un session_start(); se trouve sur toutes les page suivante de la navigation pour bien les garder en mémoire.

Le nom de la variable de session s'écrit sans parenthèse :
$_SESSION['nom']       aulieu de       $_SESSION[('nom')]

éventuellement un souci avec    $row=false;     essaye de l'enlever.

Test voir d'afficher les var de session juste à la fin de l' authentification.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
3 juil. 2008 à 14:25
Salut,

Soit c'est un problème de cookies non acceptés, ou mal configurés (il faut que le domaine et le chemin soient toujours les mêmes). Ou alors, la session n'est pas démarrée correctement.
Dans tous les cas, je pense que la ligne suivante peut t'aider à avancer :
error_reporting(E_ALL);
Parce que je doute que les erreurs soient affichées, et comme tu ne les traites pas correctement, tu ne sais pas où elles se trouvent...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
Farfadh Messages postés 68 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 7 juillet 2008 4
3 juil. 2008 à 19:56
Oui, il est possible que tu rencontres une erreur sans le savoir. Par exemple, il est possible que tu aies un problème en n'utilisant pas ob_start avant session_start si ton hébergeur envoie des données au client à ton insu.

Le mieux à terme, je pense, c'est quand même de s'arranger pour que toutes les erreurs soit sauvegardées dans un journal et que tu puisses en prendre connaissance sans polluer ni suspendre ton site s'il est déjà publié et utilisé.
0
Rejoignez-nous