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 :

[Cookies] Sessions qui disparaissent


Sujet :

Langage PHP

  1. #21
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Peux être que les cookie sont désactivé dans mozilla ?

  2. #22
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    je viens de checker, il autorise les Cookies ...

  3. #23
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 48
    Points
    48
    Par défaut
    bonjour, moi aussi j'ai ce problème, sous ie ça passe, mais pas sous firefox.

    En fait moi, je bosse sur une version test, que je upload ensuite sur la version finale, sur ma version test avec firefox, ça fontionne.

    Je ne comprends rien ... Si quelqu'un a une idée

  4. #24
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    j'ai cerné exactement l'endroit a partir duquel ca merde !

    Alors pour ceux qui connaissent le systeme de template PHPBB :

    La session est vidée, quand j'affiche le contenu de ma page, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $template->pparse('body');
    ...


    Je comprends encore moins ...

  5. #25
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    QQn aurait t'il deja eu un pb avec les sessions, mozilla et les templates phpBB ???

  6. #26
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    Yo !

    Alors si quelqu'un ici utilise utilise des posts, des sessions et les templates PHPBB, ca serait cool qu'il me fasse signe ...

    En fait, le pb se produit quand j'utilise la fonction pparse du systeme de template PHPBB ...
    Je l'ai epluchée jusque la derniere ligne, ya pas de pb ...

    Le seul truc que je vois, c que avant de faire le submit, l'execution repasse dans mon script (je sais pas comment), dc repasse dans le seul endroit ou je valorise ma session, donc ici :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['sesSelectProject'] = $_POST['Project'];
    J'ai fait une bidouille, c a d que je verifie si le POST existe avant de valoriser ma session ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(isset($_POST['Project']))
      $_SESSION['sesSelectProject'] =$_POST['Project'];
    Ainsi, meme s'il retourne a l'endroit de la valorisation de la session alors qu'il ne devrait pas, la session n'est pas ecrasée var je verifie si le POST existe ...

    Par contre, je vois vraiment pas pourquoi je suis obligé de faire ca pour firefox ... vraiment etrange ...

  7. #27
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Fais un echo ou un print_r() de ta variable de session avant le pparse() et un autre après, nous serons fixés.

  8. #28
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    hummmm j'ai répondu dans l'autre sujet mais je voudrais dire une chose...ta page dois avoir des if et etc....pour permettre l'affichage des du template qu'il faut...A moins que je me trompe.

    N'empeche si tu peux pas mettre le bout de code mets un echo dans chaque if afin de voir le lequel qui est appelé à chaque étape.
    Si après ce petit test réalisé le problème n'est toujours pas fixé reviens nous mais evec ton code cette fois-ci

  9. #29
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    Je reviens sur ce problème de sessions, qui est vraiment très très bizarre. Vu que je developpe un autre truc avec des sessions, jvoulais
    revoir ca.

    Ce topic date du mois de février, donc pour ceux qui s'en souviennent pas, je vous fait un rappel.


    * Soucis :


    J'ai un formulaire en 4 étapes, pour gerer les etapes, je passe mon étape en GET sur le meme script -> script.php?step=1 par exemple.

    Pour sauver les choix de l'utilisateur, j'utilise des sessions.
    Lorsqu'on arrive a une étape, je recupere les POST des inputs de l'etape precedente.
    je fais ensuite une sessions par POST recuperé.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['sesSelectPresentation']=$_POST['s_SelectPresentation'];

    J'ai verifié, la session est bien créee.

    Mon soucis, c'est que des que je je valide l'etape (j'ai un bouton next) et que je passe a une autre étape, ma session existe encore, mais elle est vide !
    Elle n'est pourtant jamais ecrasée !
    .

    * session_start ? :


    J'ai bien mis un session_start en debut de script


    * C'est fou


    ouais !

    alors la trop bien ! je comprends rien du tout ! Attention :

    Ca marche sous IE !

    Je retourne sous mozilla pour verifier que je suis pas fou, et ca marche pas !!

    PHP c du coté serveur ... quel est le rapport avec le client ?

    * C'est fou 2


    Alors si quelqu'un ici utilise utilise des posts, des sessions et les templates PHPBB, ca serait cool qu'il me fasse signe ...

    En fait, le pb se produit quand j'utilise la fonction pparse du systeme de template PHPBB ...
    Je l'ai epluchée jusque la derniere ligne, ya pas de pb ...

    Le seul truc que je vois, c que avant de faire le submit, l'execution repasse dans mon script (je sais pas comment), dc repasse dans le seul endroit ou je valorise ma session, donc ici :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['sesSelectProject'] = $_POST['Project'];
    Effectivement, si je fais ma page de formulaire avec des echos, ca marche.


    * Bidouille


    J'ai fait une bidouille, c a d que je verifie si le POST existe avant de valoriser ma session ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(isset($_POST['Project']))
      $_SESSION['sesSelectProject'] =$_POST['Project'];
    Ainsi, meme s'il retourne a l'endroit de la valorisation de la session alors qu'il ne devrait pas, la session n'est pas ecrasée var je verifie si le POST existe ...
    Voila, étrange non ?
    On est passé a Firefox 2 now, même soucis.

    Pour ceux qui voudrait essayer de voir ca avec moi, j'ai fait des scripts de base de test. J'ai utilisé les templates car je vous rappelle que c'est avec les template PHPBB que ca plante.


    * Script principal CodePbSessions.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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
     
    <?php
     
    /**
    *	Fichier:	CodePbSessions.php
    *	Auteur:	PA. SCHNEE
    *	But:		Petit bout de code tout simple mettant en avant le problème de sessions avec mozilla et les templates PHPBB
    *	
    */
     
    //echo "<pre align=left>_SESSION: <br>";print_r($_SESSION);echo "</pre>";
    //echo "<pre align=left>POST: <br>";print_r($_POST);echo "</pre>";
     
     
    include('template.php');
     
    session_start();
     
    $get_intStep=0;
    //recuperation des variables GET
    if (isset($_GET["step"])) $get_intStep=$_GET["step"];
    $get_intStep=intval($get_intStep);
     
     
    // tableau de type : Intitulé, Type, Nom, Valeur
    $aInputs=array(
    		/******Step 2 : What ******/
    		array("Nom","text", "s_Nom",""),
    		array("Prenom","text", "s_Prenom",""),
    		array("Adresse","text","s_Adresse",""),
    		array("CP","text", "s_CP",""),
    		array("Mail","text", "s_Mail",""),
    		array("Confirmer Mail","text", "s_ConfMail",""));
     
     
    // Initialisation du template
    $tplBodyHtml = new Template('./templates');
     
    $tplBodyHtml->set_filenames(array(
        'body' => 'template_html_model_headings.tpl'
      ));
     
     
    $tplBodyHtml->set_filenames(array(
        'form' => 'template_html_model_form.tpl'
      ));
     
     
    //Etape 1 
    if($get_intStep==0)
    {	
    	//assignation du formulaire
    	$tplBodyHtml->assign_block_vars('blocForm', array(
    	'LIEN' => "CodePbSessions.php?step=1",
    	'METHOD'  => "POST",
    	));
     
    	//assignation des inputs
    	for($i=0;$i<2;$i++)
    	{
    		$tplBodyHtml->assign_block_vars('blocForm.blocInput', array(
              'HEADINGLEFT' => $aInputs[$i][0],
              'TYPE'  => $aInputs[$i][1],
    		  'NAME'=>$aInputs[$i][2],
    		));
    	}
     
    	//bouton next
    	$tplBodyHtml->assign_block_vars('blocForm.blocInput', array(
              'TYPE'  => "Submit",
    		  'NAME'=>"s_Submit",
    		  'VALUE'=>"Next"));
    }	
     
     
     
    //Etape 2
    else if($get_intStep==1)
    {
     
    	//mise en session des post de l'étape précédente
    	$_SESSION["sesNom"]=$_POST["s_Nom"];
    	$_SESSION["sesPrenom"]=$_POST["s_Prenom"];
     
    	$tplBodyHtml->assign_block_vars('blocForm', array(
    	'LIEN' => "CodePbSessions.php?step=2",
    	'METHOD'  => "POST",
    	));
     
    	//Verif Sessions ==> OK
    	echo "<pre align=left>_SESSION: <br>";print_r($_SESSION);echo "</pre>";
     
    	for($i=2;$i<4;$i++)
    	{
    		$tplBodyHtml->assign_block_vars('blocForm.blocInput', array(
              'HEADINGLEFT' => $aInputs[$i][0],
              'TYPE'  => $aInputs[$i][1],
    		  'NAME'=>$aInputs[$i][2],
    		));
    	}
     
    	$tplBodyHtml->assign_block_vars('blocForm.blocInput', array(
              'TYPE'  => "Submit",
    		  'NAME'=>"s_Submit",
    		  'VALUE'=>"Next"));
    }	
     
    //Etape 3
    else if($get_intStep==2)
    {
    	//mise en session des post de l'étape précédente
    	$_SESSION["sesAdresse"]=$_POST["s_Adresse"];
    	$_SESSION["sesCP"]=$_POST["s_CP"];
     
    	$tplBodyHtml->assign_block_vars('blocForm', array(
    	'LIEN' => "Resultat.php",
    	'METHOD'  => "POST",
    	));
     
    	//Verif Sessions ==> sesNom et sesPrenom sont videés !!
    	echo "<pre align=left>_SESSION: <br>";print_r($_SESSION);echo "</pre>";
     
    	for($i=4;$i<count($aInputs);$i++)
    	{
    		$tplBodyHtml->assign_block_vars('blocForm.blocInput', array(
              'HEADINGLEFT' => $aInputs[$i][0],
              'TYPE'  => $aInputs[$i][1],
    		  'NAME'=>$aInputs[$i][2],
    		));
    	}
     
    	$tplBodyHtml->assign_block_vars('blocForm.blocInput', array(
              'TYPE'  => "Submit",
    		  'NAME'=>"s_Submit",
    		  'VALUE'=>"Next"));
    }	
     
    //résultat du template form dans le template de heading
    $tplBodyHtml->assign_var_from_handle('BODYCONTENT', 'form');
     
    //affichage du body
    $tplBodyHtml->pparse('body');
     
    ?>


    * 1er template : template_html_model_headings.tpl (corprs HTML)


    Tout simple


    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
     
    <html>
    	<head>
    		<title>{TITRE}</title>
    		<link rel="stylesheet" type='text/css' href="{STYLE}"/>
    		<link rel="stylesheet" type='text/css' href="{STYLE2}"/>
    		<!-- BEGIN script -->
    		<script language="JavaScript" type="text/javascript" {script.SRC} >
    			{script.CONTENT}
    		</script>
    		<!-- END script -->	
    	</head>
    	<body class="{CLASS}" text="#202020" link="#707070" vlink="#707070" alink="#707070" OnLoad="Chargement();{ONLOAD}" {BODYSTYLE}>
    		{BODYCONTENT}
    	</body>
    </html>


    * 2ième template : template_html_model_form.tpl (template de formulaire)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <!-- GENERATION DE FORMS -->
    <!-- BEGIN blocForm -->
    <form action="{blocForm.LIEN}" method="{blocForm.METHOD}" onSubmit="{blocForm.SUBMIT}">
    	<!-- GENERATION DE INPUTS -->
    	<!-- BEGIN blocInput -->
    		{blocForm.blocInput.HEADINGLEFT}
    		<input type="{blocForm.blocInput.TYPE}" value="{blocForm.blocInput.VALUE}" name="{blocForm.blocInput.NAME}" size="{blocForm.blocInput.SIZE}" {blocForm.blocInput.MAXLENGHT} {blocForm.blocInput.ISCHECKED} {blocForm.blocInput.ISDISABLED} {blocForm.blocInput.ONCLICK} {blocForm.blocInput.ONCHANGE}/>{blocForm.blocInput.HEADING}
    	<!-- END blocInput -->
    </form>
    <!-- END blocForm -->

    Voila, merci pour votre aide !

  10. #30
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Ce que je vais dire va sembler stupide et inutile mais a tester à mon avis....

    Si vous stockier d'abord les POST dans des variables puis que vous assigniez ces variables dans la session, qu'est ce que cela donne ?

    @+
    cadou

  11. #31
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    Nan, même soucis.

    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
     
    else if($get_intStep==1)
    {
     
    	$strNom=$_POST["s_Nom"];
    	$strPrenom=$_POST["s_Prenom"];
     
    	//mise en session des post de l'étape précédente
    	$_SESSION["sesNom"]=$strNom;
    	$_SESSION["sesPrenom"]=$strPrenom;
     
    	$tplBodyHtml->assign_block_vars('blocForm', array(
    	'LIEN' => "CodePbSessions.php?step=2",
    	'METHOD'  => "POST",
    	));
     
    	//Verif Sessions ==> OK
    	echo "<pre align=left>_SESSION: <br>";print_r($_SESSION);echo "</pre>";
     
    ...
    A l'etape 2 les sessions sont vidées. Car elles sont (etrangement) initialisée une deuxième fois a la valeur des POSTS de Nom et Prenom, qui sont logiquement vide a l'étape 2.

    ca n'interesse personne d'autre ce problème étrange ?

  12. #32
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    Vraiment personne ?

    C'est dommage, j'aurais bien voulu en discuter, voir s'il ya vait une petite explication ... ou si j'avais fait une connerie (mais je vois vraiment pas)...

Discussions similaires

  1. Sessions qui disparaissent mais restent actives
    Par PunkMetal dans le forum Langage
    Réponses: 1
    Dernier message: 05/03/2009, 09h52
  2. Sessions qui disparaissent
    Par Chasseur d'étoiles dans le forum Langage
    Réponses: 14
    Dernier message: 22/08/2008, 09h28
  3. Réponses: 3
    Dernier message: 04/08/2008, 16h33
  4. [Cookies] Session qui n'expire pas comme prévu
    Par zvince dans le forum Langage
    Réponses: 13
    Dernier message: 20/02/2008, 15h27
  5. Variable de sessions qui disparaissent (pseudo-frames)
    Par lecharcutierdelinux dans le forum Langage
    Réponses: 11
    Dernier message: 09/02/2007, 22h25

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