Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2285 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP]Problème avec les variables de session

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP]Problème avec les variables de session

n°710686
matlu
Posté le 28-04-2004 à 12:01:27  profilanswer
 

Voilà, je débute en PHP, et j'aimerais bien utiliser des variables de session.
Je viens de faire pas mal de tuto, et j'ai utilisé la fonction recherche du forum, mais je suis tombé sur rien de bien concluant, donc je vous expose mon problème : j'arrive pas à utiliser les variables de session. Je peux sans problème utiliser l'identifiant de session, mais impossible d'utiliser des variables.
 
J'essaie de passer la valeur d'un compteur d'une page à une autre (juste pour des tests), mais la 2eme page n'arrive pas à lire la valeur du compteur
 
Mon code :
 
test1.php

Code :
  1. <?php
  2. session_start();
  3. echo '<html><body>';
  4. if (!isset($_SESSION['compteur'])) {
  5.     $_SESSION['compteur'] = 0;
  6.  echo 'compteur non assigné';
  7. } else {
  8.      $_SESSION['compteur']++;
  9.  echo 'compteur assigné';
  10. }
  11. echo 'Compteur : '.$_SESSION['compteur'].'<br/>';
  12. echo session_id();
  13. echo '<br/><a href="test2.php">Cliquez ici</a><br/>';
  14. if (!isset($_SESSION['compteur'])) {
  15.     $_SESSION['compteur'] = 0;
  16.  echo 'compteur non assigné';
  17. } else {
  18.      $_SESSION['compteur']++;
  19.  echo 'compteur assigné';
  20. }
  21. echo '</body></html>';
  22. ?>


 
test2.php

Code :
  1. <?php
  2. session_start();
  3. echo $_SESSION['compteur'].'<br/>';
  4. echo session_id();
  5. ?>


 
Et quand j'arrive à test2.php, je ne vois que l'ID de la session, et pas la valeur du compteur...
 
J'espère que c'est juste une erreur toute con !!
Merci à vous !
 
Eidt : j'utilise PHP4.3.1


Message édité par matlu le 28-04-2004 à 12:06:39
mood
Publicité
Posté le 28-04-2004 à 12:01:27  profilanswer
 

n°710691
matlu
Posté le 28-04-2004 à 12:07:16  profilanswer
 

kfman a écrit :

Quelle version de PHP ?


4.3.1 : je l'écrivais au moment où tu as posé la question  :)
 
Edit : et tu as supprimé ton message au moment où je te répondais !! lol


Message édité par matlu le 28-04-2004 à 12:07:48
n°710692
kfman
Credo quia absurdum
Posté le 28-04-2004 à 12:08:10  profilanswer
 

En modifiant:
 
echo '<br/><a href="test2.php">Cliquez ici</a><br/>';  
par
echo '<br/><a href="test2.php?'.SID.'">Cliquez ici</a><br/>';  
 
Ca donne koi ?


Message édité par kfman le 28-04-2004 à 12:10:56

---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710694
matlu
Posté le 28-04-2004 à 12:10:13  profilanswer
 

ça écrit test2.php?SID dans la barre d'adresse (chais pas si c normal)
mais de tte façon, j'arrive déjà à le récupérer l'identifiant dans test2.php (avec session_id())

n°710695
kfman
Credo quia absurdum
Posté le 28-04-2004 à 12:11:09  profilanswer
 

Je m'étais planté :o
 
Je vais tester chez moi.


Message édité par kfman le 28-04-2004 à 12:11:37

---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710698
matlu
Posté le 28-04-2004 à 12:12:30  profilanswer
 

ça pourrait pas venir du php.ini ?

n°710703
kfman
Credo quia absurdum
Posté le 28-04-2004 à 12:18:53  profilanswer
 

Mince mon message n'a pas été pris en compte.
C'est justement ce que je te disais...
 
As-tu bien configuré tes sessions dans ce fichier ? (le chemin temporaire par exemple)


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710757
matlu
Posté le 28-04-2004 à 13:16:12  profilanswer
 

ben ouais, je crois...
 

Code :
  1. session.save_path='C:/Program Files/Apache Group/Apache2/htdocs/mat'
  2. session.cookie_lifetime=300


 
y'a d'autres trucs à mettre concernant les sessions ?


Message édité par matlu le 28-04-2004 à 13:17:10
n°710762
kfman
Credo quia absurdum
Posté le 28-04-2004 à 13:20:05  profilanswer
 

Non.
Mais tu peux modifier les rapports du gc pour faire démarrer une fois sur dix par exemple...


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710764
matlu
Posté le 28-04-2004 à 13:22:38  profilanswer
 

kfman a écrit :

Non.
Mais tu peux modifier les rapports du gc pour faire démarrer une fois sur dix par exemple...


euh, g pas compris...
 
tu veux pas m'envoyer ton php.ini ?


Message édité par matlu le 28-04-2004 à 13:33:07
mood
Publicité
Posté le 28-04-2004 à 13:22:38  profilanswer
 

n°710786
matlu
Posté le 28-04-2004 à 13:43:06  profilanswer
 

bon, ben je crois ke je te dois un grand merci !!!
ton php.ini a résolu le pb !!!!!!
 
merci merci merci !!!
 
 :jap:  :jap:  :jap:  
 :love:  :love:  :love:

n°710789
kfman
Credo quia absurdum
Posté le 28-04-2004 à 13:44:31  profilanswer
 

100? [:le kneu]


Message édité par kfman le 28-04-2004 à 13:44:43

---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710796
matlu
Posté le 28-04-2004 à 13:49:22  profilanswer
 

bon, ça les vaut bien, ils t'attendent ds ma poche !!
 
lol

n°710800
kfman
Credo quia absurdum
Posté le 28-04-2004 à 13:50:23  profilanswer
 

LOL
Essaie de voir où était l'erreur quand même... :o


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710803
matlu
Posté le 28-04-2004 à 13:51:30  profilanswer
 

tiens, tant que t'es là, tu saurais pas comment savoir qu'un téléchargement côté client est fini ?
ou alors existe-t-il une instruction bloquante qui fasse en sorte qu'un script php soit bloqué tant que le téléchargement du client n'est pas fini ?

n°710806
matlu
Posté le 28-04-2004 à 13:54:19  profilanswer
 

je sais pas d'où vient l'erreur, parce que tous les paramètres de ton fichier autres que ceux que je t'ai filé sont ceux par défaut (enfin je crois)...
 
EDIT : mon gc_divisor était à 1000 au lieu de 10 pour toi, mais il dit qu'il voit pas le rapport...


Message édité par matlu le 28-04-2004 à 13:58:41
n°710808
kfman
Credo quia absurdum
Posté le 28-04-2004 à 13:54:25  profilanswer
 

100 balles et un Mars, aussi... [:le kneu]
Nan sérieux, explique le contexte...


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710809
matlu
Posté le 28-04-2004 à 13:55:15  profilanswer
 

je fais télécharger une appli au client avec un readfile, et j'aimerais savoir quand il a fini de la télécharger, pour pouvoir logger cet événement

n°710837
kfman
Credo quia absurdum
Posté le 28-04-2004 à 14:08:31  profilanswer
 

Citation :

7.30.69 readfile()
Affiche un fichier
[ Exemples avec readfile ]   PHP 3, PHP 4 , PHP 5
 
int  readfile ( string   filename , bool   use_include_path , resource   context )  
readfile lit le fichier filename et l'envoie à la sortie standard.  
 
readfile retourne le nombre d'octets lus depuis le fichier. Si une erreur survient, retourne FALSE , et à moins que la fonction n'ait été appelée avec @readfile, un message d'erreur est affiché.  
 
Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen pour plus de détails.
 
Vous pouvez utiliser le deuxième paramètre optionnel pour explorer le dossier include_path , en passant la valeur de 1.


 
T'as essayé avec le code de retour ?
 


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710860
matlu
Posté le 28-04-2004 à 14:14:10  profilanswer
 

ouais, mais en fait, ça me met le début de lecture du fichier et la fin dans la même seconde, ce qui, en GPRS, me semble un peu rapide pour un fichier de 100Ko...

n°710878
kfman
Credo quia absurdum
Posté le 28-04-2004 à 14:21:53  profilanswer
 

Sinon en balayant la doc php, tu pourrais peut être essayer ça (jamais testé):
 
- fopen sur ton hote distant en binaire.
- envoi avec fwrite tant que pas feof.
 


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710881
matlu
Posté le 28-04-2004 à 14:23:06  profilanswer
 

ouais, je vais essayer ça

n°710914
kfman
Credo quia absurdum
Posté le 28-04-2004 à 14:34:24  profilanswer
 

kfman a écrit :

Sinon en balayant la doc php, tu pourrais peut être essayer ça (jamais testé):
 
- fopen sur ton hote distant en binaire.
- envoi avec fwrite tant que pas feof.


 
Ou alors avec fsockopen...


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710948
kfman
Credo quia absurdum
Posté le 28-04-2004 à 14:51:50  profilanswer
 

Bon j'ai bricolé ça vite fait. Ca à l'air de fonctionner chez moi....
 

Citation :

<?php
 
$file1 = fopen("belier.doc","rb" ); //ouverture en binaire de belier.doc
 
header("Content-disposition: inline; filename=transfert.xxx" ); //mode download
header("Content-type: application/octet-stream" ); //pour le navigateur
 
while (!feof($file1)) { //tranfert tant que lecture pas finie
$octet = fread($file1,1); //lecture d'un octet
print $octet; //envoi de l'octet vers la sortie standard (navigateur)
}
 
fclose($file1);
 
?>


Message édité par kfman le 28-04-2004 à 14:55:32

---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°710953
matlu
Posté le 28-04-2004 à 14:52:42  profilanswer
 

yep, c'est ce que j'étais en train de regarder, parce que sinon, je vois pas comment écrire ds le flux html avec fwrite

n°711006
matlu
Posté le 28-04-2004 à 15:23:44  profilanswer
 

YEEEEEAAAAAAAHHHHHHHH, ça marche !!!!!!!!
 
enfin ça me met des temps de transfert un peu chelou (7s pour 50Ko en GPRS; ça fait peu), mais bon...
 
encore une fois, MERCIIIIIIII


Message édité par matlu le 28-04-2004 à 15:39:54
n°711573
matlu
Posté le 29-04-2004 à 10:32:40  profilanswer
 

bon, après tests un peu plus poussés, il semble que le temps etre le début et la fin de la boucle ne soit pas le temps de transfert du fichier, mais le temps de lecture du fichier par le serveur...
zut zut zut !!

n°711604
kfman
Credo quia absurdum
Posté le 29-04-2004 à 11:13:33  profilanswer
 

Essaye ce code:
 

Citation :

<?php
 
$scriptname = basename($_SERVER['PHP_SELF']);
$file1 = fopen("belier.doc","rb" ); //ouverture en binaire
$file2 = fopen("$scriptname.log","w+" ); //fichier de log
 
header("Content-Type: application/octet-stream" ); //mode download
header("Content-Disposition: attachment; filename=transfert.xxx" ); //pour navigateur
$start = getmicrotime();
$code = fpassthru($file1); //transfert
$stop = getmicrotime();
 
$diff = round($stop - $start,3);
 
$date = date("D d M Y" );
$heure = date("H:i:s" );
 
fwrite($file2,"$scriptname - $code octet(s) transféré(s) en $diff sec - $date @ $heure" );
fclose($file2);
 
 
/* Fonctions */
 
function getmicrotime(){  
    list($usec, $sec) = explode(" ",microtime());  
    return ((float)$usec + (float)$sec);  
    }  
?>


Message édité par kfman le 29-04-2004 à 11:19:37

---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°711635
matlu
Posté le 29-04-2004 à 11:39:56  profilanswer
 

en fait, je viens de réaliser un truc : ça ne peut pas mesurer le bon temps, parce que je t'ai mal expliqué le contexte dans lequel je me situe : c pour mesurer le temps que met un terminal mobile pour télécharger une appli java.
 
et avec ton code (et je pense qu'en fait, la première version marchait aussi), on mesure le temps que met la gateway pour récupérer l'appli (enfin je suppose)...
 
cela expliquerait les temps super bizarres que j'obtenais (en mettant fread($file1,1024), j'obtenais 1sec pour transférer une appli de 120Ko, ce qui parait impossible en GPRS, mais est déjà beaucoup plus vraisemblable en réseau local...)
 
enfin en tout cas, merci de m'avoir aidé !

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP]Problème avec les variables de session

 

Sujets relatifs
menu déroulant dynamique en phpconnection OLE DB et PHP?
Probleme avec un selectProbleme permutation ligne tableau
PHP - Permuter lignes tableau[PHP]Problème d'insertion bizarre [resolu]
[JAVA/TOMCAT] Variables d'environnementProbleme de compilation
Probleme PHP et Requete 
Plus de sujets relatifs à : [PHP]Problème avec les variables de session


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR