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 :

cookie avec un nom mais plusieurs resultats


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Par défaut cookie avec un nom mais plusieurs resultats
    bonjour et bonne année a tous,

    donc je vous expose mon cas,

    j'ai un site de petites annonces, j'ai un lien en dessous de chaque annonce "ajouter en favoris", j'utilise donc les cookies pour stocker l'id de l'annonce et pouvoir l'afficher sur la page "favoris",
    ca fonctionne mais dès que je place un nouveau favoris ca ne m'affiche pas celui d'avant, ce que je souhaite dans un premier temps c'est afficher sur ma page favoris tout les favoris que le visiteur a ajouté.

    mon appel au cookie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?php echo $uri2;?>" <?php setcookie('adid', $favoris, time() + 365*24*3600, null, null, false, true);?>   style="color:#fff;text-decoration:none;">Ajouter en favoris</a>
    ma page 'favoris' ou j'affiche le resultat des cookies :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (empty($_COOKIE['adid'])){echo 'Pas de favoris enregistrés';}
    else{
    $adid = $_COOKIE['adid'];
    }
    echo $adid;
    merci pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Utilise une base de données plutôt que des cookies.
    Les cookies sont volatiles car limités dans le temps et liés au navigateur et ne sont pas prévus pour stocker beaucoup de données
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Par défaut
    c'est ce que je pensais faire mais si le nombre de visiteurs qui ajoute des favoris est trop important ca va etre dure a gerer, l'avantage du cookies est qu'il n'a qu'un temps donné, bref je reste campé sur mon idée de cookie, je ne pense pas que le boncoin stock les favoris dans une base vu que quand tu change d'ordi tes favoris ne sont plus la, bref je voudrais juste pouvoir stocker plusieurs id dans un cookie et l'afficher en tableau, j'ai lu pas mal de post et ont ma donné des infos mais dès que je les met en oeuvre ma page se bloque et je suis obligé de supprimer le cookie pour l'afficher de nouveau :

    voici ce que l'on ma donné comme info :

    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
     
    //récupérer le cookie existant
    if (!empty($_COOKIE['favoris']))
        $favoris = json_decode($_COOKIE['favoris'],true);
    else
        $favoris = array();
     
    //Ajouter l'item au cookie existants
    if (!empty($_GET['adid'])) {
        $favoris[]= $_GET['adid'];
        setcookie('favoris', json_encode($favoris), time() + 365*24*3600, null, null, false, true);
    }
     
     
    //Afficher les favoris
    print_r($favoris);
    ?>
     
    <p>
        <a href="?adid=item1">Ajouter item 1</a><br />
        <a href="?adid=item2">Ajouter item 2</a><br />
        <a href="?adid=item3">Ajouter item 3</a><br />
        <a href="?adid=item4">Ajouter item 4</a>
    </p>
    j'ai bien tenté mais dès que je place json_encode($favoris) tout ce plante ...

    quand je reste sur ma fonction ca fonctionne mais que un par un ...

    grrr je sens que je vais pas dormir encore une fois

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    "tout se plante" ? tu peux être plus précis ?

    Il vaut mettre les id en clef, cela évite d'avoir des doublons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $favoris[$_GET['adid']]= 1 ;
    Le $favoris = array(); est un peu exageré : si l'utilisateur revient sur la page, il perd tous les favoris.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Par défaut
    alors j'ai retenté, j'ai mis comme ca pour stocker mon cookie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <a href="<?php echo $uri2;?>" <?php if (!empty($_GET['adid'])) {$favoris[]= $_GET['adid'];setcookie('favoris', json_encode($favoris), time() + 365*24*3600, null, null, false, true);};?>   style="color:#fff;text-decoration:none;">Ajouter en favoris</a>
    et pour le lire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (!empty($_COOKIE['adid']))
        $favoris = json_decode($_COOKIE['adid'],true);
    else
        $favoris = array();
     
     
     //Afficher les favoris
    print_r($favoris);
     
    $sql = "SELECT * FROM phpas_adpics WHERE adid = $favoris";
    j'ai cette erreur sur la page de lecture :

    Array ( ) Erreur SQL !

    Query was empty

    merci a toi pour prendre du temps a m'aider

    j'ai essayé en supprimant mes requetes sql

    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
    <?php
    require_once("initvars.inc.php");
    require_once("config.inc.php");
     
     
    if (!empty($_COOKIE['adid']))
        $favoris = json_decode($_COOKIE['adid'],true);
    else
        $favoris = array();
     
     
     
    //Afficher les favoris
    print_r($favoris);
     
    ?>
    j'ai :

    Array ( )

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le code que tu nous montres au début fonctionne, ce n'est pas la peine de le changer (en dehors des suggestions que je t'ai faite)

    Par contre $favoris est un tableau, tu ne peux pas le placer dans une requête comme ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM phpas_adpics WHERE adid IN (" . explode(",", array_walk( $data, 'intval' )) . ")";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [CR 2008] Requete avec des champs renvoyant plusieurs resultats
    Par caribou_espion dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 13/06/2008, 09h29
  2. Réponses: 2
    Dernier message: 11/12/2006, 14h15
  3. Réponses: 10
    Dernier message: 04/08/2006, 11h12
  4. Réponses: 8
    Dernier message: 12/05/2006, 00h18
  5. Requete assez compliqué avec plusieur resultat
    Par castelligreg dans le forum Access
    Réponses: 3
    Dernier message: 18/04/2006, 23h27

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