gontran Posté 15 Novembre 2006 Posté 15 Novembre 2006 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
Mikiman Posté 15 Novembre 2006 Posté 15 Novembre 2006 (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é 15 Novembre 2006 par Mikiman
gontran Posté 15 Novembre 2006 Auteur Posté 15 Novembre 2006 c'est ce que je fais mais je n'arrive pas a recuperer la valeur du cookie...
Mikiman Posté 15 Novembre 2006 Posté 15 Novembre 2006 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
gontran Posté 15 Novembre 2006 Auteur Posté 15 Novembre 2006 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");} }
Mikiman Posté 15 Novembre 2006 Posté 15 Novembre 2006 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 ?
gontran Posté 15 Novembre 2006 Auteur Posté 15 Novembre 2006 (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é 15 Novembre 2006 par gontran
Alonnka Posté 17 Novembre 2006 Posté 17 Novembre 2006 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 ?
gontran Posté 17 Novembre 2006 Auteur Posté 17 Novembre 2006 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
Blackyell Posté 17 Novembre 2006 Posté 17 Novembre 2006 Bonjour, Es-tu sûr que $_SESSION['id_user'] est bien défini au moment où tu le mets dans le cookie ?
gontran Posté 17 Novembre 2006 Auteur Posté 17 Novembre 2006 oui j'en suis sur je fais une selection de contenue selon cet id et ca ca fonctionne
Blackyell Posté 17 Novembre 2006 Posté 17 Novembre 2006 essaye voir de faire setcookie ("2aiconnauto",$_SESSION['id_user'],time()+31536000) or die('Erreur de création de cookie');
Alonnka Posté 17 Novembre 2006 Posté 17 Novembre 2006 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.
gontran Posté 17 Novembre 2006 Auteur Posté 17 Novembre 2006 ok merci c'est bon ca fonctionne il fallait que je lui configure le chemein (path) merci bien pour votre aide
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant