Aller au contenu

Cookies


Gamesvideo

Sujets conseillés

Bonjour,

Je souhaiterais savoir comment faire pour créer un cookie avec le pseudo de la personne lors de l'ouverture d'une session pour qu'elle n'est plus besoin de se connecter à chaque fois

Merci d'avance parce que la j'ai vraiment du mal :wacko:

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Créer le cookie lui même n'est pas très compliqué, voici la page complète qui explique comment on s'en sert.

Le problème après, c'est qu'un cookie enregistré sur l'ordinateur des visiteurs n'est pas une information sure. Par exemple si tu envoie directement le cookie du pseudo de la personne, il pourra très bien le modifier et se faire passer pour quelqu'un d'autre.

Ce que je te conseille c'est d'envoyer 2 cookies:

-un identifiant, le plus courant c'est de se servir de l'id du membre

-un code impossible à décrypter et étant unique pour ce membre

Ainsi, même si l'utilisateur essayera de trafiquer l'identifiant (qui peut facilement être trouvé en visitant quelques pages de ton site), il ne pourra pas inventer le code unique.

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi alors lorsque je met ce code, le cookie ne marche pas, je le vérifie avec print_r($_COOKIE) mais je trouve pas mes cookies :gueule:

<?php

session_start();

$pseudo=$_SESSION['pseudo'];

$pass=$_SESSION['pass'];

$passes=md5($pass);

setcookie("login", "$pseudo", time()+86400*30);

setcookie("pass", "$passes", time()+86400*30);

Merci d'avance de votre réponse

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Il ne faut enregistrer le cookie qu'une seule fois, quand tu détecte qu'il n'existe pas (et que tu as les infos à enregistrer).

En gros ca donne :

// Si les cookies n'existent pas ou sont vides
if ($_COOKIE['pseudo'] == "" && $_COOKIE['pass'] ) {

// Init des cookies
setcookie("pseudo", $pseudo, time()+86400*30);
$pass=md5($pass);
setcookie("pass", $pass, time()+86400*30);
}
// SINON tu teste si le mot de passe et le pseudo sont valides

Lien vers le commentaire
Partager sur d’autres sites

Voila j'ai changé le bout de code mais les cookies ne fonctionnent toujours pas :gueule: :

session_start();

$pseudo=$_SESSION['pseudo'];

$pass=$_SESSION['pass'];

$pass=md5($pass);

if ($_COOKIE['pseudo']=="" && $_COOKIE['pass']=="") {

setcookie("login", "$pseudo", time()+86400*30);

setcookie("pass", "$pass", time()+86400*30);

}

Que faire ? :blush:

Lien vers le commentaire
Partager sur d’autres sites

2 choses:

session_start(); est inutile voire même dérengeant dans ce cas, il peut peut être influer sur les cookies.

De plus, il faut que tu n'ais envoyé aucune donnée autre que des header au moment de l'envoi du cookie.

if ($_COOKIE['pseudo']=="" && $_COOKIE['pass']=="")

écrit plutot:

if (isset($_COOKIE['pseudo'],$_COOKIE['pass']))

Je ne sais pas trop comment php se comporte donc il est possible que ton code marche aussi ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Essaye en utilisant :

$HTTP_COOKIE_VARS["pseudo"];

plutot que

$_COOKIE['pseudo']

<{POST_SNAPBACK}>

En quoi cette solution est meilleure ?

Lien vers le commentaire
Partager sur d’autres sites

Ca n'est pas une solution meilleure qu'une autre.

En fait, la méthode d'accès aux cookies dépend de la configuration de php, du paramètre register_globals je crois.

Selon la valeur de ce paramètre tu peux accéder aux cookies (+ les vraiables POST, GET, SESSION, etc) selon l'une ou l'autre des méthodes...

Modifié par NorSeb
Lien vers le commentaire
Partager sur d’autres sites

ok merci.

J'utilise $_COOKIE et j'avoue me perdre un peu parfois avec toutes ces variables globales, leurs avantages et inconvenients.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...