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] Disparition d'un cookie


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut [Cookies] Disparition d'un cookie
    Bonjour,

    Je voudrais créer un cookie contenant la clé d'un utilisateur. Or, après la création de celui-ci, lorsqu'une nouvelle page est chargée, mon cookie dispataît.

    Voici mon code :

    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
    ?php /* Date de création: 10/04/2006 */ 
    session_start();
    setcookie("cleUtilisateur", "");
    include("../fichiersAnnexes/fonctionsPhp.inc");
    $login = $_POST['login'];
    $psw = $_POST['psw'];
    $connect = connection("../Pages/identification.php"); 
    $requete = "select cle from utilisateurs where login = '$login' and psw = '$psw'" ;
    $result = mysql_query($requete, $connect);
    $row = mysql_numrows($result);
     
    if ($row)
     {
      $row = mysql_fetch_array($result);
      $_COOKIE['cleUtilisateur'] = $row[0];
      $_SESSION['erreur'] = "Vous êtes à présent connecté. Vous pouvez enchérir ou ajouter un commentaire ";
      include("../Pages/identification.php");
      mysql_close($connect);
     } 
    else
     {
      renvoiErreur("Votre login ou mot de passe est erronné. Veuillez les réencoder", "../Pages/identification.php", $connect); 
     } 
    ?>
    Lorsque je teste l'existance de mon cookie sur la page "identification.php", tout est OK, mais dès que je charge une autre page du site, mon cookie disparaît.

    Merci d'avance pour votre aide.

    Christophe.

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    comment l'appelle tu dans les autres pages?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     setcookie("cleUtilisateur", "");
    +
    $_COOKIE['cleUtilisateur'] = $row[0];
    = inutile
     
    seulement 
    setcookie("cleUtilisateur", $row('0']);
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Dans les autres pages, je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(!empty($_COOKIE['cleUtilisateur']))
     ...
    Quant à l'affectation de mon cookie, j'ai dû effectuer de la sorte car sinon j'avais une erreur de haeder.

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ($row)
     {
      $row = mysql_fetch_array($result);
      $_COOKIE['cleUtilisateur'] = $row[0];
    echo $_COOKIE['cleUtilisateur'];
      $_SESSION['erreur'] = "Vous êtes à présent connecté. Vous pouvez enchérir ou ajouter un commentaire ";
      include("../Pages/identification.php");
      mysql_close($connect);
     }
    je ne suis pas sur que ton cookie soit vraiment valable
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Mon cookie me semble valable, car je l'ai testé de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['erreur'] = "Vous êtes à présent connecté. Vous pouvez enchérir ou ajouter un commentaire et la clé est " . $_COOKIE['cleUtilisateur'];
    Apparaissait alors bien sur ma page "identification.php" le texte "Vous êtes à présent connecté. Vous pouvez enchérir ou ajouter un commentaire et la clé est numéro_de_clé"

  6. #6
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    effectivement
    Dans firefox, as-tu regarder si le cookie était encore physiquement la?
    outils->option->cookie->afficher les cookies
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  7. #7
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setcookie("cleUtilisateur", "");
    Faudrait déja savoir comment les cookies fonctionnent... si tu ne leur donne pas de valuer et de durée de vie il sont imédiatement détruit... .. .

    setCookie()

    Si l'argument value est une chaîne vide ou vaut FALSE et quelques autres arguments sont exactements les mêmes que lors du positionnement du cookie, alors le cookie sera effacé du client.
    @ tchaOo°

  8. #8
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    J'avais déjà effectué le test en ajoutant une durée de vie au cookie, mais rien n'y changeait. Cette fois, je suis allé un peu plus loin en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    setcookie("cleUtilisateur", "xxxx", (time() + 3600));
    .....
    $_COOKIE['cleUtilisateur'] = $row[0];
    , mais cela ne change rien non plus.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Lorsque je teste l'existence de mon cookie sous ff, je ne le retrouve pas. La seule variable que je vois, c'est PHPSESSID.

  10. #10
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Alors trois choses... .. .

    -1- quand tu crée ton cookie avant de tester son existance tu recharge la page ou tu fais tout à la suite dans la même page... la création du cookie n'est prise en compte qu'au rechargement... .. .

    -2- les cookie ne fonctionnent pas comme les session il faut écrire dedans et non pas incrémenter la variable $_COOKIE donc tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setcookie("cleUtilisateur", $row[0], (time() + 3600));
    -3- as tu regardé dans les options de firefox si le cookie existait comme wamania t'a dit... .. .

    @ tchaOo°

  11. #11
    Membre très actif
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Par défaut
    Bonjour j'ai un peu le même problème.

    Dans ma page connection, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setcookie ("invautologin", $_SESSION["smartlogin"]."#".$_SESSION["smartpwd"], time()+1728000);
    dans la page suivante lorsque j'affiche phpinfo(32) j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    HP_SELF 	/monsite/page.php
    _REQUEST["PHPSESSID"]	1138acbf5d36f978b7b5037c2f5530fe
    _COOKIE["PHPSESSID"]	1138acbf5d36f978b7b5037c2f5530fe
    _SERVER["COMSPEC"]	...
    mais pas de _COOKIE["invautologin"]. Pourtant il est bien visible sous FF dans les options.

    Ok j'ai eut ma réponse: il faut ajouté si tu veux qu'il puisse être récupéré partout, il faut que tu spécifie "/" dans le path.

    soit: setcookie ("invautologin", $_SESSION["smartlogin"]."#".$_SESSION["smartpwd"], time()+1728000,'/');

    --------------------------------------------------------------------------


    Par contre maintenant je n'arrive pas à le détruire. Dans une autre page je fais: setcookie ("invautologin", " ",time()-100,'/');

    mais dans le phpinfo(32); il est tojours là idem dans les options de FF

Discussions similaires

  1. [Cookies] Disparition de variables de session
    Par BlindeKinder dans le forum Langage
    Réponses: 7
    Dernier message: 12/11/2007, 14h20
  2. Réponses: 8
    Dernier message: 21/05/2007, 23h59
  3. [Cookies] Problème avec les cookies
    Par Vlacar dans le forum Langage
    Réponses: 6
    Dernier message: 23/05/2006, 10h11
  4. Réponses: 9
    Dernier message: 18/05/2006, 14h37
  5. [Cookies] Sauver valeur $_SESSION => cookies
    Par psykbe dans le forum Langage
    Réponses: 3
    Dernier message: 14/03/2006, 12h37

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