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 :

Contenu d'un cookie


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut Contenu d'un cookie
    Bonjour a tous,

    Au début de ma page login, je creer mon cookie

    <?php
    // génère le cookie
    $contenu = 'non identifier'; // le contenu de votre cookie
    setcookie("CSME", $contenu, time()+36000);
    ?>
    Mais ensuite j'aimerai modifier le contenu du cookie si l'identification a reussi

    $contenu = 'identifier';
    Mais cela ne fait rien ! le contenu reste celui du début, pourquoi ?

  2. #2
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    Comment modifies tu le contenu de ton cookie ? Places tu juste ce code ? comme ceci : ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = 'identifier';
    Montres un peu plus de code.

  3. #3
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    l'écriture dans un cookie se fait via les headers HTTP tu ne peux donc pas modifier ton cookie sans recharger ta page ou utiliser Ajax. C'est pour ça que tu dois placer ton code de création de cookie avant toute sortie HTML.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut
    Enfaite j'ai un formulaire login, qui renvoi a cette page :

    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
    		<?php include('connexion.php'); // appel du script de connexion
     
    			$requete= ("SELECT * FROM inscription WHERE login = '".$_POST["login"]."' AND motdepass = '".$_POST["motdepass"]."'");
    			$resultat=mysql_query($requete);
     
    			echo "voici la requête sql qui va être exécutée : <br />".$requete;
     
    			if ( ! $resultat)//si $resultat contient des valeurs alors je fais le reste
    			{      echo "<h1>echec de la requête</h1>";
    			echo  mysql_error($connexion);//mysql_error(  ) retourne l'erreur qu'a trouvé MySQL
    			}
    			else
    			if ( mysql_affected_rows ( ) ) {//renvoie le nombre de lignes affectées par la dernière requête SQL . On vérifie ici que la 			requête à été exécutée
    			$contenu = 'identifier';  
    			echo "<h1>Connexion reussie !</h1>";
    			}
    			else{
    			echo "<h1>Login / Password mauvais veuillez recommencer.</h1>";
    			}
    			echo '<h3><a href="Accueil.html">Retour a l accueil</a></h3>';
     
    			mysql_close($connexion);
    		?>
    Desole pour l'indentation

    Donc si l'identification reussie le cookie a pour contenu "identifier" voila ce que je voulais faire..

    Mais bon sa marche pas je vois pas comment faire

  5. #5
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Ok je vois,

    Tu as cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = 'identifier';
    Sous cette ligne tu réécrit dans ton cookie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $contenu = 'identifier';
    setcookie("CSME", $contenu, time()+36000);
    En vérifiant bien qu'il n'y ai aucune sortie de texte vers le navigateur avant cette ligne, sinon tu auras une erreur... --> Ceci n'est pas le cas actuellement : tu as un echo au dessus, alors faudra un peu réécrire ton code.

    PS : pense aussi à sécuriser tes requêtes et ne pas faire confiance aux valaurs $_POST :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete= ("SELECT * FROM inscription WHERE login = '".mysql_real_escape_string($_POST["login"])."' AND motdepass = '".mysql_real_escape_string($_POST["motdepass"])."'");

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut
    En vérifiant bien qu'il n'y ai aucune sortie de texte vers le navigateur avant cette ligne
    Peut tu m'expliquer ce que tu appel sortie de texte ?

    Sinon j'essaye tout sa ! tout de suite !

    EDIT:

    Warning: Cannot modify header information - headers already sent by (output started at /mnt/104/sdb/a/c/futsal95600/VerificationLogin.php:8) in /mnt/104/sdb/a/c/futsal95600/VerificationLogin.php on line 22
    La modification du contenu du cookie n'est pas etre pas LA solution a ce que je veut faire

    Je veut juste dire que l'user est loggué moi, pour afficher le contenu d'une autre page .. ou caché ce contenu s'il est "non identifier".

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut
    Bon sa marche merci a tous.

    Jvé faire de spetit test pour etre sur..

    Enfaite pour que s aamrche j'ai fait :

    Formulaire >>

    si le login + pass est bon >>

    redirection html vers une page qui met un cookie >>

    puis dans la page proteger verification qu'on n'est bien loggué >>

    affichage du contenu sinon redireection



    EDIT : Comment on supprime un cookie ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?
    setcookie("CSME");
    ?>
    Sa suffit ?

  8. #8
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Pour supprimer un cookie c'est la bonne méthode, je rajouterais juste qu'on peut aussi effacer la valeur en local pour ne pas faire d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_COOKIE['CSME']);

    Citation Envoyé par lusos
    Je veut juste dire que l'user est loggué moi, pour afficher le contenu d'une autre page .. ou caché ce contenu s'il est "non identifier".
    Pour ce faire, tu as encore plus simple et plus pratique que les cookies, ce sont les sessions.


    Par sortie de texte j'entends tout affichage de texte dans le navigateur. Si tu as un tel affichage (comme par un echo par exemple) et que tu envoi un entête (par header par exemple) ou un cookie, tu aura une erreur comme celle que tu indiques dans ton message.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut
    Oui finalement les sessions sont plus simple !

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

Discussions similaires

  1. Afficher le contenu d'un cookie
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 03/11/2011, 11h10
  2. écriture du contenu d'une variable dans un cookie
    Par laurentSc dans le forum Langage
    Réponses: 5
    Dernier message: 12/12/2009, 18h50
  3. Réponses: 2
    Dernier message: 01/03/2007, 18h05
  4. Pb contenu cookie
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 22/04/2005, 09h55
  5. Comment imprimer le contenu d'un TStringGrid
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/06/2002, 15h41

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