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 :

Session php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Points : 49
    Points
    49
    Par défaut Session php
    Bonjour,
    je souhaiterai réaliser sur mon site un marque page pour les visiteurs.

    Son but, sur chaque page un bouton "sauver page" permet aux visiteurs de sauvegarder la page et ainsi de la retrouver rapidement en accédant à la page "mespages".

    Ainsi, pour réaliser ce script, j'ai pensé utiliser les sessions php

    Le bouton "sauver page" envoie les données à cette page pour ajouter une session
    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
     
     
    <?php
    session_start();
    $_SESSION['favoris']['titre'] = $titre ;
    $_SESSION['favoris']['url'] = $url;
     
    if ($_POST['ajout'] == "AJOUT")
      {
      $_SESSION['achats'][] = array (
        "url" => $_POST['url'], 
        "titre" => $_POST['titre']
        ); 
      }
      ?>
    <?php  if (! empty($HTTP_REFERER)) {
    	header("Location: $HTTP_REFERER");
    } else {
    	header("Location: mespages.php");
    }
    ?>
    Ensuite, la page mespages.php affiche toute les pages sauvée par le visiteur dans un formulaire balise select afin de permettre au visiteur de pouvoir retourner en 1 clics sur sa page favorite (ps: je fais une include de mespages.php sur chaque page, afin de permettre au visiteur de voir ses pages favorites).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form name="form1" id="form1">
      <select name="maliste" onchange="MM_jumpMenu('parent',this,0)">
    <?
    while (list($titre, $url) = each($_SESSION['favoris'])) {
      echo " <option value=\"$url\">$titre</option>";
    }
    if (!isset($_SESSION)) {echo '<option>Page de favoris</option>';}
     
    ?>
      </select>
    </form>

    Or, avec ce script, je suis confronté à deux erreurs

    La premiére: mon menu ne s'affiche pas correctement, seul la varible titre s'affiche correctement.

    La seconde: a chaque fois que je sélectionne une nouvelle page, la précédente disparait, soit une seule page s'affiche maximum.



    N'étant pas trés callé sur les sessions et aprés avoir lu plusieurs tutoriels, j'en suis toujours au même point ça ne marche pas.

    Donc si quelqu'un pouvait m'aider et je jeter un oeil sur mon code, ça serai vraiment sympa.

    En vous remerciant par avance.

    Thibaut

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    dans ta page traitant ta session remplace ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_SESSION['favoris']['titre'][] = $titre ; 
    $_SESSION['favoris']['url'][] = $url;
    et dans mespages.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <form name="form1" id="form1"> 
      <select name="maliste" onchange="MM_jumpMenu('parent',this,0)"> 
    <? 
    for ($i=0;$i<sizeof($_SESSION['favoris']['titre']);$i++) {
        echo ' <option value=".'$_SESSION['favoris']['url'][$i]'.">
        '.$_SESSION['favoris']['titre'][$i].'</option>';
    }
    if (!isset($_SESSION)) {echo '<option>Page de favoris</option>';} 
     
    ?> 
      </select> 
    </form>
    voilà sa devrait etre bon là
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Points : 49
    Points
    49
    Par défaut Merci beaucoup
    Je te remercie beaucoup pour ton aide, ça marche impec

    le seul truc, c'est si je clique plusieur fois sur le bouton de la meme page, ça m'enregistre la page a chaque fois.

    Y'a t'il une boucle pour éviter ce genre de répétition.


    Merci encore et bonne soirée

  4. #4
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Tu contrôle dans ton tableau de session que la valeur ne s'y trouve pas déjà avec in_array() ou isset() par exemple.
    Consultant idéaliste.

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

Discussions similaires

  1. ZoneAlarm bloque mes variables de session PHP en local
    Par GritNatz dans le forum Sécurité
    Réponses: 3
    Dernier message: 24/06/2006, 14h20
  2. Deboggeur de variables de sessions PHP
    Par joe_le_mort dans le forum Langage
    Réponses: 10
    Dernier message: 14/11/2005, 23h22
  3. [Sécurité] Sessions PHP d'une fenetre à une autre
    Par creascript.com dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2005, 10h10
  4. [Sécurité] Session PHP
    Par lemagicien dans le forum Langage
    Réponses: 8
    Dernier message: 06/10/2005, 16h09
  5. les sessions PHP
    Par smh_master dans le forum Langage
    Réponses: 4
    Dernier message: 31/08/2005, 14h13

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