Perte de ma session

Résolu
Signaler
Messages postés
21
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
5 avril 2012
-
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
-
Bonjour tout le monde.

Je travail sur mon premier projet en php et je souhaite donner des accès par utilisateur grace à mes comptes créés dans ma BD MySql

Jusqu'ici tout va bien, je peux même obtenir le résultat désiré, mais lorsque je rafraichi ma page, je reviens à mon point de départ, comme si je perdais l'information contenu dans $_SESSION. Je me demandais surtout s'il y avait quelque chose que je devais savoir sur le rafraichissement des pages ou si c'est mon code qui est défaillant.

Il y a aussi deux détails dont je ne suis pas sûrs de leur impact.

Premièrement, mes pages php sont diposées dans une page html découpée par des FRAMES

Deuxièmement, je rappelle la même page que celle dans laquelle j'ai entré mon login pour faire mon traitement, est-ce que c'est une mauvaise phylosophie?

L'extrait de code suivant provient de la page LEFT.PHP



session_start();

if
(!isset($_SESSION["loginUsername"]) || !isset($_SESSION["loginPassword"]))
{
if
(!empty($_POST["loginUsername"]) && !empty($_POST["loginPassword"]) )
{
// la fonction ConnexionUtilisateur retourne TRUE si l'utilisateur est valide, sinon FALSE
if
(ConnexionUtilisateur($_POST["loginUsername"],$_POST["loginPassword"]) = = true )

{
$_SESSION[ "loginUsername" ] = $_POST["loginUsername"];
$_SESSION["loginPassword"] = $_POST [ "loginPassword" ];
header("location: left.php");
// redirection

exit;
}
else

{
unset($_SESSION);
header("location: left.php");
// redirection

exit;
}
}
unset($_POST);
}

if
(!isset($_SESSION["loginUsername"]) || !isset($_SESSION["loginPassword"]))
{
print(
' <form action ="left.php" method="post">

Utilisateur

Mot de passe

</form>
');

}
else

{
print(
'Nom d\'utilisateur: '.$_SESSION["loginUsername"]);

}
header("location: left.php");
// redirection

exit;

Merci d'avance

Qualvin

6 réponses

Messages postés
21
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
5 avril 2012

Merci à vous, j'ai fini par régler mon problème

Mon code était probablement défaillant, car j'ai décidé de recommencer à la base et à tester le résultat à chaque nouvel ajout que j'ai fait, pour finir avec un résultat tel que je le voulais au départ.

Il faut dire que j'ai entre autre sorti mon code de login et de logout dans des fichiers php à part, ce qui a beaucoup simplifié les choses.

Merci encore et à bientôt... ce problème résolu, je vais surement aller me mettre les pieds dans les plats dans un nouveau module!

Qualvin
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
salut qualvin,

a en juger par ce que tu dit, ceci n'est qu'un extrait de code

le probleme doit venir de to session_start(); il faut savoir qu'il doit absolument se situer en debut

de page, ca doit etre la premiere ligne de ton code autrement ca ne marchera pas

je pense que c'est de là que vient ton probleme

a part peut etre ca, au niveau php ca a l'air bon

et pour repondre a ta question, oui tu peut rapeller la meme page apres authentification



quelque autres conseils qui peuvent toujours servir :

histoire de te mettre aux normes xhtml, remplace tes
par des


et ferme tes balises input comme ceci


utilise pour une question de rapidite d'éxécution (c'est négligeable mais bon...) la fonction echo a print



evite de mettre du code html basique dans du php, dans ton exemple, fait plutot ceci :

if
(!isset($_SESSION["loginUsername"]) || !isset($_SESSION["loginPassword"]))
{ ?>

<form action="left.php" method="post">
Utilisateur

Mot de passe

</form>
<?php
}

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut ;-)



Ensuite pense à bien activer les cookies sur ton navigateur.



Trucsoufle > ne pas faire de multiples ouvertures/fermetures de balises car c'est crade.



a +

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
chacun sa philosophie mais pour 5-6 lignes de code html pur

je pense que ca vaut le coup, et je ne trouve pas ça plus crade vu qu'on distingue mieux le php

du code html

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
On se retrouve surtout moins dans le code PHP, alors qu'un code bien
indenté avec un tag en haut et un tag en bas, c'est quand même plus
lisible (j'ai une archive d'un de mes vieux sites, et on voit la
différence)

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
content que tu ai réussit

bonne chance pour la suite

@+

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet