par
Nicost » 17 juin 2009, 15:43
Bonjour à tous.
J'essai de garder l'utilisateur connecter en ligne, mais des que je referme IE et que j'en relance une nouvelle, pas d'identification.
Merci d'avance pour votre aide !
Voila comment je fait avec les cooki qui de plus je comprend vraiment rien.
index.php
<?php
session_start();
if (isset ($_COOKIE['pseudo']) && !isset ($_SESSION['pseudo']))
{
$_SESSION['pseudo'] = $_COOKIE['pseudo'];
/* On créé la variable de session à partir du cookie pour ne pas avoir à vérifier 2 fois sur les pages qu'un membre est connecté. */
}
if (isset ($_COOKIE['pseudo']) && isset ($_SESSION['pseudo']))
{
//On est connecté
}
if (!isset ($_COOKIE['pseudo']) && !isset ($_SESSION['pseudo']))
{
//On n'est pas connecté
}
?>
connection.php
<?php
session_start();
<h1>Connexion</h1>
<form method="post" action="verif.php">
<fieldset>
<legend>Connexion</legend>
<p>
<label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br />
<label for="password">Mot de Passe :</label><input type="password" name="password" id="password" /><br />
</p>
</fieldset>
<p><input type="submit" value="Connexion" /></p>
<label>Se souvenir de moi ?</label><input type="checkbox" name="cookie" id="cookie"/><br />
</form>
</div>
connection_ok.php
<?php
session_start();
// Message
if (empty($_POST['pseudo']) || empty($_POST['password']) ) //Oublie d'un champ
{
$message = '<p>une erreur s est produite pendant votre identification.
Vous devez remplir tous les champs
Cliquez <a href="connexion.php">ici</a> pour revenir</p>';
}
else
{
//Acces interdit : le membre est déjà connecté
if (isset($_SESSION['pseudo']))
{
$message ='<p>Désolé mais vous ne pouvez
pas accéder à cette page</p>';
}
else // Autorisation ok : il reste à voir le mot de passe
{
include("includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
//On protège les données
$pseudo = mysql_real_escape_string($_POST['pseudo']);
$password = mysql_real_escape_string($_POST['password']);
$requete1 = mysql_query('SELECT membre_mdp, membre_id, membre_rang
FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'"')
or die (mysql_error());
$data1 = mysql_fetch_assoc($requete1);
if ($data1['membre_mdp'] == md5($password)) // Acces OK !
{
$_SESSION['pseudo'] = $pseudo;
$_SESSION['level'] = $data1['membre_rang'];
$_SESSION['id'] = $data1['membre_id'];
if(isset($_POST['cookie']) && $_POST['cookie'] == 'on')
{
setcookie('pseudo', $result['pseudo'], time()+365*24*3600);
setcookie('membre_mdp', $result['membre_mdp'], time()+365*24*3600);
}
echo '<script type="text/javascript">window.location= "index.php"</script>';
}
else
// Acces pas OK !
{
$message = '<p>Une erreur s est produite
pendant votre identification.
Le mot de passe ou le pseudo entré n est pas correcte.
Cliquez <a href="connexion.php">ici</a>
pour revenir à la page précédente
<br /><br />
Cliquez <a href="./index.php">ici</a>
pour revenir à la page d accueil</p>';
}
}
}
//Ici seulement on affiche la page
?>
Encore une fois MERCI pour votre aide !
Bonjour à tous.
J'essai de garder l'utilisateur connecter en ligne, mais des que je referme IE et que j'en relance une nouvelle, pas d'identification.
Merci d'avance pour votre aide !
Voila comment je fait avec les cooki qui de plus je comprend vraiment rien.
[b]index.php[/b]
[php]<?php
session_start();
if (isset ($_COOKIE['pseudo']) && !isset ($_SESSION['pseudo']))
{
$_SESSION['pseudo'] = $_COOKIE['pseudo'];
/* On créé la variable de session à partir du cookie pour ne pas avoir à vérifier 2 fois sur les pages qu'un membre est connecté. */
}
if (isset ($_COOKIE['pseudo']) && isset ($_SESSION['pseudo']))
{
//On est connecté
}
if (!isset ($_COOKIE['pseudo']) && !isset ($_SESSION['pseudo']))
{
//On n'est pas connecté
}
?>[/php]
[b]connection.php[/b]
[php]<?php
session_start();
<h1>Connexion</h1>
<form method="post" action="verif.php">
<fieldset>
<legend>Connexion</legend>
<p>
<label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br />
<label for="password">Mot de Passe :</label><input type="password" name="password" id="password" /><br />
</p>
</fieldset>
<p><input type="submit" value="Connexion" /></p>
<label>Se souvenir de moi ?</label><input type="checkbox" name="cookie" id="cookie"/><br />
</form>
</div>[/php]
[b]connection_ok.php[/b]
[php]<?php
session_start();
// Message
if (empty($_POST['pseudo']) || empty($_POST['password']) ) //Oublie d'un champ
{
$message = '<p>une erreur s est produite pendant votre identification.
Vous devez remplir tous les champs
Cliquez <a href="connexion.php">ici</a> pour revenir</p>';
}
else
{
//Acces interdit : le membre est déjà connecté
if (isset($_SESSION['pseudo']))
{
$message ='<p>Désolé mais vous ne pouvez
pas accéder à cette page</p>';
}
else // Autorisation ok : il reste à voir le mot de passe
{
include("includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
//On protège les données
$pseudo = mysql_real_escape_string($_POST['pseudo']);
$password = mysql_real_escape_string($_POST['password']);
$requete1 = mysql_query('SELECT membre_mdp, membre_id, membre_rang
FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'"')
or die (mysql_error());
$data1 = mysql_fetch_assoc($requete1);
if ($data1['membre_mdp'] == md5($password)) // Acces OK !
{
$_SESSION['pseudo'] = $pseudo;
$_SESSION['level'] = $data1['membre_rang'];
$_SESSION['id'] = $data1['membre_id'];
if(isset($_POST['cookie']) && $_POST['cookie'] == 'on')
{
setcookie('pseudo', $result['pseudo'], time()+365*24*3600);
setcookie('membre_mdp', $result['membre_mdp'], time()+365*24*3600);
}
echo '<script type="text/javascript">window.location= "index.php"</script>';
}
else
// Acces pas OK !
{
$message = '<p>Une erreur s est produite
pendant votre identification.
Le mot de passe ou le pseudo entré n est pas correcte.
Cliquez <a href="connexion.php">ici</a>
pour revenir à la page précédente
<br /><br />
Cliquez <a href="./index.php">ici</a>
pour revenir à la page d accueil</p>';
}
}
}
//Ici seulement on affiche la page
?>[/php]
Encore une fois MERCI pour votre aide !