J'ai suivi le tutorial "Introduction to PHP Sessions" trouvé sur :
<http://www.phpfreaks.com/>
ainsi que la "FAQ PHP de PHPIndex V2.1.1".
J'ai réalisé trois types d'essais :
1 - vérifier que je sais passer une variable par "session" entre
plusieurs pages, c'est OK ;
2 - vérifier que je sais sérialiser dé-sérialiser un tableau, c'est OK ;
3 - essayer d'utiliser les deux méthodes précédentes afin de passer un
tableau associatif entre page (l'essai porte sur un cas simple : le
tableau représente la date du jour : jour, mois, annee, heure minute) .
C'est l'essai - 3 - qui pose problème
- le tableau est sérialisé correctement, il apparaît bien dans la liste
des variables de session (quand je fais un "print_r ($_SESSION );") MAIS
il est vide !!!
C'est là qu'est mon pb où vous pourriez m'apporter qq lumières.
Mon set-up : MacOS X.2.6 PHP Version 3.3.2 (compilée et packagée par
Marc Liyanage).
Comme je suis curieux, je suis allé jeter run oeil sans /private/tmp là,
j'ai bien un fichier :
sess_3d4f0a699b6308459bdeb91f98e9ed26
correspondant à l'ID de ma session MAIS, son contenu est SEULEMENT :
dateDuJourTabSer|N; ????
donc il y a bien le nom du tableau sérialisé mais pas son contenu...
dans mon /usr/local/php/php.ini j'ai bien :
session.save_handler files (confirmé par manip ci-dessus)
session.serialize_handler php (ce que je souhaite)
bizarrement, j'ai l'impression que, depuis que j'ai mis ce php.ini (il
n'y en a pas par défaut), le temps de réponse de php est nettement plus
lent...
je suis sûr que c'est ce fichier d'init (ie. /usr/local/php/php.ini) qui
est lu pour deux raisons :
1 - ce'st ce que me dit mon phpinfo()
2 - j'ai changé le mbstring.internal_encoding de EUC-JP (valeur donnée
dans le php.ini-recommanded ???) pour UTF-8 et depuis les accents
passent sans pb...
Les deux scripts :
--Celui qui enregistre le tableau sérialisé--------------------------
<html><body>
<?php
session_start();
header("Cache-control: private");// IE 6 Fix.
session_register('dateDuJourTabSer');
$dateDuJourTab = array( 'jour' => date("d"), 'mois' => date("m"),
'annee' => date("y"), 'heure' => date("H"), 'minute' => date("i"));
$dateDuJourTabSer = serialize($dateDuJourTab);
?>
Date du jour :<br/><? foreach ($dateDuJourTab as $c => $v) {echo "$c =>
$v<br/>";} ?><br/>
<a href="essai2.php">Vérifier si ça marche !</a><br/>
<a href="session-vars.php">Variables de session</a><br/>
</body></html>
---------------------------------------------------------------------
--Celui qui lit le tableau sérialisé---------------------------------
<html><body>
<?php
session_start();
header("Cache-control: private");// IE 6 Fix.
session_register('dateDuJourTabSer');
$dateDuJourTabNew = unserialize($dateDuJourTabSer);
?>
Date du jour :<br/><? foreach ($dateDuJourTabNew as $c => $v) {echo "$c
=> $v<br/>";} ?><br/>
<a href="essai1.php"><< Retour</a><br/>
<a href="session-vars.php">Variables de session</a><br/>
</body></html>
---------------------------------------------------------------------
--
Yvon Thoraval
http://OrganisationPolitique.com hébergé par :
http://ouvaton.coop/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
yvon.thoravallist
Yvon Thoraval wrote:
C'est l'essai - 3 - qui pose problème - le tableau est sérialisé correctement, il apparaît bien dans la liste des variables de session (quand je fais un "print_r ($_SESSION );") MAIS il est vide !!!
bon, comme je sents que vous fatiguez, je vous donne, en mille, la réponse :
$_SESSION['dateDuJourTabSer']=$dateDuJourTabSer;
(a ke ce ke javais zoublié...) -- Yvon Thoraval http://OrganisationPolitique.com hébergé par : http://ouvaton.coop/
C'est l'essai - 3 - qui pose problème
- le tableau est sérialisé correctement, il apparaît bien dans la liste
des variables de session (quand je fais un "print_r ($_SESSION );") MAIS
il est vide !!!
bon, comme je sents que vous fatiguez, je vous donne, en mille, la
réponse :
$_SESSION['dateDuJourTabSer']=$dateDuJourTabSer;
(a ke ce ke javais zoublié...)
--
Yvon Thoraval
http://OrganisationPolitique.com hébergé par :
http://ouvaton.coop/
C'est l'essai - 3 - qui pose problème - le tableau est sérialisé correctement, il apparaît bien dans la liste des variables de session (quand je fais un "print_r ($_SESSION );") MAIS il est vide !!!
bon, comme je sents que vous fatiguez, je vous donne, en mille, la réponse :
$_SESSION['dateDuJourTabSer']=$dateDuJourTabSer;
(a ke ce ke javais zoublié...) -- Yvon Thoraval http://OrganisationPolitique.com hébergé par : http://ouvaton.coop/
romuald
Yvon Thoraval wrote:
(a ke ce ke javais zoublié...)
Au passage je ne crois pas qu'il soit utile de sérialiser ton tableau avant de le passer en session. Le PHP s'en charge tout seul normalement (donc tu sauvegarde et retrouve ton tableau tel quel)
Au passage je ne crois pas qu'il soit utile de sérialiser ton tableau
avant de le passer en session. Le PHP s'en charge tout seul normalement
(donc tu sauvegarde et retrouve ton tableau tel quel)
Au passage je ne crois pas qu'il soit utile de sérialiser ton tableau avant de le passer en session. Le PHP s'en charge tout seul normalement (donc tu sauvegarde et retrouve ton tableau tel quel)
Au passage je ne crois pas qu'il soit utile de sérialiser ton tableau avant de le passer en session. Le PHP s'en charge tout seul normalement (donc tu sauvegarde et retrouve ton tableau tel quel)
Ah ouais, merci, c'est pas la peine de se casser le tronc...
Question, tant que j'y suis je dois faire donc : session_register('qqChiffresTab'); $_SESSION['qqChiffresTab']=$qqChiffresTab;
et je voudrais mettre ces deux lignes dans une founction du genre myRegister() MAIS je ne voudrais avoir à passer en argument que la variable ici $qqChiffresTab puis-je récupérer son nom (ie 'qqChiffresTab' donc sans le $) pour automatiser la chose ?
-- Yvon Thoraval http://OrganisationPolitique.com hébergé par : http://ouvaton.coop/
Romuald Brunet <romuald@chivil.com> wrote:
Au passage je ne crois pas qu'il soit utile de sérialiser ton tableau
avant de le passer en session. Le PHP s'en charge tout seul normalement
(donc tu sauvegarde et retrouve ton tableau tel quel)
Ah ouais, merci, c'est pas la peine de se casser le tronc...
Question, tant que j'y suis je dois faire donc :
session_register('qqChiffresTab');
$_SESSION['qqChiffresTab']=$qqChiffresTab;
et je voudrais mettre ces deux lignes dans une founction du genre
myRegister() MAIS je ne voudrais avoir à passer en argument que la
variable ici $qqChiffresTab puis-je récupérer son nom (ie
'qqChiffresTab' donc sans le $) pour automatiser la chose ?
--
Yvon Thoraval
http://OrganisationPolitique.com hébergé par :
http://ouvaton.coop/
Au passage je ne crois pas qu'il soit utile de sérialiser ton tableau avant de le passer en session. Le PHP s'en charge tout seul normalement (donc tu sauvegarde et retrouve ton tableau tel quel)
Ah ouais, merci, c'est pas la peine de se casser le tronc...
Question, tant que j'y suis je dois faire donc : session_register('qqChiffresTab'); $_SESSION['qqChiffresTab']=$qqChiffresTab;
et je voudrais mettre ces deux lignes dans une founction du genre myRegister() MAIS je ne voudrais avoir à passer en argument que la variable ici $qqChiffresTab puis-je récupérer son nom (ie 'qqChiffresTab' donc sans le $) pour automatiser la chose ?
-- Yvon Thoraval http://OrganisationPolitique.com hébergé par : http://ouvaton.coop/