Création de COOKIE
Résolu
labourette
Messages postés
657
Date d'inscription
Statut
Membre
Dernière intervention
-
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterai créer un cookie, mais malheureusement je ne sais pas trop où inclure mes scripts par rapport à mes pages.
Pouvez-vous essayer de m'aiguiller un peu s'ils vous plait.
En vous remerciant.
J'ai une page index.php
J'ai une page ou il y a mon formulaire, voici la case à cocher
Et ma page de vérification
Merci de votre aide.
Je souhaiterai créer un cookie, mais malheureusement je ne sais pas trop où inclure mes scripts par rapport à mes pages.
Pouvez-vous essayer de m'aiguiller un peu s'ils vous plait.
En vous remerciant.
J'ai une page index.php
J'ai une page ou il y a mon formulaire, voici la case à cocher
<div name="SeSouvenir" id="SeSouvenir"> <fieldset class="fieldset_connexion"> <input type="checkbox"><span class="SeSouvenir">Se souvenir de moi</span> </fieldset> </div>
Et ma page de vérification
<?php //on teste si le visiteur a soumis le formulaire if (!empty($_POST)){ //on vérifie si le login et password ne sont pas vide, nulle ou non définie if (!empty($_POST['login']) && (!empty($_POST['pass']))){ $login = Security::clean($_POST['login']); $pass = Security::clean($_POST['pass']); $pass = Security::hash($pass); //on sélectionne les champs que l'on veut récupèrer et on teste les champs login et password $sql = ('SELECT * FROM tb_gestion INNER JOIN (tb_adherent INNER JOIN tb_adherent_gestion ON tb_adherent.id_adherent = tb_adherent_gestion.rid_adherent) ON tb_gestion.id_gestion = tb_adherent_gestion.rid_gestion WHERE login=:login AND pass=:pass') 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( ':login' => $login, ':pass' => $pass )); //on affiche les reponses de la requète dans un tableau $donnees = $requete->fetch(); //si le password est différent on met un message d'erreur if ($donnees['pass'] != $pass){ echo "<span class='erreur_connexion'>Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ?</br>Dans ce cas désolé...</span>"; }else{ //on cré des variables accessibles depuis toutes les pages $_SESSION['login'] = $login; $_SESSION['id_adherent'] = $donnees['id_adherent']; $_SESSION['nom'] = $donnees['nom']; $_SESSION['prenom'] = $donnees['prenom']; $_SESSION['adresse_mail'] = $donnees['adresse_mail']; $_SESSION['demission'] = $donnees['demission']; $_SESSION['nom_gestion'] = $donnees['nom_gestion']; // Utiliser la redirection --------------- redir("index.php?body=compte_profil&type=compte"); } }else{ echo "<span class='erreur_connexion'>Veuillez remplir tous les champs !!!</span>"; } } ?>
Merci de votre aide.
A voir également:
- Création de COOKIE
- Creation de compte google - Guide
- Creation de site web - Guide
- Creation compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Creation compte vinted - Guide
33 réponses
Bonjour
oui il s'affiche bien j'ai fait
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!!
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 exemple
Merci
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 exemple
setcookie('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
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
Bonjour
Regarde avec ce lien si tu peux sinon comment je pourrai te l'envoyer?
https://www.cjoint.com/c/DHpbqJxRs7F
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
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.
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.
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
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
C'est mal parti...
À partir du moment où tu as fait
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
Que vient faire ce
Il faut mettre ce 'or...' après ton
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
if(isset($_COOKIE) && !isset($_SESSION))
C'est mal parti...
À partir du moment où tu as fait
session_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 un
echo '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 ce
or 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 ton
redir("index.php?body=compte_profil&type=compte");.