Connexion Auto avec COOKIE
papyclic
Messages postés
451
Statut
Membre
-
papyclic Messages postés 451 Statut Membre -
papyclic Messages postés 451 Statut Membre -
Bonjour
Je souhaiterai mettre en place une connexion automatique, comme ça lorsqu'un utilisateur va pour la première fois sur le site et qu'il coche la case se souvenir de moi lorsqu'il quitte son navigateur il sera de nouveau connecter, inutile qu'il renseigne encore le login et mot de passe.
J'ai commencé à faire quelque chose qui ne fonctionne pas bien sur.
Si par contre la création du COOKIE est créé mais c'est la reconnexion automatique qui ne se fait pas dans ma page index.php
connexion.php
page index.php
Pouvez-vous essayer de m'aider s'il vous plait.
Je vous remercie
Je souhaiterai mettre en place une connexion automatique, comme ça lorsqu'un utilisateur va pour la première fois sur le site et qu'il coche la case se souvenir de moi lorsqu'il quitte son navigateur il sera de nouveau connecter, inutile qu'il renseigne encore le login et mot de passe.
J'ai commencé à faire quelque chose qui ne fonctionne pas bien sur.
Si par contre la création du COOKIE est créé mais c'est la reconnexion automatique qui ne se fait pas dans ma page index.php
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->VerifConnexion();
if($verif == 'success') {
if(isset($_POST['remember'])) {
$LoginPassword = Security::crypt($pseudo) . '_' . Security::crypt($password);
setcookie('moncookie', $LoginPassword, time() + 3600 * 24 * 365, null, null, false, true);
}
header('Location: index.php?body=compte_profil&type=compte');
} else {
$erreur[] = $verif;
}
}
page index.php
if(isset($_COOKIE['moncookie'])) {
$LoginPassword = explode("_",$_COOKIE['moncookie']);
$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($LoginPassword)) {
$connexion = new Connexion_class($pseudo, $password, $actif);
$verif = $connexion->VerifConnexion();
if($verif == 'success') {
$pseudo = Security::decrypt($LoginPassword[0]);
$password = Security::decrypt($LoginPassword[1]);
header('Location: index.php?body=compte_profil&type=compte');
}
}
}
Pouvez-vous essayer de m'aider s'il vous plait.
Je vous remercie
3 réponses
-
'lut, ce que tu fais est un joli bazar...
Comment stockes-tu tes infos de session autre que le login/mdp?
Dans les cookies? Si c'est le cas, je me ramène sur ton site et chourre ton compte admin en moins de 20 secondes.
Non, ce qu'il faut faire, c'est utiliser http://php.net/manual/fr/function.session-start.phpsession_start()
en début de chaque page PHP, et$_SESSION
pour le stockage des infos.
Les sessions PHP utilisent un unique cookie nomméPHPSESSID
par défaut, qui est un identifiant unique de session dont les infos sont stockées sur le serveur.
Ce cookie a par défaut une durée éphémère (jusqu'à la fermeture du navigateur), car la propriétésession.cookie_lifetime
est à 0 par défaut.
En changeant ce paramètre dans le php.ini ou en utilisant la fonction session_set_cookie_params($lifetime) avec $lifetime la durée de vie du cookie en secondes après chaque session_start(), on peut faire en sorte que la session soit retenue. -
Bonjour
Oui excuse moi j'ain oublié de dire que effectivement j'ai session_star()
ensuite j'ai une methode sur les SESSIONSprivate function Session() { $sql = "SELECT * FROM tb_gestion_admin INNER JOIN tb_adherent ON tb_adherent.id_adherent = tb_gestion_admin.rid_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;
Merci -
Oui au niveau connexion je pense avoir fait comme il faut.
Je voudrais savoir pourquoi ma page index.php j'ai uniquement poster le script qui doit servir à la reconnexion automatique, car le reste de ma page est sans intéret pour ça en fait.
Je ne voudrais pas changer de paramètre du php.ini je voudrais plutôt utiliser cette méthode.
Merci si tu as des exemple j'ai essayé ton lien il ne fonctionne pas.
Merci d'une éventulle.