Cookie
papyclic
Messages postés
446
Date d'inscription
Statut
Membre
Dernière intervention
-
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je souhaiterai pouvoir mettre en place une reconnexion automatique.
Malheureusement je n'y arrive pas et en plus il y a très peu d'aide vidéo en Français.
J'ai une connexion qui fonctionne, avec la création de COOKIE avec 2 fonctions pour crypter et décrypter le pseudo et password, si quelqu'un peut m'aider s'ils vous plait.
En vous remerciant d'avance.
Merci beaucoup.
Mon fichier de connexion
Je souhaiterai pouvoir mettre en place une reconnexion automatique.
Malheureusement je n'y arrive pas et en plus il y a très peu d'aide vidéo en Français.
J'ai une connexion qui fonctionne, avec la création de COOKIE avec 2 fonctions pour crypter et décrypter le pseudo et password, si quelqu'un peut m'aider s'ils vous plait.
En vous remerciant d'avance.
Merci beaucoup.
Mon fichier de connexion
if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->Verif(); if($verif == 'success') { if(isset($_POST['remember'])) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 365, null, null, false, true); } header('Location: index.php?body=compte_profil&type=compte'); } else { $erreur[] = $verif; } }
A voir également:
- Cookie
- Supprimer cookie - Guide
- 400 bad request request header or cookie too large ✓ - Forum Réseaux sociaux
- 400-Bad Request avec Firefox - Forum Windows
- Edit this cookie - Télécharger - Outils pour navigateurs
- Cookie de suivi avast - Forum Antivirus
42 réponses
Bonjour,
Si tu créés le cookie du pseudo.. il te suffit de le récupérer ....
Un truc du genre :
Si tu créés le cookie du pseudo.. il te suffit de le récupérer ....
Un truc du genre :
//---------------------------------------- // le temps des tests : //---------------------------------------- echo "<pre>"; print_r($_COOKIE['cliquedecruet']); echo "</pre>"; //---------------------------------------- if(isset($_COOKIE['cliquedecruet']){ $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); //---------------------------------------- // le temps des tests : //---------------------------------------- echo "<pre>"; print_r($_COOKIE['arrLoginPassword']); echo "</pre>"; //---------------------------------------- if(is_array($arrLoginPassword){ $pseudo = Security::deccrypt($arrLoginPassword[0]); $password = Security::deccrypt($arrLoginPassword[1]); } }
Bonjour
Merci pour ton aide, ça ne fonctionne pas que dois je faire à ton avis.
Mon cookie existe bien je l'ai affiché avec...
Merci pour ton aide, ça ne fonctionne pas que dois je faire à ton avis.
Mon cookie existe bien je l'ai affiché avec...
<?php print_r($_COOKIE); ?> <br/>
alors j'ai le retour des print_r mais toujours obligé de me reconnecter après avoir ré ouvert le navigateur.
Merci
print_r($_COOKIE['cliquedecruet']);
print_r($arrLoginPassword);
Merci
print_r($_COOKIE['cliquedecruet']);
?[2)???1Zw?_?L=#?{?
print_r($arrLoginPassword);
Array ( [0] => ?[2)???1Zw? [1] => ?L=#?{? )
if(isset($_COOKIE['cliquedecruet'])){ $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); if(is_array($arrLoginPassword)){ $pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]); } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait dans ma page index.php
soit indulgent..
Merci
if(isset($_COOKIE['cliquedecruet'])){ $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); $req = $bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $req->execute(array ('pseudo' => $arrLoginPassword)); $donnees = $req->fetch(PDO::FETCH_ASSOC); if(is_array($arrLoginPassword)){ $pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]); } }
soit indulgent..
Merci
Oui désolé... y'a pas de soucis...sauf que tu distilles les informations au compte goute... résultat on n'avance pas ! (et c'est pareil à chacune de tes questions....)
Si tu veux obtenir de l'aide efficace (et rapide....) il faut que tu poses tes questions le plus clairement possible et avec TOUS les éléments nécessaire à notre compréhension et à son traitement.... Idem lorsque tu réponds à nos questions.... nous ne devrions pas devoir te poser 3 fois la même question avant de commencer à entrevoir la totalité des réponses...
Bon.. passons.... l'essentiel est qu'on avance dans la résolution de ton souci.
Donc ok, tu l'as mis dans ta page index.php : très bien.
Et donc, comme tu peux le voir... tu créés, grâce à ce code, deux variables... $pseudo et $password...(si le cookie existe uniquement bien entendu..)
Maintenant... tu dois utiliser ces deux variables pour appeler ta fonction de connexion à ton site. ( le constructeur de ta class de connexion ... puis l'appel à ta fonction de verif).
Si tu ne trouves pas où les mettre... postes le reste de ton code de ta page index.php....
Si tu veux obtenir de l'aide efficace (et rapide....) il faut que tu poses tes questions le plus clairement possible et avec TOUS les éléments nécessaire à notre compréhension et à son traitement.... Idem lorsque tu réponds à nos questions.... nous ne devrions pas devoir te poser 3 fois la même question avant de commencer à entrevoir la totalité des réponses...
Bon.. passons.... l'essentiel est qu'on avance dans la résolution de ton souci.
Donc ok, tu l'as mis dans ta page index.php : très bien.
Et donc, comme tu peux le voir... tu créés, grâce à ce code, deux variables... $pseudo et $password...(si le cookie existe uniquement bien entendu..)
Maintenant... tu dois utiliser ces deux variables pour appeler ta fonction de connexion à ton site. ( le constructeur de ta class de connexion ... puis l'appel à ta fonction de verif).
Si tu ne trouves pas où les mettre... postes le reste de ton code de ta page index.php....
Bonjour
Merci pour tous tes conseils, j'ai vraiment du mal à faire appel au COOKIE pour rester connecter après avoir ouvert mon navigateur.
Par contre le COOKIE est bien présent.
Je te donne déjà ma page de connexion.
et ma page index le script est en début de page le reste de la page il y a aucun intéret c'est juste le DOCTYPE avec les includes de fichiers.
J'ai fait appel à ma méthode de connexion vérif
je te donne quand même la class Connexion_class
Merci pour tous tes conseils, j'ai vraiment du mal à faire appel au COOKIE pour rester connecter après avoir ouvert mon navigateur.
Par contre le COOKIE est bien présent.
Je te donne déjà ma page de connexion.
<?php if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->Verif(); if($verif == 'success') { if(isset($_POST['remember'])) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 365, null, null, false, true); } header('Location: index.php?body=compte_profil&type=compte'); } else { $erreur[] = $verif; } } if (isset($erreur)) { echo output_errors($erreur); } ?>
et ma page index le script est en début de page le reste de la page il y a aucun intéret c'est juste le DOCTYPE avec les includes de fichiers.
J'ai fait appel à ma méthode de connexion vérif
if(isset($_COOKIE['cliquedecruet'])) { $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; if(is_array($arrLoginPassword)) { $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->Verif(); if($verif == 'success') { $pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]); header('Location: index.php?body=compte_profil&type=compte'); } } }
je te donne quand même la class Connexion_class
class Connexion_class { private $pseudo; private $password; private $actif; private $bdd; public function __construct($pseudo, $password, $actif) { $password = Security::hash($password); $this->pseudo = $pseudo; $this->password = $password; $this->actif = $actif; $this->bdd = bdd(); } public function ChampsVide() { return(empty($this->pseudo) || empty($this->password)) ? true : false; } public function PseudoExist() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); return ($result) ? $result['password'] : false; } public function Banni() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); return($result['actif'] == 0) ? true : false; } public function Session() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); $_SESSION['id_adherent'] = $result['id_adherent']; $_SESSION['prenom'] = $result['prenom']; $_SESSION['pseudo'] = $this->pseudo; } public function Verif() { if($this->ChampsVide()) { $erreur = 'Veuillez remplir tous les champs'; } else if($this->PseudoExist()) { if($this->password == $this->PseudoExist()) { if(!$this->Banni()) { $erreur = 'success'; // on créé les variables de session $this->Session(); } else { $erreur = "Ton compte a été supprimé"; } } else { $erreur = "Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé..."; } } else { $erreur = "Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé..."; } return $erreur; } }
Donc le premier code est dans ta page index c'est bien ça ?
Donc tu devrais avoir quelque chose du genre :
Donc tu devrais avoir quelque chose du genre :
//Fonction de connexion function CNX( $pseudo,$password,$remember=NULL){ $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->Verif(); if($verif == 'success') { if($remember) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 365, null, null, false, true); } header('Location: index.php?body=compte_profil&type=compte'); } else { $erreur[] = $verif; } } // Récupération des variables POST et/ou COOKIE if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $remember = isset($_POST['remember']) ?$_POST['remember'] :NULL; CNX( $pseudo,$password,$remember); }elseif(isset($_COOKIE['cliquedecruet'])) { $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); $remember=TRUE; if(is_array($arrLoginPassword)){ $pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]); CNX( $pseudo,$password,$remember); }else{ $erreur[] = "arrLoginPassword n'est pas un array !"; } } // Affichage des messages d'erreur if (isset($erreur)) { echo output_errors($erreur); }
Le premier scrip que je t'ai donné c'est dans la page connexion.php le deuxième dans la page index.php
En fait je dois mettre l'intégralite du code dans la même page d'après toi?
dans la page index.php.
Parce que pour l'instant il n'y a pas de résultat.
Merci
En fait je dois mettre l'intégralite du code dans la même page d'après toi?
dans la page index.php.
Parce que pour l'instant il n'y a pas de résultat.
Merci
je dois mettre l'intégralite du code dans la même page d'après toi?
C'est plus simple....
cela te permet de gérer la récupération des variables POST et/ou COOKIE directement...
Car là ... ta page connexion n'est appelée QUE si l'utilisateur clique sur le bouton de submit ... hors... ce n'est pas ce que tu veux.
Bonjour
J'ai bien analysé ton code et je ne comprends pas pourquoi la re-connexion automatique ne se fait pas.
Déjà le COOKIE est bien présent dans le navigateur même lorsque je réouvre celui-ci.
On doit pas être très loin de la vérité..
Merci
J'ai bien analysé ton code et je ne comprends pas pourquoi la re-connexion automatique ne se fait pas.
Déjà le COOKIE est bien présent dans le navigateur même lorsque je réouvre celui-ci.
On doit pas être très loin de la vérité..
Merci
Ce n'est pas évident sans pouvoir tester.....
mais bon.. comme tu le dis.. on va y arriver....
Déjà.. petite erreur dans ma fonction.
testes ce code là.
(au passage.. j'ai rajouté du DEBUG.. pour essayer de savoir ce qui se passe...)
et DIS NOUS ce que ça te marque ...
mais bon.. comme tu le dis.. on va y arriver....
Déjà.. petite erreur dans ma fonction.
testes ce code là.
(au passage.. j'ai rajouté du DEBUG.. pour essayer de savoir ce qui se passe...)
<?php /* Page index.php */ //-----------------------------------------------------------------// //démarrage des variables de session session_start(); //Fonction de connexion function CNX( $pseudo,$password,$remember=NULL){ $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->Verif(); if($verif == 'success') { if($remember) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 365, null, null, false, true); } $result['erreur'] =NULL; $result['cnx']=true; $_SESSION['cnx']=True; $_SESSION['pseudo']=$pseudo; } else { $result['cnx']=False; $result['erreur'] = $verif; $_SESSION['cnx']=False; } return $result; } // Récupération des variables POST et/ou COOKIE if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $remember = isset($_POST['remember']) ?$_POST['remember'] :NULL; $result = CNX( $pseudo,$password,$remember); $erreur[] = $result['erreur']; }elseif(isset($_COOKIE['cliquedecruet'])) { $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); $remember=TRUE; if(is_array($arrLoginPassword)){ $pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]); $result = CNX( $pseudo,$password,$remember); $erreur[] = $result['erreur']; }else{ $erreur[] = "arrLoginPassword n'est pas un array !"; } } // Affichage des messages d'erreur if (isset($erreur)) { echo output_errors($erreur); } //-------------------------------------------------- // Le temps des tests : //****************************** if(isset($result['cnx'])){ echo "<br> Connexion :".$result['cnx']."<br>"; } echo "<br> Variables de session :<br>"; print_r($_SESSION); echo "<br> Variables COOKIE :<br>"; print_r($_COOKIE); //-------------------------------------------------- ?> <!-- EN DESSOUS ... TON CODE HTML -->
et DIS NOUS ce que ça te marque ...
le retour de variables
une petite erreur également
Connexion :1 Variables de session : Array ( [cnx] => 1 [id_adherent] => 21 [prenom] => Gilbert [pseudo] => gilbertchia ) Variables COOKIE : Array ( [cliquedecruet] => ??{???L?yh?_??d?HV?? [toolbarDisplay] => hide [PHPSESSID] => lvnlmc28l9o051f6arkm28lc00 [switchmenu] => )
une petite erreur également
Notice: Undefined variable: actif in C:
voici l'erreur complet de la notice
Alors voilà tout le script je l'ai mis dans un fichier nommé connexion.php car index.php est déjà bien chargé mais je pense que c'est pareil, d'ailleurs j'ai essayé également et le résultat est le même
voilà le fichier complet "connexion.php
ensuite je te donne le formulaire de connexion qui fait appel au fichier connexion.php
Notice: Undefined variable: actif in C:\Users\Gilbert\Dropbox\wamp\www\mon_site\page_accueil\connexion.php on line 31
Alors voilà tout le script je l'ai mis dans un fichier nommé connexion.php car index.php est déjà bien chargé mais je pense que c'est pareil, d'ailleurs j'ai essayé également et le résultat est le même
voilà le fichier complet "connexion.php
<?php function CNX( $pseudo, $password, $remember = NULL ) { $connexion = new Connexion_class( $pseudo, $password, $actif ); $verif = $connexion->Verif(); if($verif == 'success') { if( $remember ) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 365, null, null, false, true); } $result['erreur'] = NULL; $result['cnx'] = TRUE; $_SESSION['cnx'] = TRUE; $_SESSION['pseudo'] = $pseudo; } else { $result['cnx'] = FALSE; $result['erreur'] = $verif; $_SESSION['cnx'] = FALSE; } return $result; } if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $remember = isset($_POST['remember']) ?$_POST['remember'] : NULL; $result = CNX( $pseudo, $password, $remember ); $erreur[] = $result['erreur']; } elseif ( isset($_COOKIE['cliquedecruet'])) { $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); $remember = TRUE; if( is_array($arrLoginPassword)) { $pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]); $result = CNX( $pseudo, $password, $remember ); $erreur[] = $result['erreur']; } else { $erreur[] = "arrLoginPassword n'est pas un array !"; } } // Affichage des messages d'erreur if (isset($erreur)) { echo output_errors($erreur); } //-------------------------------------------------- // Le temps des tests : //****************************** if(isset($result['cnx'])){ echo "<br> Connexion :".$result['cnx']."<br>"; } echo "<br> Variables de session :<br>"; print_r($_SESSION); echo "<br> Variables COOKIE :<br>"; print_r($_COOKIE); ?>
ensuite je te donne le formulaire de connexion qui fait appel au fichier connexion.php
<!--#######################################################################################################################################--> <script type="text/javascript" charset="utf-8"> $(document).ready(function(){ <?php if (isset($_SESSION['id_adherent']) && $_SESSION['id_adherent'] != NULL) { ?> $('#SeConnecter, #DeconnexionReussie').hide();//cacher <?php } if (!isset($_SESSION['id_adherent'])) { ?> $('#DeconnexionReussie, #SeDeconnecter').hide();//cacher <?php } ?> }) </script> <!--#######################################################################################################################################--> <form name="SeConnecter" id="SeConnecter" action="index.php?body=connexion&type=accueil" method="post" enctype="multipart/form-data"> <fieldset class="fieldset_connexion"> <legend class="legend_connexion">Se connecter</legend> <center><b><p style="margin: 5px; padding: 5px;">Réservé aux membres</p></b></center> <label for="login">Login :</label> <center><input type="text" id="login" name="pseudo" class="login" value="" tabindex="1"/></center> <br/> <label for="motdepasse">Mot de passe :</label> <center><input type="password" id="motdepasse" name="password" class="motdepasse" value="" tabindex="2"/></center> <br/> <!--#######################################################################################################################################--> <?php $checked = isset($_POST['remember']) && $_POST['remember'] =='true' ? "checked='checked'":''; echo "<input name='remember' id='checkbox' class='css-checkbox' type='checkbox' value='true'".$checked.">"; ?> <!--Le for du label doit-être identique à l'id de l'input--> <label for="checkbox" name="demo_lbl_1" class="css-label"><span class="SeSouvenir">Se souvenir</span></label> <!--#######################################################################################################################################--> <center><input src="image/envoyer.png" width="70%" class="connexion_form" type="image" name="connexion" border="0" Value="" align="middle"/></center> </fieldset> </form> <!--#######################################################################################################################################--> <div name="SeDeconnecter" id="SeDeconnecter"> <fieldset class="fieldset_connexion"> <center><span class="SeDeconnecter"><a href="index.php?action=logout">Deconnexion</a></span></center> </fieldset> </div> <!--#######################################################################################################################################--> <div name="DeconnexionReussie" id="DeconnexionReussie"> <fieldset class="fieldset_connexion"> <?php if(!empty($_GET['action']) && $_GET['action'] == 'logout' && isset($_SESSION['id_adherent'])) { $pren = (utf8_decode ($_SESSION['prenom'])); setcookie('cliquedecruet', '', time() - 3600); unset($_SESSION['id_adherent']); unset($_SESSION['prenom']); unset($_SESSION['pseudo']); unset($_COOKIE['cliquedecruet']); echo '<span class="DeconnexionReussie">Déconnexion réussie... </br>A bientôt <b>' . $pren . '</b> !</br></br></span>'; echo '<center><span class="RetourFormulaire">'; echo '<a href="index.php?body=accueil&type=accueil">[Retour Formulaire]</a>'; echo '</center></span>'; ?> <script type="text/javascript" charset="utf-8"> $(document).ready(function() { $('#DeconnexionReussie').show();//afficher $('#SeDeconnecter').hide();//cacher <?php } ?> }) </script> </fieldset> </div>
En fait, tu ne vas plus passer par la page : connexion.php
L'idéal étant de tout faire directement dans ta page index.
Modifie ton form
L'idéal étant de tout faire directement dans ta page index.
Modifie ton form
<form name="SeConnecter" id="SeConnecter" action="" method="post" enctype="multipart/form-data">
voici ma page index.php
<?php session_start();?> <?php include('include/init.php');?> <?php function CNX( $pseudo, $password, $remember = NULL ) { $connexion = new Connexion_class( $pseudo, $password, $actif ); $verif = $connexion->Verif(); if($verif == 'success') { if( $remember ) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 365, null, null, false, true); } $result['erreur'] = NULL; $result['cnx'] = TRUE; $_SESSION['cnx'] = TRUE; $_SESSION['pseudo'] = $pseudo; } else { $result['cnx'] = FALSE; $result['erreur'] = $verif; $_SESSION['cnx'] = FALSE; } return $result; } if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $remember = isset($_POST['remember']) ?$_POST['remember'] : NULL; $result = CNX( $pseudo, $password, $remember ); $erreur[] = $result['erreur']; } elseif ( isset($_COOKIE['cliquedecruet'])) { $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); $remember = TRUE; if( is_array($arrLoginPassword)) { $pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]); $result = CNX( $pseudo, $password, $remember ); $erreur[] = $result['erreur']; } else { $erreur[] = "arrLoginPassword n'est pas un array !"; } } // Affichage des messages d'erreur if (isset($erreur)) { echo output_errors($erreur); } //-------------------------------------------------- // Le temps des tests : //****************************** if(isset($result['cnx'])){ echo "<br> Connexion :".$result['cnx']."<br>"; } echo "<br> Variables de session :<br>"; print_r($_SESSION); echo "<br> Variables COOKIE :<br>"; print_r($_COOKIE); ?> <!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> <title>La Clique de Cruet</title> <!--indique au moteurs de recherche et au navigateur le codage utilisé pour les fichiers du site--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!--définit la langue de cette page pour les moteurs de recherche--> <meta http-equiv="content-language" content="fr"/> <!--permet d'indiquer la description de cette page pour les moteurs de recherche--> <meta name="description" content="animation fête au village cérémonie concert musique festivité"/> <!--indique les mots clefs par ordre d'importance pour les moteurs de recherche--> <meta name="keywords" content="batterie, fanfare, clique, musique, orchestre, instrument, clairon, cor,"/> <!--permet de préciser le nom de l'auteur pour les moteurs de recherche--> <meta name="author" content="clique de cruet"/> <!--permet d'indiquer aux moteurs de recherche pour que notre site soit indexé--> <meta name="robots" content="all"/> <!--permet de mettre une icône dans la barre d'adresse--> <link rel="shortcut icon" href="http://www.cliquedecruet.fr/image/favicon.ico"/> <!--Un affichage correct de balises sur les anciennes versions d'Internet Explorer (IE6, IE7, IE8)--> <!--[if lt IE 9] est un commentaire conditionnel. C'est un commentaire spécial qui n'est lu que par Internet Explorer--> <!--[if lt IE 9]> <link rel="stylesheet" href="design/style_ie.css" /> <![endif]--> <!--[if lt IE 9]> <script type="text/javascript" language="javascript" src="lib/html5.js"></script> <![endif]--> <link rel="stylesheet" type="text/css" href="design/base.css"/> <link rel="stylesheet" type="text/css" href="design/general.css"/> <link rel="stylesheet" type="text/css" href="design/effet.css"/> <link rel="stylesheet" type="text/css" href="design/case_a_cocher.css"/> <script type="text/javascript" language="javascript" src="lib/menu_navigation.js"></script><!--Cacher les menus vertcal--> <script type="text/javascript" language="javascript" src="fonctions/fonction.js"></script><!--Effet sur les liens--> <script type="text/javascript" language="javascript" src="lib/jquery-latest.js"></script><!--Formulaire--> </head> <body> <div id="tete_page"><?php include ('page_accueil/tete_page.php');?></div> <div id="menu_horizontal"><?php include ('page_accueil/menu_horizontal.php');?></div> <div id="bloc_central"> <div id="bloc_gauche"> <div id="menu_vertical"><?php include ('page_accueil/menu_vertical.php');?></div> <div id="identifiant_perdu"><?php include ('page_accueil/identifiant_perdu.php');?></div> <div id="connexion_form"><?php include ('page_accueil/connexion_form.php');?></div> </div> <div id="bloc_droit"> <div id="bloc_droit_haut"><?php include ('page_accueil/bloc_droit_haut.php');?></div> <div id="bloc_droit_bas"><?php include ('page_accueil/bloc_droit_bas.php');?></div> </div> <div id="contenu"> <?php print_r($_COOKIE); ?> <br/> <?php print_r($_SESSION); ?> <br/> <?php if (isset($_SESSION['id_adherent'])){ $pren = (utf8_decode ($_SESSION['prenom'])); echo '<div class="bonjour">'; echo ' <img src="image/coche_ok.png" alt="bonjour"/> Bonjour '.$pren ; echo '</div><br/><br/><br/>'; } ?> <?php include($corps);?> </div> </div> <div id="pied_page"><?php include ('page_accueil/pied_page.php');?></div> </body> </html>
Voici ma page index.php
<?php session_start();?> <?php include('include/init.php');?> <?php function CNX( $pseudo, $password, $remember = NULL ) { $connexion = new Connexion_class( $pseudo, $password, $actif ); $verif = $connexion->Verif(); if($verif == 'success') { if( $remember ) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 365, null, null, false, true); } $result['erreur'] = NULL; $result['cnx'] = TRUE; $_SESSION['cnx'] = TRUE; $_SESSION['pseudo'] = $pseudo; } else { $result['cnx'] = FALSE; $result['erreur'] = $verif; $_SESSION['cnx'] = FALSE; } return $result; } if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $remember = isset($_POST['remember']) ?$_POST['remember'] : NULL; $result = CNX( $pseudo, $password, $remember ); $erreur[] = $result['erreur']; } elseif ( isset($_COOKIE['cliquedecruet'])) { $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); $remember = TRUE; if( is_array($arrLoginPassword)) { $pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]); $result = CNX( $pseudo, $password, $remember ); $erreur[] = $result['erreur']; } else { $erreur[] = "arrLoginPassword n'est pas un array !"; } } // Affichage des messages d'erreur if (isset($erreur)) { echo output_errors($erreur); } //-------------------------------------------------- // Le temps des tests : //****************************** if(isset($result['cnx'])){ echo "<br> Connexion :".$result['cnx']."<br>"; } echo "<br> Variables de session :<br>"; print_r($_SESSION); echo "<br> Variables COOKIE :<br>"; print_r($_COOKIE); ?> <!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> <title>La Clique de Cruet</title> <!--indique au moteurs de recherche et au navigateur le codage utilisé pour les fichiers du site--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!--définit la langue de cette page pour les moteurs de recherche--> <meta http-equiv="content-language" content="fr"/> <!--permet d'indiquer la description de cette page pour les moteurs de recherche--> <meta name="description" content="animation fête au village cérémonie concert musique festivité"/> <!--indique les mots clefs par ordre d'importance pour les moteurs de recherche--> <meta name="keywords" content="batterie, fanfare, clique, musique, orchestre, instrument, clairon, cor,"/> <!--permet de préciser le nom de l'auteur pour les moteurs de recherche--> <meta name="author" content="clique de cruet"/> <!--permet d'indiquer aux moteurs de recherche pour que notre site soit indexé--> <meta name="robots" content="all"/> <!--permet de mettre une icône dans la barre d'adresse--> <link rel="shortcut icon" href="http://www.cliquedecruet.fr/image/favicon.ico"/> <!--Un affichage correct de balises sur les anciennes versions d'Internet Explorer (IE6, IE7, IE8)--> <!--[if lt IE 9] est un commentaire conditionnel. C'est un commentaire spécial qui n'est lu que par Internet Explorer--> <!--[if lt IE 9]> <link rel="stylesheet" href="design/style_ie.css" /> <![endif]--> <!--[if lt IE 9]> <script type="text/javascript" language="javascript" src="lib/html5.js"></script> <![endif]--> <link rel="stylesheet" type="text/css" href="design/base.css"/> <link rel="stylesheet" type="text/css" href="design/general.css"/> <link rel="stylesheet" type="text/css" href="design/effet.css"/> <link rel="stylesheet" type="text/css" href="design/case_a_cocher.css"/> <script type="text/javascript" language="javascript" src="lib/menu_navigation.js"></script><!--Cacher les menus vertcal--> <script type="text/javascript" language="javascript" src="fonctions/fonction.js"></script><!--Effet sur les liens--> <script type="text/javascript" language="javascript" src="lib/jquery-latest.js"></script><!--Formulaire--> </head> <body> <div id="tete_page"><?php include ('page_accueil/tete_page.php');?></div> <div id="menu_horizontal"><?php include ('page_accueil/menu_horizontal.php');?></div> <div id="bloc_central"> <div id="bloc_gauche"> <div id="menu_vertical"><?php include ('page_accueil/menu_vertical.php');?></div> <div id="identifiant_perdu"><?php include ('page_accueil/identifiant_perdu.php');?></div> <div id="connexion_form"><?php include ('page_accueil/connexion_form.php');?></div> </div> <div id="bloc_droit"> <div id="bloc_droit_haut"><?php include ('page_accueil/bloc_droit_haut.php');?></div> <div id="bloc_droit_bas"><?php include ('page_accueil/bloc_droit_bas.php');?></div> </div> <div id="contenu"> <?php print_r($_COOKIE); ?> <br/> <?php print_r($_SESSION); ?> <br/> <?php if (isset($_SESSION['id_adherent'])){ $pren = (utf8_decode ($_SESSION['prenom'])); echo '<div class="bonjour">'; echo ' <img src="image/coche_ok.png" alt="bonjour"/> Bonjour '.$pren ; echo '</div><br/><br/><br/>'; } ?> <?php include($corps);?> </div> </div> <div id="pied_page"><?php include ('page_accueil/pied_page.php');?></div> </body> </html>
Bonjour
C'est juste pour te dire que je n'ai plus l'erreur d'ailleurs plus aucune mais toujours obligé de me reconnecter malgrès la présence du COOKIE.
Merci
C'est juste pour te dire que je n'ai plus l'erreur d'ailleurs plus aucune mais toujours obligé de me reconnecter malgrès la présence du COOKIE.
Merci
Encore c'est juste pour te donner quelques infos.....
En fait donc quand je me connecte...
Et lorsque je quitte le navigateur et le ré-ouvre ...plus de connexion en fait, mais toujours le COOKIE de présent
En fait donc quand je me connecte...
Connexion :1 Variables de session : Array ( [cnx] => 1 [id_adherent] => 21 [prenom] => Gilbert [pseudo] => gilbertchia ) Variables COOKIE : Array ( [cliquedecruet] => ??{???L?yh?_??d?HV?? [toolbarDisplay] => hide [PHPSESSID] => rmfiup7lgfbc5mvadijmt3enf1 )
Et lorsque je quitte le navigateur et le ré-ouvre ...plus de connexion en fait, mais toujours le COOKIE de présent
Connexion : Variables de session : Array ( [cnx] => ) Variables COOKIE : Array ( [cliquedecruet] => ??{???L?yh?_??d?HV?? [toolbarDisplay] => hide )
Tu peux tester ceci et me dire exactement ce que ça t'affiche au niveau des debug ?
<?php session_start(); include('include/init.php'); function debug($value,$title=NULL){ echo "<pre>"; echo date('Y-m-d H:I:s')."-----> debug:"; if ($title){ echo "<b>".$title." : </b>"; } if(is_array($value)){ echo "<br>"; print_r($value); }else{ echo $value; } echo "<br>"; var_dump(debug_backtrace()); echo "</pre>"; } function CNX( $pseudo, $password, $remember = NULL ) { $connexion = new Connexion_class( $pseudo, $password, $actif ); $verif = $connexion->Verif(); if($verif == 'success') { if( $remember ) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 365, null, null, false, true); } $result['erreur'] = NULL; $_SESSION['erreur'] = $verif; $result['cnx'] = TRUE; $_SESSION['cnx'] = TRUE; $_SESSION['pseudo'] = $pseudo; } else { $result['cnx'] = FALSE; $result['erreur'] = $verif; $_SESSION['cnx'] = FALSE; $_SESSION['erreur'] = $verif; } return $result; } if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $remember = isset($_POST['remember']) ?$_POST['remember'] : NULL; $result = CNX( $pseudo, $password, $remember ); $erreur[] = $result['erreur']; } elseif ( isset($_COOKIE['cliquedecruet'])) { $arrLoginPassword = explode("_",$_COOKIE['cliquedecruet']); $remember = TRUE; if( is_array($arrLoginPassword)) { $pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]); $result = CNX( $pseudo, $password, $remember ); $erreur[] = $result['erreur']; } else { $erreur[] = "arrLoginPassword n'est pas un array !"; } $_SESSION['erreur'] = $erreur; } // Affichage des messages d'erreur if (isset($erreur)) { echo output_errors($erreur); } //-------------------------------------------------- // Le temps des tests : //****************************** if(isset($result['cnx'])){ debug($result," RESULT "); } debug($_SESSION," Variables de session "); debug($_COOKIE," Variables de COOKIE "); debug($_POST," Variables POST "); //-------------------------------------------------- ?> <!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> <title>La Clique de Cruet</title> <!--indique au moteurs de recherche et au navigateur le codage utilisé pour les fichiers du site--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!--définit la langue de cette page pour les moteurs de recherche--> <meta http-equiv="content-language" content="fr"/> <!--permet d'indiquer la description de cette page pour les moteurs de recherche--> <meta name="description" content="animation fête au village cérémonie concert musique festivité"/> <!--indique les mots clefs par ordre d'importance pour les moteurs de recherche--> <meta name="keywords" content="batterie, fanfare, clique, musique, orchestre, instrument, clairon, cor,"/> <!--permet de préciser le nom de l'auteur pour les moteurs de recherche--> <meta name="author" content="clique de cruet"/> <!--permet d'indiquer aux moteurs de recherche pour que notre site soit indexé--> <meta name="robots" content="all"/> <!--permet de mettre une icône dans la barre d'adresse--> <link rel="shortcut icon" href="http://www.cliquedecruet.fr/image/favicon.ico"/> <!--Un affichage correct de balises sur les anciennes versions d'Internet Explorer (IE6, IE7, IE8)--> <!--[if lt IE 9] est un commentaire conditionnel. C'est un commentaire spécial qui n'est lu que par Internet Explorer--> <!--[if lt IE 9]> <link rel="stylesheet" href="design/style_ie.css" /> <![endif]--> <!--[if lt IE 9]> <script type="text/javascript" language="javascript" src="lib/html5.js"></script> <![endif]--> <link rel="stylesheet" type="text/css" href="design/base.css"/> <link rel="stylesheet" type="text/css" href="design/general.css"/> <link rel="stylesheet" type="text/css" href="design/effet.css"/> <link rel="stylesheet" type="text/css" href="design/case_a_cocher.css"/> <script type="text/javascript" language="javascript" src="lib/menu_navigation.js"></script><!--Cacher les menus vertcal--> <script type="text/javascript" language="javascript" src="fonctions/fonction.js"></script><!--Effet sur les liens--> <script type="text/javascript" language="javascript" src="lib/jquery-latest.js"></script><!--Formulaire--> </head> <body> <div id="tete_page"><?php include ('page_accueil/tete_page.php');?></div> <div id="menu_horizontal"><?php include ('page_accueil/menu_horizontal.php');?></div> <div id="bloc_central"> <div id="bloc_gauche"> <div id="menu_vertical"><?php include ('page_accueil/menu_vertical.php');?></div> <div id="identifiant_perdu"><?php include ('page_accueil/identifiant_perdu.php');?></div> <div id="connexion_form"><?php include ('page_accueil/connexion_form.php');?></div> </div> <div id="bloc_droit"> <div id="bloc_droit_haut"><?php include ('page_accueil/bloc_droit_haut.php');?></div> <div id="bloc_droit_bas"><?php include ('page_accueil/bloc_droit_bas.php');?></div> </div> <div id="contenu"> <?php if (isset($_SESSION['id_adherent'])){ $pren = (utf8_decode ($_SESSION['prenom'])); echo '<div class="bonjour">'; echo ' <img src="image/coche_ok.png" alt="bonjour"/> Bonjour '.$pren ; echo '</div><br/><br/><br/>'; } include($corps); ?> </div> </div> <div id="pied_page"><?php include ('page_accueil/pied_page.php');?></div> </body> </html>
Voici ce que ça me retourne...
2015-01-14 13:0:37-----> debug: RESULT : Array ( [cnx] => [erreur] => Mauvais mot de passe...ou Mauvais login...Merci de recommencer. Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé... ) array 0 => array 'file' => string 'C:\Users\Gilbert\Dropbox\wamp\www\cliquedecruet\index.php' (length=57) 'line' => int 73 'function' => string 'debug' (length=5) 'args' => array 0 => & array ... 1 => &string ' RESULT ' (length=8) 2015-01-14 13:0:37-----> debug: Variables de session : Array ( [cnx] => [erreur] => Array ( [0] => Mauvais mot de passe...ou Mauvais login...Merci de recommencer. Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé... ) ) array 0 => array 'file' => string 'C:\Users\Gilbert\Dropbox\wamp\www\cliquedecruet\index.php' (length=57) 'line' => int 75 'function' => string 'debug' (length=5) 'args' => array 0 => & array ... 1 => &string ' Variables de session ' (length=22) 2015-01-14 13:0:37-----> debug: Variables de COOKIE : Array ( [cliquedecruet] => ??{???L?yh?_??d?HV?? [toolbarDisplay] => hide [auth] => -----4b84b15bff6ee5796152495a230e45e3d7e947d9 ) array 0 => array 'file' => string 'C:\Users\Gilbert\Dropbox\wamp\www\cliquedecruet\index.php' (length=57) 'line' => int 76 'function' => string 'debug' (length=5) 'args' => array 0 => & array ... 1 => &string ' Variables de COOKIE ' (length=21) 2015-01-14 13:0:37-----> debug: Variables POST : Array ( ) array 0 => array 'file' => string 'C:\Users\Gilbert\Dropbox\wamp\www\cliquedecruet\index.php' (length=57) 'line' => int 77 'function' => string 'debug' (length=5) 'args' => array 0 => & array ... 1 => &string ' Variables POST ' (length=16)
Visiblement...
Les identifiants et/ou mot de pass ne sont pas les bons....
Faut il les "decrypter" avant des les envoyer à la BDD ?
Si non... il faut modifier les lignes
[erreur] => Mauvais mot de passe...ou Mauvais login...Merci de recommencer.
Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé...
Les identifiants et/ou mot de pass ne sont pas les bons....
Faut il les "decrypter" avant des les envoyer à la BDD ?
Si non... il faut modifier les lignes
$pseudo = Security::decrypt($arrLoginPassword[0]); $password = Security::decrypt($arrLoginPassword[1]);