Aller au contenu

[Resolu]PHP bug de session:


Serom

Messages recommandés

Bonjour:

Je suis en train de crée un site pour la communauté cs:source et j'ai un bug de session. Regardez vous meme: http://avalonclub.free.fr/index.php3

Logué vous avec : login = anonyme, pass = lol

Ensuite quand vous êtes logué passez de "Mes paramètre personnelles à mes controles" et la session s'en va je sait pas pourquoi. Par contre si vous naviguez dans mes contrôles elle reste. Pourtant c'est le meme systemes dans mes controles que pour passé de mes parametre personnelles à mes controles.

J'ai utilisé la global $_SESSION pour mes sessions donc je vois pas ou est le probleme.

Merci de m'aider et ++

PS: j'ai fait le naab je me croyais dans programmation, si un modo voulais déplacé le sujet :zarb: . Ne me fouettez pas non :zarb::transpi: . Désolé pour vous faire perdre votre temps

Lien vers le commentaire
Partager sur d’autres sites

Voici la page login:

<?

if(isset($_POST['login']))

{

$membre = addslashes($_POST['pseudo']);

$passw = $_POST['pass'];

$pass = md5($passw);

$res = mysql_query("SELECT pass, active FROM membres WHERE login='$membre'") or die('Erreur avec la base de donnée !<br>'.$res.'<br>'.mysql_error());

$req = mysql_fetch_array($res);

$active = $req['active'];

if($active == 0)

{

echo 'Vous devez activer votre compte pour pouvoir vous loguer';}

else{

if($pass != NULL && $req['pass'] == $pass) //On regarde si le password correspond

{//S'il correspond c'est ok

session_register("membre");

$_SESSION['membre'] = $membre;

$_SESSION['pass'] = $pass; ?>

<script language="javascript">

<!--

document.location.href="index.php3?page=login_controle"

//-->

</script>

<?

}

else// Sinon on affiche erreur

{

echo '

<table border="0" width="100%"><tr><td><center><strong><font color="bb202e" size="+2">Mauvais login ou mot de passe!</font></strong><br>

</td></tr></table>

'; require('membre/block.php3');

}}}

else{ ?>

<script language="javascript">

<!--

document.location.href="index.php3?page=erreur"

//-->

</script>

<?}

?>

Le code pour identifé pour la page Mes paramètres personnelles:

if(session_is_registered("membre"))

{

if(!isset($_POST['perso']))

{

$result = mysql_query("SELECT * FROM membres where login = '$_SESSION[membre]' AND pass = '$_SESSION[pass]'") or die('Erreur avec la base de donnée !<br>'.$result.'<br>'.mysql_error());

while ($membre=mysql_fetch_array($result))

{[code...]}

}

else{ echo' Vous n\'avez pas le droit d\'accèder à cette page !!!'; }

code de la page controle

<?

if(session_is_registered("membre"))

{

$sql = mysql_query("SELECT * FROM membres where login = '$_SESSION[membre]' and pass = '$_SESSION[pass]'") or die('Erreur avec la base de donnée !<br>'.$sql.'<br>'.mysql_error());

while($data = mysql_fetch_array($sql))

{

}}

else{ echo' Vous n\'avez pas le droit d\'accèder à cette page !!!'; }

Entre autre les deux pages marchent, mes dans controles ca fonctionne et parametre perso ca déconne...

merci et ++

Lien vers le commentaire
Partager sur d’autres sites

Je ne suis pas un pro en php mais dans ta page des Paramètres Personnels y a ça qui me gêne :

if(!isset($_POST['perso']))

{

$result = mysql_query("SELECT * FROM membres where login = '$_SESSION[membre]' AND pass = '$_SESSION[pass]'") or die('Erreur avec la base de donnée !<br>'.$result.'<br>'.mysql_error());

while ($membre=mysql_fetch_array($result))

{

[code...]}
}

Moi j'aurais plutôt fait un truc du genre :
if(!isset($_POST['perso']))
{
$membre=$_SESSION['membre'];
$pass=$_SESSION['pass'];
$result = mysql_query("SELECT * FROM membres where login = '$membre' AND pass = '$pass'") or die('Erreur avec la base de donnée !<br>'.$result.'<br>'.mysql_error());
while ($membre=mysql_fetch_array($result))
{[code...]}
}

C'est à dire mettre les valeurs de $_SESSION['membre'] et $_SESSION['pass'] (tu avais oublié les '' dans ton code, mauvais recopiage ou erreur dans ton code ?) dans des variables comme tu l'avais fait pour la page de login. Il y a les mêmes erreurs dans la page de contrôle.

p.s: je ne suis pas sûr de mon coup, je débute en php ;)

Lien vers le commentaire
Partager sur d’autres sites

Bah ecoute merci quand meme toutes les propositions sont ouvertes. Je vais essayé maintenant.

Pour les '' faut pas les mettre dans la requete sinon ca me fait un zoli parse error

merci + ;)

Je viens d'essayer: ca fait toujours le meme bug ;)

Problème résolu j'avais mis un nom de variable identique a $membre dans mon code.

merci ++

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...