Garder les infos après fermeture de session

Résolu/Fermé
jpaul_web Messages postés 62 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 février 2013 - 24 avril 2008 à 00:32
jpaul_web Messages postés 62 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 février 2013 - 27 avril 2008 à 09:13
Bonjour,
Je cherche depuis plusieurs jours, comment garder les infos (login et pass) du visiteur après fermeture de la session (ex: fermeture de l'explorateur)?
Ceci pour que chaque fois que l'utilisateur se connecte il soit reconnu sans qu'il doive à nouveau réencoder ses identifiants (sauf après un certain temps)
Merci d'avance...
http://www.biereau.be/presentation.php

JPaul

7 réponses

nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 32
24 avril 2008 à 01:21
Bonsoir,

La gestion de cookies :)

http://phpcodeur.net/articles/php/cookies

Cordialement.

nirG
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 329
24 avril 2008 à 01:22
Il faut stocker la session dans un cookie.
0
jpaul_web Messages postés 62 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 février 2013 15
25 avril 2008 à 20:56
Bonjour et merci pour vos réponses, mais est-il possible de créer des cookies dans une session ceci afin que celui qui ne les accepte pas puisse quand même débuter une Session?
De plus, puis-je mettre les variables contenues dans les cookies dans une session sur ma page de démarrage et ne pus devoir les recharger durant la session?
Merci JP
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 329
25 avril 2008 à 21:27
Rien ne t'empeche de faire session + cookie. Quoi qu'il en soit, un cookie, c'est un fichier sur l'ordinateur. DOnc si l'utilisateur ne les accepte pas, il ne sera pas logué atuomatiquement lors de la revisite. C'est son choix. et aucunement un cookie ne peut etre stocké dans une session... la session peut par contre etre stockée dans un cookie.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jpaul_web Messages postés 62 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 février 2013 15
25 avril 2008 à 21:43
Je suppose qu'il suffit de faire un transfère de variable du style
<?
session_name('membre');   //j'ai plusieurs session à ouvrir en même temps
session_start();
require ("conf.php3"); 
$_SESSION['pseudo'] = $_COOKIE['pseudo']; // récupération des cookies et enregistrement dans la session
$_SESSION['password'] = $_COOKIE['password'];
$pseudo = $_POST['pseudo'];  // placement dans des variables
$pass = $_POST['password'];
?>

Mais je débute...
JP
0
jpaul_web Messages postés 62 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 février 2013 15
26 avril 2008 à 09:06
Bonjour de puis que j'ai essayé de mettre des cookies, il ne reconnait plus la session, qui peut m'aider??

Voici la page de démarrage:
index.php:
<? session_name('membre'); session_start(); 
if (empty($_SESSION['pseudo']))//Le code pour verifier qu'une session existe
{  if (empty($_cookie['pseudo'])) //Le code pour verifier qu'un cookie existe

	 {  }
	 else { $pseudo=$_COOKIE['pseudo']; $_SESSION['pseudo'] = $pseudo;}}  

	 else {$pseudo = $_POST['pseudo'];} ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html 

	xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Collège du Biéreau</title>
    <meta name="keywords" content="école, biereau, cycle, carnaval, enfant, projet, mer, classes vertes, maternelle,primaire, po, ap, cp" />
    <meta name="description" content="Site du Collège du Biéreau à Louvain-la-Neuve" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="Robots" content="follow" />
    <meta name="MSSmartTagsPreventParsing" content="TRUE" />

<!-- script du menu -->
<script type="text/javascript" src="dynMenu.js"></script>
 <!-- détéction du navigateur -->
<script type="text/javascript" src="browserdetect.js"></script>

<!-- important pour que les vieux navigateurs ne comprennent pas le CSS -->
<style type="text/css">
    @import "menu.css";
</style>
<link rel="stylesheet" href="http://www.biereau.be/styles.css" type="text/css">
<meta http-equiv="imagetoolbar" content"=no">
<style type="text/css">

</style>
</head>

<body>
  
<div align="center"> 
  <table width="870" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr align="center" valign="middle"> 
      <td width="102" height="113" align="left"> 
        <div align="center"><img src="logos_images/logo2.gif" width="86" height="79" /><br />
          <!--webbot bot="HTMLMarkup" startspan -->
          <script type="text/javascript" src="http://scripts.domainserver.ch/counter.php?s=d4309a0f8b6f665f553c21d9961cdc5d"></script>
          <!--webbot
          bot="HTMLMarkup" endspan -->
        </div></td> 
      <td width="768" height="113" background="logos_images/presentation.gif"> 
        <div align="center"><img src="/logos_images/entete_texte_accueil.gif" alt="College du Bi&eacute;reau" width="650" height="100" /></div></td>
    </tr>
    <tr align="left" valign="top"> 
      <td colspan="2"> 
        <div align="left">
          <?php include "menu.htm"; ?>
      </div></td>
    </tr>
  </table>
  <table width="887" border="0">
    <tr valign="top">
      <td colspan="3">&nbsp;</td>
    </tr>
    <tr valign="top"> 
      <td> 
        
        
        <p>
          <?php
require("membre/conf.php3");
if (empty($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe

	 { include "membre/connexion.php"; }
	 else { echo '<span class="Style1"> Bonjour <strong>'; echo $pseudo; echo '</strong>, tu es connect&eacute; comme membre et tu as acc&egrave;s &agrave; toutes les pages du site.</span>';} ?>
        <?php include "cf/zdata/1203364869.txt"; ?>
          <?php include "ap/zdata/1203365909.txt"; ?>
      </p>      </td>
      <td><?php include "info_1ere_page.htm"; ?></td>
      <td align="center">         <div align="center"><img src="/logos_images/anniv_013.gif" alt="" width="49" height="36" /> <span class="Style1"><strong>Bon anniversaire &agrave;:</strong><br />                        
          <?php include("annif.php"); ?>    



Et la page de connexion1 et 2:

connexion.php:
<div align="centre"><span class="Style1">Pour avoir acc&egrave;s &agrave; l'enti&egrave;ret&eacute; du site, <br />il faut &ecirc;tre inscrit comme membre.	    </span>
<form name="form1" method="post" action="membre/pdf_connexion2.php">
<span class="Style1">

		<label>Pseudo: <input name="pseudo" type="text" class="Style5"  size="10" maxlength="10" ></label>
<label> <br />Mot de Passe:
<input name="password" type="password" class="Style5" size="10" maxlength="10" /></label></span>

		<div align="center">
		  <input name="form2" type="button" class="Style5" onclick="window.location='http://www.biereau.be/membre/pdf_inscription.php';" value="Nouveau membre"; />

          <input type="submit" name="form1" class="Style5" value="Connexion" />
          <label></label>

          </div>

  </form>

</div>


pdf_conection2.php:
<?
session_name('membre');
session_start();
require ("conf.php3"); 

$pseudo = $_POST['pseudo']; //On recupère le pseudo et le pass
$pass = $_POST['password'];

$cookieDate = time() + 60*60*60*24*14; // valable 2 semaines

if( empty($_COOKIE['c_lastvisit']) ) {
   # il s'agit d'un nouveau visiteur :
   # création du cookie et d'une session
   # à la date courante
   $_SESSION['s_lastvisit'] = time();
   setcookie('c_lastvisit', time(), $cookieDate);
} elseif( empty($_SESSION['s_lastvisit']) ) {
   # il s'agit d'un visiteur connu :
   # mise à jour de la session selon cookie 
   $_SESSION['s_lastvisit'] = $_COOKIE['c_lastvisit'];
   $_SESSION['s_menu'] = $_COOKIE['c_menu'];
   # mise à jour du cookie (la date courante)
   setcookie('c_lastvisit', time(), $cookieDate);
}

   $date_visite = date("d.m.Y à H:i",$_SESSION['s_lastvisit']);

if (!empty($pseudo) && !empty($pass)) //S'ils sont pas vident
{
	$sql = connect_sql(); //On se connecte à MySQL
	
	$reponse = mysql_query ("SELECT * FROM pdf_membre WHERE pseudo='$pseudo'"); //On recupère les infos à partir du pseudo
	$donnees = mysql_fetch_array ($reponse);
	$verif = $donnees['pass'];
    $id = $donnees['id'];
	$pseudo_sql = $donnees['pseudo'];
	$confirm = $donnees['confirm'];
	
    
	if($pass != $verif) //On verifie que le pass entré est égale à celui de la BDD, si le passe est différent
	{
    $reponse = '<font color="#FF0000"><strong>Votre identifiant ou votre code secret est incorrect</strong></font>';
	$temps = '5';
	$redirection = '../index.php'; //On va rediriger vers le formulaire de connexion
    }
	elseif(!empty($confirm)) //Si le compte n'est pas activé
	{
	$reponse = '<font color="#FF0000"><strong>Bonjour '. $pseudo . ', votre compte n\'est pas encore activé!<br><br>
	Lors de votre inscription vous avez reçu un mail de confimation dans lequel il y avait une clé d\'activation.<br>
 	Il faut absolumant cliquer sur le lien pour activer votre compte.</strong></font><br><br>
	Merci de votre comprhension.<br>
	Jean-Paul';
	$redirection = '../index.php'; //On va rediriger vers le formulaire de connexion
	$temps = '15';
	}  
	else //Sinon tout est bon
    {
	$_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
	setcookie('pseudo', $_SESSION['pseudo'], $cookieDate); //création du cookies pseudo 
	$redirection = '../index.php'; //On redirige vers l'espace membre
	$temps = '5';
	$reponse = '<font color="#009900"><strong>Connexion réussite!</font><br><br>Bonjour '. $pseudo . ', vous allez être redirigé(e) automatiquement vers la page d\'accueil..</strong>';
    }
	mysql_close($sql); //On ferme la connection

}
?>
<html>
<head>
<meta http-equiv="refresh" content="<? echo $temps; //durée avant redirection ?>;URL=<? echo $redirection; //La redirection ?>">
</head>
<body>

<table width="614" border="0" align="center">
  <tr>
    <td width="608" valign="middle"><div align="left"><? echo 'La dernière visite date du : '. $date_visite .'<br><br>' ?><font size="5" face="Arial, Helvetica, sans-serif"><? echo $reponse; ?></font></div></td>
  </tr>
</table>
</body>
</html>



Si tu t'y retrouve dans mon charabia de code... Tu peux tester sur le site www.biereau.be
Un grand merci...
0
jpaul_web Messages postés 62 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 février 2013 15
27 avril 2008 à 09:13
J'ai résolut le problème, maintenant ça fonctionne...
Voici la correction du code:
<? session_name('membre'); session_start();
if (empty($_SESSION['pseudo']))//Le code pour verifier qu'une session existe et n'est pas vide
{ if (empty($_COOKIE['pseudo'])) //Le code pour verifier qu'un cookie existe et n'est pas vide

	 
	 else { $pseudo=$_COOKIE['pseudo']; $_SESSION['pseudo'] = $pseudo;}}  

	 else {$pseudo = $_SESSION['pseudo'];} ?>


Et la petite correction qui fait tout, rajouter '/' pour préciser que c'est dans tout les répertoires y compris le répertoire racine (surtout quant le cookie est créé dans un autre répertoire!)
	setcookie('pseudo', $pseudo_sql, $cookieDate,'/'); //création du cookies pseudo

Merci à tous...
0