Aller au contenu

Connexion automatique


Sujets conseillés

Posté

Bonjour le hub,

Je cherche a faire une connexion automatique sur mon espace client

Je crée un cookie appeller 'deuxaiconnauto mais je n'arrive pas a recuperer la valeur de ce cookie

$conn_auto=$_COOKIE['deuxaiconnauto']; 
if ($conn_auto!="") {
require ('scripts/connexion.php');
$req_user=mysql_query("select login, id, level, id_client from user where id='$conn_auto'") or die (mysql_error());
$res_user=mysql_fetch_array($req_user) or die (mysql_error());
$_SESSION['id_client']=$res_user['id_client'];
$_SESSION['id_user']=$res_user['id'];
$_SESSION['level']=$res_user['level'];
if ($_SESSION['level']=='1') {header ("location:../backoffice/index.php");}
if ($_SESSION['level']=='2') {header ("location:../backoffice/ticket.php");}
if ($_SESSION['level']=='3') {header ("location:../backoffice/admin.php");}
}

Quelqu'un aurai une idée ?

Merci

Posté (modifié)

Bonjour,

Le meilleur moyen d'effectuer une connexion automatique est à mon avis de placer une cookie contenant par exemple les informations suivante et sous cette forme :

ID_USER|MDP

En sachant que le mot de passe est stocké en MD5.

Avec une condition isset, regarder si le cookie existe ou pas, s'il existe la stocker en variable.

Séparer les deux valeurs dans le cookie à l'aide de la fonction explode().

Créer une requête SQL recherchant le mot de passe du membre à l'aide du ID_USER extrait avec le explode() et regarder si le MDP extrait avec explode() dans le cookie correspond à la donnée SQL.

Si sa correspond, on lui attribue les données.

J'espère que sa vous sera utile :)

Cordialement,

Mikiman

Modifié par Mikiman
Posté

Dans l'exemple présenté la récupération à l'air d'être correcte.

Peut-être dans la création du cookie ?

Contrôlez peut être que le cookie est bien créé

Cordialement,

Mikiman

Posté

oui oui il est bien créer, avec la bonne valeur dedans mais pas moyen d'y accéder...

if (isset($_COOKIE['deuxaiconnauto'])) {
require ('scripts/connexion.php');
$conn_auto=$_COOKIE['deuxaiconnauto'];
$req_user=mysql_query("select login, id, level, id_client from user where id='$conn_auto'") or die (mysql_error());
$res_user=mysql_fetch_array($req_user) or die (mysql_error());
$_SESSION['id_client']=$res_user['id_client'];
$_SESSION['id_user']=$res_user['id'];
$_SESSION['level']=$res_user['level'];
if ($_SESSION['level']=='1') {header ("location:../backoffice/index.php");}
if ($_SESSION['level']=='2') {header ("location:../backoffice/ticket.php");}
if ($_SESSION['level']=='3') {header ("location:../backoffice/admin.php");}
}

Posté

Essayez peut-être de créer une page PHP en y insérant le code suivant

<?php
$cookie_recuperer = $_COOKIE['deuxaiconnauto'];
echo $cookie_recuperer;
?>

La donnée du cookie s'affiche-t'elle ?

Posté (modifié)

non les données du cookie ne sont pas affiché

tu peux faire un test ici :

cmonweb.net

login : test

mdp : 123456

le cookie est bien créer

par contre quand tu reviens sur la page de login, l'affichage du cookie ne se fait pas...

Modifié par gontran
Posté

Chez moi le cookie n'est même pas créé, j'ai bien le cookie de session dès que jarrive sur le site mais aucun autre cookie que je test en cochant la case ou pas.

Es-tu sûr de ne pas avoir fais une erreur à la création du cookie ? Peux-tu nous montrer cette partie de ton code ?

Posté

pas de souci

setcookie ("2aiconnauto",$_SESSION['id_user'],time()+31536000);

et le reste

if (isset($_COOKIE['2aiconnauto'])) {
require ('scripts/connexion.php');
$conn_auto=$_COOKIE['2aiconnauto'];
$req_user=mysql_query("select login, id, level, id_client from user where id='$conn_auto'") or die (mysql_error());
$res_user=mysql_fetch_array($req_user) or die (mysql_error());
$id_client=$res_user['id_client'];
$req_particulier=mysql_query("select part from client where id='$id_client'");
$res_particulier=mysql_fetch_array($req_particulier);
$_SESSION['particulier']=$res_particulier['part'];
$_SESSION['id_client']=$res_user['id_client'];
$_SESSION['id_user']=$res_user['id'];
$_SESSION['level']=$res_user['level'];
if ($_SESSION['level']=='1') {header ("location:../backoffice/index.php");}
if ($_SESSION['level']=='2') {header ("location:../backoffice/ticket.php");}
if ($_SESSION['level']=='3') {header ("location:../backoffice/admin.php");}
}

merci

Posté
pas de souci

setcookie ("2aiconnauto",$_SESSION['id_user'],time()+31536000);

Essaies de mettre :

setcookie("2aiconnauto","$_SESSION[d_user]",time()+3600*24*365,"/","",0);

Et vérifies bien que ta création de cookie vient avant tout (x)HTML ou quoi que ce soit qui génère un affichage.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...