Création de COOKIE - Page 2
Résolu
Précédent
- 1
- 2
-
Bonjour
oui il s'affiche bien j'ai fait<h4>contenu du cookie</h4> <?php var_dump($_COOKIE);?>
Lorsque je clique sur se déconnecter ça supprime le COOKIE donc ça c'est bon, mais si je ferme simplement mon navigateur je suis obligé de me reconnecter mais le COOKIE est toujours présent.
Bizarre!! -
normale , un cookie dure le temps indiqué , et non pas le temps d'un onglet ou d'un naviguateur sinon ca reviens à faire une variables ;)
-
Bonjour
oui je comprends ça mais pourquoi en ayant un COOKIE sur mon PC je suis obligé de me reconnecter?
Le COOKIE dure 3 jours dans mon exemplesetcookie('clique', $donnees['id_adherent'] . sha1($donnees['login'] . $donnees['pass'] . $_SERVER['REMOTE_ADDR']), time() + 3600 * 24 * 3, '/', 'localhost', false, true);
Merci -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour
Je te joint le fichier index.php, le fichier de mon formulaire et le fichier de vérification.
9a concerne ses 3 fichiers en fait.
En attendant je te remercie sincérement.
https://www.cjoint.com/?DHno373N0wd -
va faloir me le donner autrement , je ne peux pas le télécharger ^^'
-
Bonjour
Regarde avec ce lien si tu peux sinon comment je pourrai te l'envoyer?
https://www.cjoint.com/c/DHpbqJxRs7F -
Bonjour
Excuse moi je suis toujours avec mes COOKIES que je n'arrive pas à faire fonctionner il faut à chaque fois que je me reconnecte malgrès les COOKIE de créé.
As tu pu télécharger via mon lien.
Encore merci -
-
Bonjour
mais pourquoi en ayant un COOKIE sur mon PC je suis obligé de me reconnecter
Le cookie par lui-même ne te reconnecte pas.
Il faut que dans ta vérification, s'il n'y a pas de formulaire ($_POST['login'] et $_POST['pass'] vides), tu testes les cookies et, s'ils sont là, tu refais la connexion comme si tu venais de recevoir le formulaire. -
Bonjour
Je suis perdu je ne comprend vraiment pas pourquoi que ça ne fonctionne pas, je m'arrache le peu de cheveux que j'ai.
Après avoir créé les variables de SESSION, dans ma page de vérif, j'ai défini la variable setcookie et vérifié si la case à bien été cocher.if(isset($_POST['remember'])){ setcookie('clique', $donnees['id_adherent'] . sha1($donnees['login'] . $donnees['pass'] . $_SERVER['REMOTE_ADDR']), time() + 3600 * 24 * 3, '/' }
Dans ma page index.php j'ai fait les vérif d'usage je ne vois pas où j'ai oublié quelque chose.
Si vous pouvez m'en dire un peu plu s'ils vous plait
Merci beaucoup<?php session_start();?> <?php if(isset($_COOKIE) && !isset($_SESSION)){ $cookieid= intval($_COOKIE["id_adherent"]); # requete pour voir si l'id existe ! $sql = ('SELECT * FROM tb_adherent WHERE id_adherent=:id_adherent') or die(print_r($bdd->errorInfo())); $requete = $bdd->prepare($sql); //on execute la requète en lui transmettant la liste des paramètres $requete->execute(array( ':id_adherent' => $cookieid )); $result = $requete->rowCount(); if($result > 0) { setcookie('clique', $donnees['id_adherent'] . sha1($donnees['login'] . $donnees['pass'] . $_SERVER['REMOTE_ADDR']), time() + 3600 * 24 * 3, '/', 'localhost', false, true); }else{ setcookie('clique', '', time() - 3600, '/', 'localhost', false, true); } } ?> <?php include('connexion/connexion_bdd.php');?> <?php include('fonction/fonction.php');?> -
Bonjour
if(isset($_COOKIE) && !isset($_SESSION))
C'est mal parti...
À partir du moment où tu as faitsession_start();
, la variable $_SESSION est définie et tu ne rentreras jamais dans le if. C'est très facile de s'en rendre compte en faisant unecho 'coucou';
immédiatement au début du 'if'. Il aurait mieux valu tester !isset($_SESSION['id_adherent']), et encore, je ne suis pas persuadé que ce soit utile.
De plus, je vois que tu détruis le cookie dans le else. Donc une fois que la session sera établie, tu passeras par le else et tu effaceras ton cookie ? Et à la prochaine connexion du visiteur, il n'y aura plus de connexion automatique.
Ensuite, le cookie que tu crées s'appelle 'clique', mais celui que tu testes s'appelle 'id_adherent'. Tu ne risques pas de le retrouver.
Ensuite$sql = ('SELECT * FROM tb_adherent WHERE id_adherent=:id_adherent') or die(print_r($bdd->errorInfo()));
Que vient faire ceor die(...
ici ? Il ne sera jamais exécuté.('SELECT *...est une chaîne de caractères non vide, sa valeur logique est donc toujours true et ce qui suit le 'or' ne sera jamais évalué.
Il faut mettre ce 'or...' après ton$bdd->prepare($sql);
car cette expression peut valoir true si tout va bien, et alors le "or die" est ignoré, ou false s'il y a un problème dans la requête, auquel cas le "or die" va être pris en compte.
Ceci étant dit, si tu n'as pas d'erreur dans ta requête, ce point n'empêche pas ton script de marcher.
Enfin, quand tout ira bien et que tu auras bien vérifier la présence du bon cookie, il te restera à faire la même chose que lors d'une connexion par formulaire : tous tes$_SESSION['machin']=$truc;
puis tonredir("index.php?body=compte_profil&type=compte");. -
Merci beaucoup,
Très bien expliqué je devrais pouvoir me sortir de là.
A très bientôt je te tiens au courant.
merci
Précédent
- 1
- 2