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] Sauver valeur $_SESSION => cookies


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut [Cookies] Sauver valeur $_SESSION => cookies
    J'ai un petit problème et je ne voit pas la solution à envisager, j'ai un site qui fonctionne principalement avec des variables de sessions. Le problème c'est qu'une partie de ces infos peuvent être sauvé par l'utilisateur et recharger si ils doivent couper le navigateur, redemarrer ...

    Le problème, c'est que je doit créer le cookie avant toute autre chose, mais je doit pouvoir faire un session_start() pour avoir accès aux données à stocker dans ce fameux cookie.

    Ps : le cookie devra contenir plusieurs lignes de données, donc il faudra une boucle pour inscrire les données dans ce cookie.

    J'avait pensé à faire comme ça sur ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    session_start();
     
    for ($i=0;$i<$_SESSION['paniercount'];$i=$i+1)
    	{
    	echo $_SESSION['panier'][$i];
    	echo " X ";
    	echo $_SESSION['panierqty'][$i];
    	echo "<br/>";
    	setcookie("cookie",$_SESSION['panier'][$i].",".$_SESSION['panierqty'][$i],time()+10000);
    	}
    ?>
    mais j'ai une erreur :

    Header already sent - cannot modify ...

  2. #2
    Membre averti Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Points : 448
    Points
    448
    Par défaut
    c'est a cause de tes echos. si t'as vraiment besoin d'afficher ces données, peut-etre que ob_start et ob_end_flush() te seront utiles.

    edit out tout simplement stocker tout ça dans une variable et ne l'afficher qu'apres...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par gofono_bass
    c'est a cause de tes echos. si t'as vraiment besoin d'afficher ces données, peut-etre que ob_start et ob_end_flush() te seront utiles.
    Ca à l'air de marcher, pour ça en tout cas, il me suffira si il faut de refaire une boucle pour afficher après avoir modifié le cookie.

    Autre problème on dirait qu'avec cette boucle, il écrase à chaque fois les données car le cookie à la lecture ne comporte plus que le dernier des champs. Y a-t-il une syntaxe ou opération particulière à effectuer ?

    Pour afficher j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start();
    $monpanier=$_COOKIE['cookie'];
    $tab=split(",",$monpanier);
    $nb=sizeof($tab);
    echo $nb;
    echo $tab[0];
    echo $tab[1];
    ?>
    Donc ici ça m'affiche la partie 1 (0) qui est le produit et la partie 2 (1) qui est la quantité mais du dernier produit de la liste

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Solution trouvée,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setcookie("cookie[$i]",$_SESSION['panier'][$i].",".$_SESSION['panierqty'][$i],time()+10000);
    Pour la création et voici pour la lecture de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    session_start();
    $monpanier=$_COOKIE['cookie'];
    $tab=split(",",$monpanier[$ligne]);
    $nb=sizeof($tab)-1;
    echo $nb;
    echo $tab[0];
    echo " , ";
    echo $tab[1];
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/02/2008, 15h26
  2. Réponses: 2
    Dernier message: 17/08/2007, 13h10
  3. [Cookies] Gardez valeur d'un input
    Par taka10 dans le forum Langage
    Réponses: 7
    Dernier message: 27/06/2006, 16h27
  4. Réponses: 1
    Dernier message: 27/03/2006, 13h55
  5. [Cookies] Récupération des valeurs d'un cookie
    Par titoumimi dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2006, 11h58

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