Connection impposible avec les session

Résolu/Fermé
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 - 9 févr. 2009 à 15:15
 Sasukeman - 9 févr. 2009 à 17:25
Bonjour,
j'ai fait des session pour les membre de mon site malheureusement par moment ell fonction et d'autre non donc je voudrai de l'aide car je vois pas l'erreur dans ma programation !!

code 1 :

if(isset($_SESSION['pseudo']))
{
echo 'Bienvenue <span style="color: 0000FF;"> ' . $_SESSION['pseudo'] . '</span><br>';
echo '<li><a href="membre.php">Votre Profil</a></li>';
echo '<li><a href="amv.php">Envoi AMV</a></li>';
if (isset($_SESSION['rank'])){ $rank = $_SESSION['rank'];
if ($rank >= 2){
echo '<li><a href="http://www.site.com/admin/index.php">Administration</a></li>';
}
echo '<li><a href="log.php?action=logout">Deconexion</a></li>';
}
}
else{
// si la variable erreur est dans l'url
if(isset($_GET['erreur']))
{
// le compte n'existe pas
if($_GET['erreur'] == 1)
echo '<span style="color: FF0000;">Le compte n\'existe pas ou les données entré sont fausse</span>';
// mot de passe invalide
else if($_GET['erreur'] == 2)
echo '<span style="color: FF0000;">Le compte n\'existe pas ou les données entré sont fausse</span>';
}
print'
<form action="log.php?action=login" method="post">
<table align="center" border="0">
<tr>
<td><img width="24" height="25" border="0" align="left" src="images/login.png" alt="" /></td>
<td><input type="text" name="login" style="width:120px; font-size:17px;"></td>
</tr>
<tr>
<td><img width="24" height="25" border="0" align="left" src="images/pass.png" alt="" /></td>
<td><input type="password"name="pass" style="width:120px; font-size:17px;"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Connection"></td>
</tr>
</table>
</form>
<li><a href="">Inscription</a></li>';}

code 2

<?php
session_start();
mysql_connect("localhost", "user", "pass")
or die("Impossible de se connecter");
mysql_select_db("db")
or die("Impossible de se connecter");
$reponse = mysql_query("SELECT * FROM user ");
if ($reponse){
while ($donnees = mysql_fetch_array($reponse) )
{
// login
if($_GET['action'] == 'login')
{
header("location: index.php");
// récupération des variables
$pseudo = $_POST['login'];
$password = $_POST['pass'];
include "haut.php";

$login = $donnees['login_user'];
$pass = $donnees['pass_user'];
$_SESSION['rank'] = $donnees['level_user'];
if($password == $pass && $pseudo == $login)
{
$_SESSION['pseudo'] = $login; // création d'une variable de session
}
// si le pseudo est faux
else if($pseudo != $login)
{
exit;
}
else
{
exit;
}

}
// logout
else if($_GET['action'] == 'logout')
{
session_unset(); // suppression des variables de sessions
session_destroy(); // destruction de la session
header("location: index.php"); // redirection
}
}}
mysql_close ();
?>

12 réponses

Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
9 févr. 2009 à 15:16
salut,

est ce que tu fais bien un "session_start();" au debut de chacune de tes pages ?
0
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 2
9 févr. 2009 à 15:18
oui bien sur
PS :le code un c'est un menu donc c'est une partie de linclude ^^
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
9 févr. 2009 à 15:18
Alors pourquoi tu detruis ta session à chaque fin de page de tes includes ?
0
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 2
9 févr. 2009 à 15:21
comment sa ?
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
9 févr. 2009 à 15:23
Tu detruis ta session uniquement quand l'utilisateur se déconnecte de ton site.
0

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

Posez votre question
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 2
9 févr. 2009 à 15:24
ben oui ! c'est normal non ?
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
9 févr. 2009 à 15:33
Heu non justement.

Tu ouvres ta session sur ta page principale. Mais ensuite tu ne la detruis pas tant que les utilisateurs sont toujours connectés... Lorsque tu detruis ta session tu détruis toutes les variables avec. C'est normal qu'après il détecte plus les variable.

0
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 2
9 févr. 2009 à 15:32
c'est pas comme sa ? faut la detruire quand ?
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
9 févr. 2009 à 15:34
Déjà enlève toutes tes destructions de session...

Ensuite tu vas créer une page pour déconnecter les utilisateurs.

Exemple :

Page destroy.php

<?php
session_unset(); // suppression des variables de sessions
session_destroy(); // destruction de la session
header("index.php"); //tu rediriges vers ta page principal
?>
0
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 2
9 févr. 2009 à 15:38
code 2 :
<?php
session_start();
mysql_connect("localhost", "user", "pass")
or die("Impossible de se connecter");
mysql_select_db("db")
or die("Impossible de se connecter");
$reponse = mysql_query("SELECT * FROM user ");
if ($reponse){
while ($donnees = mysql_fetch_array($reponse) )
{
// login
if($_GET['action'] == 'login')
{ session_start ();
header("location: index.php");
// récupération des variables
$pseudo = $_POST['login'];
$password = $_POST['pass'];
include "haut.php";

$login = $donnees['login_user'];
$pass = $donnees['pass_user'];
$_SESSION['rank'] = $donnees['level_user'];
if($password == $pass && $pseudo == $login)
{
$_SESSION['pseudo'] = $login; // création d'une variable de session
}
// si le pseudo est faux
else if($pseudo != $login)
{
exit;
}
else
{
exit;
}

}
// logout
else if($_GET['action'] == 'logout')
{header("location: deco.php"); // redirection
}
}}
mysql_close ();
include "bas.php";
?>

un truk kom sa ?
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
9 févr. 2009 à 15:43
Non.

Bon je vois que tu te compliques la vie lool.

Je récapitule.

Tu as une page principale (index.php) je suppose. Dans cette page tu dois avoir

<?php
session_start();
?>

Dans cette même page tu auras deux liens : un pour te connecter un autre pour te déconnecter.

<a href="authentification.php">Connexion</a>

//authentification.php
<?php
//ton script de connexion;
?>


<a href="deconnexion.php">Déconnexion</a>

//deconnexion.php
<?php
//ton script de déconnexion;
?>

C'est pas plus simple comme ça ?
0
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 2
9 févr. 2009 à 15:41
deco.php

<?php
session_unset(); // suppression des variables de sessions
session_destroy(); // destruction de la session
header("index.php"); //tu redirirection ver lindex
?> ces 2 la kom sa alor c bien sa ?
0
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 2
9 févr. 2009 à 15:48
oui v tester sa donc tou a refer XD pa de la tarte mdr
0
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 2
9 févr. 2009 à 17:05
c pareil
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
9 févr. 2009 à 17:07
Alors peut être que tu utilises mal tes variables sessions
0
Sasukeman Messages postés 58 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 2 mai 2009 2
9 févr. 2009 à 17:11
t sur pourtant sa marche par moment et des fois non
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
9 févr. 2009 à 17:13
Vérifie bien ton code peut être que des fois tu supprimes des variables ou tu les vides sans t'en rendre compte.
0
c bon g reussi c'etai un bug de merde pour la page verif javai oublier un un n a login -_- mais grace a toi g reparer le bug car il falai pa faire sa en 2 page mais en 3 page ^^ je remercie !
0