IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variable de session non rafra�chie


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Par d�faut Variable de session non rafra�chie
    Bonjour � tous.

    J'ai un probl�me avec une variable de session. Je vais essayer de vous expliquer la situation pr�cis�ment, sans que ce soit trop lourd non plus....

    Je suis en train de r�aliser une application qui permet le d�p�t de fichier, selon un certain quota.

    Cette application fonctionne de la fa�on suivante :
    Un fichier index.php inclut un fichier upload.php.
    Ce fichier upload.php inclut lui-m�me un fichier calcul_quota.php qui calcule la taille disponible ( partir des donn�es stock�es dans une base de donn�es). calcul_quota.php stocke cette tailel disponible dans une variable de session $_SESSION[taille_max]. Voici le code de mon calcul_quota.php

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    <?php session_start();
    require_once('inc/config.inc.php');
    $proprietaire=$_SESSION['proprietaire'];
    $statut=$_SESSION['statut'];
     
     
    //Récupération espace occupé
    $sql = "select SUM(taille) as taille_utilisee from Fichiers where proprietaire='".$proprietaire."'";
    $query = $bdd->query($sql);
    $result=$query->fetchAll();
    /*echo "<pre>";
    print_r($result);
    echo "</pre>";*/
    $_SESSION[taille_utilisee]=$result[0][taille_utilisee];
    //echo "taille utilisee ".$_SESSION[taille_utilisee]."<br>";
     
     
     
    //Récupération quota
    $sql = "select quota from Droits where statut='".$proprietaire."'";
    $query = $bdd->query($sql);
    $result=$query->fetchAll();
    /*echo "<pre>";
    print_r($result);
    echo "</pre>";*/
    if (count($result)==1) $_SESSION['quota']=$result[0][quota];
    else
    {
    $sql = "select quota from Droits where statut='".$statut."'";
    $query = $bdd->query($sql);
    $result=$query->fetchAll();
    $_SESSION['quota']=$result[0][quota];
    }
    //echo "Quota :".$_SESSION[quota]."<br>";
     
    $_SESSION[espace_disponible]=$_SESSION[quota]-$_SESSION[taille_utilisee];
    $_SESSION[pourc_occ]=100*$_SESSION[taille_utilisee]/$_SESSION[quota];
    //echo "pourcentage :".$_SESSION[pourc_occ];
    $_SESSION[pourc_occ]=round($_SESSION[pourc_occ]);
    $_SESSION[taille_max]=min($_SESSION[espace_disponible],$max_upload_size);
    ?>
    Le fichier upload.php permet ensuite de d�poser un fichier, via un formulaire de type <form action=$_PHP[self] method=POST>. Ce formulaire utilise la variable $_SESSION[taille_max] pour limiter la taille du fichier qui peut �tre d�pos�. Voici le code.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
     
     
    //Formulaire de choix du fichier
    echo "<p> 
            <form method=\"post\" ENCTYPE=\"multipart/form-data\" action=\"".$_PHP['SELF']."\">".
    	 "<p>".$upload_file_choice_message.": 
                <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$_SESSION[taille_max]."\" />
     
    	 <input type=\"file\" name=\"fichier\" lang=\"fr\" /></p>".
     
    	"<p>".$upload_start_date."
    	   <input name=\"date_debut\"><br>
    	<i>".$upload_start_date_default_message."</i></p>".
     
    	"<p>".$upload_stop_date. "
    	    <input name=\"date_fin\"/><br>
    	<b>".$or."</b>"
            .$upload_duration."  
    	<select name=\"duree\">";
    for ($i=1;$i<=15;$i++) 
    {
    echo "<option value=\"".$i."\"";
    if ($i==7) echo " \"selected\"";
    echo "\">".$i;
    }
    echo "</select>";
    echo "<br><i>".$upload_duration_default."</i>";
    echo "</p>";
    echo "	<p>  
    	<input type=\"hidden\" name=\"jeton\" value=\"1\">	
              <input type=\"submit\" value=\"".$upload_submit_label."\" />
            </form>
    </p>
    ";
    (le code pr�c�dent se trouve donc dans upload.php)

    Il me semble que lorsqu'on valide le formulaire, upload.php est recharg�, non ? A ce moment l�, le script calcul_quota.php devrait lui-m�me �tre recharg�, et le calcul de quota devrait se faire.

    Mon probl�me, c'est que �a ne se passe pas bien. Plus pr�cis�ment, la variable de session $_SESSION[taille_max] contient la taille maximum A L'ETAPE PRECEDENTE.
    Autrement dit, lorsque je d�pose un nouveau fichier, la taille maximum qui appara�t est en fait celle qui �tait disponible avant. Il faut que je recharge la page pour avoir la bonne taille. Autrement dit encore, lorsque je d�pose n fichiers, j'ai la taille maximum correspondant aux n-1 premiers fichiers, ce qui est assez g�nant....

    Voil�. Je ne vosi pas o� est l'erreur. Quelqu'un aurait-il la gentillesse de me proposer une explication, voire m�me une solution ?

    Merci beaucoup d'avance

  2. #2
    Membre �prouv� Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    D�cembre 2005
    Messages
    1 348
    D�tails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : balayeur

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 1 348
    Par d�faut
    Salut
    Est ce que la valeur stock�e dans la base de donn�es est � jour?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Par d�faut
    Oui.
    Je pr�cise aussi que si je fais rafra�chir la page, ma variable $_SESSION[taille_max] prend la bonne valeur.

  4. #4
    R�dacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    9 601
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 9 601
    Par d�faut
    On est bien d'accord que tu fais l'include de calcul_quota.php avant d'afficher ton formulaire comme tu nous le montres ? Est-ce normal que ce soit $_SESSION[taille_max] avec taille_max sans guillemets ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Par d�faut
    Citation Envoy� par _Mac_ Voir le message
    On est bien d'accord que tu fais l'include de calcul_quota.php avant d'afficher ton formulaire comme tu nous le montres ?
    Oui oui c'est bien �a.

    Est-ce normal que ce soit $_SESSION[taille_max] avec taille_max sans guillemets ?
    J'ai tent� de les rajouter, mais �a ne change rien....

  6. #6
    Expert confirm�
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par d�faut
    Bonjour

    As tu essay� de mettre un header au d�but de ton fichier index.php qui interdise � cette page de se mettre en cache ?

    J'ai eu le m�me souci avec la connexion � une zone membres, je me connectais sur une page et quand je passais sur une autre page (o� j'�tais all� avant de me connecter) cette derni�re m'affichait que je n'�tait pas connect�... En actualisant la page tout �tait en ordre...

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    100
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 100
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <?php header("Location:index.php"); ?>
    permet de raffraichir la page automatiquement et d'interpr�ter les variables $_SESSION

    c'est un "truc", certainement pas la meilleure solution, le probl�me vient du fait que le php est d�j� ex�cut� lorsque tu veux faire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <?php if (isset($_SESSION['exemple'])) echo $_SESSION['exemple']; ?>

Discussions similaires

  1. R�ponses: 27
    Dernier message: 16/04/2013, 11h09
  2. Variable de session non d�finie
    Par rimbaut dans le forum Langage
    R�ponses: 3
    Dernier message: 16/05/2010, 10h49
  3. variable de Session non trouv�e
    Par reman dans le forum Langage
    R�ponses: 6
    Dernier message: 07/01/2009, 10h25
  4. Variable de sessions non transf�r�es
    Par MaT$oN dans le forum Langage
    R�ponses: 3
    Dernier message: 27/06/2008, 14h04
  5. Variables de sessions non transmises en local
    Par cerveza dans le forum Langage
    R�ponses: 5
    Dernier message: 31/12/2007, 21h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo