Cookies
Résolu
troubadour2
Messages postés
277
Date d'inscription
Statut
Membre
Dernière intervention
-
JooS Messages postés 2468 Date d'inscription Statut Membre Dernière intervention -
JooS Messages postés 2468 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de mettre en place un formulaire de connexion et je souhaiterai que l'utilisateur soit reconnu via les cookies.
Je commence tout juste avec PHP et après avoir lu des tutos la-dessus je ne sais pas par quel bout commencer.
Pouvez-vous m'aider ça serai très généreux de votre part.
Merci beaucoup, j'ai un formulaire sans BDD avec mot de passe: ens, login:ens c'est pour débuter afin de mieux comprendre disons plus facilement.
Je suis en train de mettre en place un formulaire de connexion et je souhaiterai que l'utilisateur soit reconnu via les cookies.
Je commence tout juste avec PHP et après avoir lu des tutos la-dessus je ne sais pas par quel bout commencer.
Pouvez-vous m'aider ça serai très généreux de votre part.
Merci beaucoup, j'ai un formulaire sans BDD avec mot de passe: ens, login:ens c'est pour débuter afin de mieux comprendre disons plus facilement.
<form method="post" action="authentification.php" id="formulaire"> <input type="text" name="prenom" id="prenom"/><label for="prenom" class="prenom">Prenom:</label> <input type="text" name="login" id="login"/><label for="login" class="login">Login :</label> <input type="text" name="password" id="password"/><label for="password" class="password">Password :</label> <input type="submit" name="submit" value="Envoyer" id="envoyer"/> </form>
A voir également:
- Cookies
- Supprimer les cookies - Guide
- Cookies manager - Télécharger - Confidentialité
- Extension refuser cookies - Guide
- Ou sont stockés les cookies firefox ✓ - Forum Mozilla Firefox
- Où sont stockés les cookies ? - Forum Windows 10
15 réponses
Salut ...
1 - Tu commence par une condition qui verifie que les champs ont bien été remplis.
2 - Tu sécurise les variables $_POST.
3 - Avec bdd, tu fait une requête vers la base de données qui vérifie si l'utilisateur existe.
3.1 - Si c'est le cas(1), tu vérifie si le mot de passe entré correspond au mot de passe stocké dans la bdd.
3.1.1 - Si c'est le cas(2), alors tu crée un cookie ou tu y stocke par exemple le pseudo de l'utilisateur.
3.1.2 - Si c'est pas le cas(2), tu affiche un message d'erreur, comme quoi le mot de passe est incorrect.
3.2 - Si c'est pas le cas(1), ça veut dire que le pseudo n'existe pas dans la bdd, or, tu peut lui proposer de s'inscrire avec ce dernier.
4 - Sans bdd, je vois pas l'intérêt.
a+
1 - Tu commence par une condition qui verifie que les champs ont bien été remplis.
2 - Tu sécurise les variables $_POST.
3 - Avec bdd, tu fait une requête vers la base de données qui vérifie si l'utilisateur existe.
3.1 - Si c'est le cas(1), tu vérifie si le mot de passe entré correspond au mot de passe stocké dans la bdd.
3.1.1 - Si c'est le cas(2), alors tu crée un cookie ou tu y stocke par exemple le pseudo de l'utilisateur.
3.1.2 - Si c'est pas le cas(2), tu affiche un message d'erreur, comme quoi le mot de passe est incorrect.
3.2 - Si c'est pas le cas(1), ça veut dire que le pseudo n'existe pas dans la bdd, or, tu peut lui proposer de s'inscrire avec ce dernier.
4 - Sans bdd, je vois pas l'intérêt.
a+
Bonjour
Pouvez-vous me dire ou mon script de ma redirection est faux.
Ca ne fonctionne pas tout en sachant que mon login et mot de passe c'est le même "ens" j'ai fait ça pour commencer après je ferai avec une BDD.
Toutes mes vérifications au niveau login et mot de passe sont bien faites.
Merci beaucoup
Pouvez-vous me dire ou mon script de ma redirection est faux.
Ca ne fonctionne pas tout en sachant que mon login et mot de passe c'est le même "ens" j'ai fait ça pour commencer après je ferai avec une BDD.
Toutes mes vérifications au niveau login et mot de passe sont bien faites.
Merci beaucoup
<?php if(!isset($_COOKIE['login'])){ Setcookie('login', 'ens', time()+3600); echo ("c'est votre première visite"); echo ("$_COOKIE['login']."<br/>"; } else{ Setcookie('login', 'ens', time()+3600); echo ("Ce n'est pas votre première visite"); echo ("$_COOKIE['login']."<br/>"; }
Bonjour tu peux me dire si les données dans setcookie c'est juste
en sachant comme je te l'ai dit le login et mot de passe c'est "ens"
Merci
en sachant comme je te l'ai dit le login et mot de passe c'est "ens"
Merci
<?php if(!isset($_COOKIE['login'])){ setcookie('login', 'ens', time()+3600); echo ("c'est votre première visite"); echo ("$_COOKIE['login']."<br/>"; } else{ setcookie('login', 'ens', time()+3600); echo ("Ce n'est pas votre première visite"); echo ("$_COOKIE['login']."<br/>"; }
je ne sais pas ça devrait m'afficher si il y a pas de cookie de créer
au moins "c'est votre première visite" ?
Merci
au moins "c'est votre première visite" ?
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci ça fonctionne
Excuse moi il se peux que j'ai une autre question à se sujet.(cookies)
Je vais regarder ça et je te redit si ça na te dérange pas trop.
Merci
Excuse moi il se peux que j'ai une autre question à se sujet.(cookies)
Je vais regarder ça et je te redit si ça na te dérange pas trop.
Merci
Voilà ce que j'ai fait tout en début de page avant tout code
Tu peux me dire ce que tu en penses
Merci
<?php setcookie('login', 'ens', time() + 365*34*3600, '/', 0); setcookie('password', 'ens', time() + 365*34*3600, '/', 0); ?>
Tu peux me dire ce que tu en penses
Merci
sur le site que je teste en local c'est pour éviter que ça me redemande me me reconnecter à chaque fois que je vais sur mon site.
j'ai remplacé 34 par 24
Merci
j'ai remplacé 34 par 24
Merci
sur quel page je doit mettre ça?
car je n'arrive pas à créer mes cookies je regarde dans chrome mais il y en à pas de créer.
car je n'arrive pas à créer mes cookies je regarde dans chrome mais il y en à pas de créer.
Tu réserve un endroit dans tes pages spécial pour les connexion du membre ...genre une zone membre ...
tu crée une page par exemple login.php, et tu y colle le code qui suit ...
Puis dans la zone que t'as réserver, tu fait un include de la page login.php.
Donc si le cookie n'existe pas, dans cette zone apparaîtra un formulaire de connexion.
Sinon, c'est le pseudo de l'utilisateur qui sera afficher.
EDIT : Ajoute un slash a chaque http
tu crée une page par exemple login.php, et tu y colle le code qui suit ...
Puis dans la zone que t'as réserver, tu fait un include de la page login.php.
Donc si le cookie n'existe pas, dans cette zone apparaîtra un formulaire de connexion.
Sinon, c'est le pseudo de l'utilisateur qui sera afficher.
<?php // Connexion sans BDD if(!empty($_POST['login']) AND !empty($_POST['mdp']) AND !isset($_COOKIE['login'])) { if($_POST['mdp'] == '123') { // Le mot de passe setcookie('login', $_POST['login'], time()+3600); header("Location: http:/".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); } else echo 'Mot de passe incorrect'; } elseif(isset($_COOKIE['login'])) { setcookie('login', $_COOKIE['login'], time()+3600); echo "Bonjour Mr/Mme. ".$_COOKIE['login']."<br>"; echo '<a href="http:/".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."?deco=ok">Deconnexion</a>'; } else { ?> <form method="POST" action="http:/<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>"> <p>Psuedo :<input type="text" name="login" /></p> <p>Mdp :<input type="password" name="mdp" /></p> <p><input type="submit" value="Se connecter" /></p> </form> <?php } if(isset($_GET['deco']) AND isset($_COOKIE['login']) AND $_GET['deco'] == 'ok') { setcookie('login', '', 0); // Pour détruire le cookie header("Location: http:/".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']"); } ?>
EDIT : Ajoute un slash a chaque http
Bonjour un grand merci de ton aide.
Peux tu juste me dire à quoi correspond cette adresse s'il te plait.
Merci et je suis en train d'essayer de comprendre ton script.
http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']">
Peux tu juste me dire à quoi correspond cette adresse s'il te plait.
Merci et je suis en train d'essayer de comprendre ton script.
http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']">
Oups, c'est plutôt ça ...
<form method="POST" action="http://<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>">
ça correspond a l'adresse en cours...
Exemple si tu te trouve sur http://localhost/dossier/page_1.php Alors le code suivant ...<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?> affichera cette derniere ...
Tu peut faure des tests...
PS :
$_SERVER['HTTP_HOST'] => http://localhost/
$_SERVER['REQUEST_URI'] => dossier/page_1.php
<form method="POST" action="http://<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>">
ça correspond a l'adresse en cours...
Exemple si tu te trouve sur http://localhost/dossier/page_1.php Alors le code suivant ...<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?> affichera cette derniere ...
Tu peut faure des tests...
PS :
$_SERVER['HTTP_HOST'] => http://localhost/
$_SERVER['REQUEST_URI'] => dossier/page_1.php
Bonjour merci encore de ton aide.
J'avance à petit pas et je pense avoir compris ton script d'ailleurs je l'ai commenté.
Peux tu me dire si c'est bon mes commentaires?
Et puis je te fait voir ma page complète lorsque le COOKIE est créé j'arrive sur la page index.php avec en tête "Bonjour Mr/Mme..." mais je souhaite afficher le menu "header" mais je n'arrive pas.
Aussi le lien de déconnexion qui ne fonctionnait pas.
Merci mille fois.
J'avance à petit pas et je pense avoir compris ton script d'ailleurs je l'ai commenté.
Peux tu me dire si c'est bon mes commentaires?
Et puis je te fait voir ma page complète lorsque le COOKIE est créé j'arrive sur la page index.php avec en tête "Bonjour Mr/Mme..." mais je souhaite afficher le menu "header" mais je n'arrive pas.
Aussi le lien de déconnexion qui ne fonctionnait pas.
Merci mille fois.
<?php //vérifie que le formulaire a bien été soumis en fait si nos champs contienent bien un nom //si les cookies n'existent pas on les cré if(!empty($_POST['login']) AND !empty($_POST['password']) AND !isset($_COOKIE['login'])) { //redirection des pages suivant le statut de l'utilisateur if($_POST['password'] == 'ens') { setcookie('login', $_POST['login'], time()+3600); header("location: enseignant.php"); } else echo 'Mot de passe incorrect'; } elseif(isset($_COOKIE['login'])) { setcookie('login', $_COOKIE['login'], time()+3600); echo "Bonjour Mr/Mme. ".$_COOKIE['login']."<br>"; echo '<a>Deconnexion</a>'; } else { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <script type="text/javascript" language="javascript" src="jquery.js"></script> <script type="text/javascript" language="javascript" src="script.js"></script> </head> <body> <div data-role="page"> <div data-role="header" data-theme="b"> <h1><img src="image/logo.jpg" width="100%"/></h1> <div data-role="navbar"> <ul> <li><a href="index.php" data-icon="home">Accueil</a></li> <li><a href="contact.php" data-icon="info">Contact</a></li> </ul> </div> </div> <div data-role="content"> <form method="post" id="formulaire" action="http://<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>"> <div data-role="fieldcontain"> <input type="text" name="login" id="login" value=""/><label for="login" class="login">Login :</label> </div> <div data-role="fieldcontain"> <input type="text" name="password" id="password" value=""/><label for="password" class="password">Password :</label> </div> <div data-role="fieldcontain"> <input type="submit" name="submit" value="Envoyer" id="envoyer"/> </div> </form> <?php } if(isset($_GET['deco']) AND isset($_COOKIE['login']) AND $_GET['deco'] == 'ok') { setcookie('login', '', 0); // Pour détruire le cookie header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); } ?> </div> </div> </body> </html>
Re ...
C'est normal que le lien de déconnexion ne fonctionne pas, vu que ce que tu as mis n'a pas d'attribut href ...
Voila ce que ça devrais être ...
<a href="enseignant.php?deco=ok">Deconnexion</a>
C'est normal aussi qu'il n'affiche pas ton menu, vu que tu as fermer l'accolade de la condition ... => elseif(isset($_COOKIE['login'])) { } avant d'avoir inclus le menu ...
Qui veut dire que si le cookie existe, il n'affichera que se qui se trouve entre les deux accolades, alors pour afficher autre chose, il faut mettre ce "autre chose" entre les accolades précédentes, et non pas entre les accolades du else, sinon, il affichera le menu seulement dans le cas ou le cookie n'existe pas ...
C'est normal que le lien de déconnexion ne fonctionne pas, vu que ce que tu as mis n'a pas d'attribut href ...
Voila ce que ça devrais être ...
<a href="enseignant.php?deco=ok">Deconnexion</a>
C'est normal aussi qu'il n'affiche pas ton menu, vu que tu as fermer l'accolade de la condition ... => elseif(isset($_COOKIE['login'])) { } avant d'avoir inclus le menu ...
Qui veut dire que si le cookie existe, il n'affichera que se qui se trouve entre les deux accolades, alors pour afficher autre chose, il faut mettre ce "autre chose" entre les accolades précédentes, et non pas entre les accolades du else, sinon, il affichera le menu seulement dans le cas ou le cookie n'existe pas ...
Bonjour
Tout fonctionne ou presque il y a juste le lien de déconnexion qui ne produit aucun effet.
Merci beaucoup j'ai bien étudié ton script cela ma permis de bien le comprendre c'est nickel.
Encore mille fois merci.
Si tu peux juste me donner ton avis pour ce lien.
Tout fonctionne ou presque il y a juste le lien de déconnexion qui ne produit aucun effet.
Merci beaucoup j'ai bien étudié ton script cela ma permis de bien le comprendre c'est nickel.
Encore mille fois merci.
Si tu peux juste me donner ton avis pour ce lien.
echo '<a href="http://"enseignant.php?deco=ok">Deconnexion</a>';
<?php } if(isset($_GET['deco']) AND isset($_COOKIE['login']) AND $_GET['deco'] == 'ok') { setcookie('login', '', 0); // Pour détruire le cookie header("location: index.php"); } ?>