Problème d'actualisation d'une page

[Résolu]
Signaler
Messages postés
9
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
10 août 2009
-
Messages postés
9
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
10 août 2009
-
Bonjour à tous, j'ai cherché tout aujourd'hui sur une mutitude de sites en tout genre mais je n'arrive pas à résoudre mon problème :

J'ai créé un formulaire de connexion pour mes membres dans lequel on entre son Pseudo et Mot de passe. Lorque le membre envoi le formulaire, et qu'il est connecté, je veux faire disparaître de mon menu la zone CONNEXION et ENREGISTREMENT. Or, lorsque j'envoi le formulaire et que je suis connecté, je n'arrives pas à la faire disparaître et je dois à chaque fois actualiser ma page pour que le menu disparaisse.

Voici mon index.php contenant mon menu :

 

 [index.php?page=news.php ]
 
 
 
 <?php
 if(isset($_SESSION['pseudo']))
 echo ""; // Si le membre est connecté, affichage du menu Déconnexion sinon affichage du menu Connexion et Enregistrement : //
 else{echo "";
 echo "";}
?>
 

et ma page index.php?page=connexion.php :

<?php
// Si le formulaire n'a pas été envoyé, on affiche le formulaire : //
if(empty($_POST['pseudo']) && empty($_POST['mdp']))
{
echo "Veuillez entrer votre Pseudo et votre Login pour vous connecter.";
echo "<form action='index.php?page=connexion.php' method='Post'>";
echo "\";
echo \"----
Pseudo :, , \";
echo \"----
Mot de passe :&nbsp;, , \";
echo "

";
echo "";
echo "</form>";
}else{
// Sinon on le traite : //

$pseudo = ucfirst(strtolower($_POST['pseudo']));
$mdp = $_POST['mdp'];


$connexion = mysql_connect("localhost","root","");
$db = mysql_select_db("pgm", $connexion);


$requete = mysql_query("Select * from membres where Pseudo='$pseudo' and Mdp='$mdp'", $connexion);


if(mysql_num_rows($requete) == 1)
// Si l'utilisateur est connecté : //
{$_SESSION['pseudo'] = $pseudo;
echo "Vous êtes bien connecté en tant que $pseudo";
}else{
// Si l'utilisateur n'a pas entré les bons arguments, on réaffiche le formulaire : //
echo "Veuillez entrer votre Pseudo et votre Login pour vous connecter.";
echo "<form action='index.php?page=connexion.php' method='Post'>";
echo "\";
echo \"----
Pseudo :, , \";
echo \"----
Mot de passe :&nbsp;, , \";
echo "

";
echo "";
echo "</form>"; echo 'Vous avez fait une erreur.';}
}
?>

Ce que je voudrai, c'est que mon menu se rafraichisse tout seul sans avoir à le faire soi-même.
Merci pour vos renseignements .

8 réponses

Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
5
if(@mysql_num_rows($requete) == 1)
{
$_SESSION['pseudo'] = $pseudo;
echo "
<script type='text/javascript'>
location.replace('index.php');
</script>
";
}else{
......
...
}
///////////
si l'utilisateur a entré des informations valides, son pseudo est enregistré dans la session est puis en retourne à la page index avec (location.replace('index.php')
et comme son pseudo est enregistré dans la session, alors cette fois là,  le menu login ne s'affiche pas.
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Salut,

c'est très simple, tu dis :

 if(isset($_SESSION['pseudo'])) {
    écrire les champs de login
}

et plus tard seulement $_SESSION['pseudo'] = $pseudo;

Donc c'est sûr que la première fois que tu charges la page avec le pseudo, $_session[pseudo] n'existe pas et tu dois recharger avant que ça marche. Donc il faut inverser l'ordre des deux.

à+
Messages postés
9
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
10 août 2009

Le problème viens pas de là à mon avis, mon code marche mais il nécessite un refresh apres avoir valider mon pseudo et mot de passe. On dirai qu'il faut rafraichir mon menu ou quelque chose comme ca. Je comprend pas :'(
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
5
$requete = mysql_query("Select * from membres where Pseudo='$pseudo' and Mdp='$mdp'", $connexion);

>
$requete =@ mysql_query("SELECT * FROM membres WHERE Pseudo="$pseudo" and Mdp="$mdp"", $connexion);
/*--------------------*/
if(@mysql_num_rows($requete) == 1)
{
$_SESSION['pseudo'] = $pseudo;
echo "
<script type='text/javascript'>
location.reload();
</script>
";
}else{
......
...
}
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
C'est une solution sale ça... lol

essaie  plutôt ça, j'ai juste changé l'ordre comme je, le disais.
à+

 

et ma page index.php?page=connexion.php :

<?php
// Si le formulaire n'a pas été envoyé, on affiche le formulaire : //
if(empty($_POST['pseudo']) && empty($_POST['mdp']))
{
echo "Veuillez entrer votre Pseudo et votre Login pour vous connecter.";
echo "<form action='index.php?page=connexion.php' method='Post'>";
echo "\";
echo \"----
Pseudo :, , \";
echo
\"----
Mot de passe
:&nbsp;, , \";
echo "

";
echo "";
echo "</form>";
}else{
// Sinon on le traite : //

$pseudo = ucfirst(strtolower($_POST['pseudo']));$mdp $_POST['mdp']; $connexion mysql_connect("localhost","root","");
$db = mysql_select_db("pgm", $connexion);

$requete = mysql_query("Select * from membres where Pseudo='$pseudo' and Mdp='$mdp'", $connexion);

if(mysql_num_rows($requete) == 1)
// Si l'utilisateur est connecté : //
{$_SESSION['pseudo'] = $pseudo;
echo
""; // Si le membre est
connecté, affichage du menu Déconnexion sinon affichage du menu
Connexion et Enregistrement : //

 else{echo "";

 echo "";
}else{
// Si l'utilisateur n'a pas entré les bons arguments, on réaffiche le formulaire : //
echo "Veuillez entrer votre Pseudo et votre Login pour vous connecter.";
echo "<form action='index.php?page=connexion.php' method='Post'>";
echo "\";
echo \"----
Pseudo :, , \";
echo
\"----
Mot de passe
:&nbsp;, , \";
echo "

";
echo "";
echo "</form>"; echo 'Vous avez fait une erreur.';}
}
?>

Ce que je voudrai, c'est que mon menu se rafraichisse tout seul sans avoir à le faire soi-même.
Merci pour vos renseignements .
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
5
..il veut actualiser la page automatiquement,il la solution que j'ai proposé le fait
..en + le script est mal codé
Messages postés
9
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
10 août 2009

706132

amezghal
 : Je veux rafraichir la page une seule fois , ton code me lance une erreur :
"La page ne peut pas être actualisée sans renvoie des informations ..."

=452661 Evangun : Mes liens ne sont pas traités dans la page connexion.php mais dans mon menu de l'index.php.

J'ai modifié mon code :
Mon menu dans l'index.php : Je voudrai qu'il se rafraichisse après la connexion.

 [index.php?page= accueil.php ]
 [index.php?page=news.php ]
 
 
 
 <?php
 if(isset($_SESSION['pseudo']))
 {echo "";
 echo "";}
 else{echo "";
 echo "";}
 ?>
 

Ma page connexion.php :

<?php
if(empty($_POST['pseudo']) && empty($_POST['mdp']))
{echo "Veuillez entrer votre Pseudo et votre Login pour vous connecter.";
echo "<form action='index.php?page=connexion.php' method='Post' name='log'>";
echo "\";
echo \"----
Pseudo :, , \";
echo \"----
Mot de passe :&nbsp;, , \";
echo "

";
echo "";
echo "</form>";


}else{


$pseudo = ucfirst(strtolower($_POST['pseudo']));
$mdp = $_POST['mdp'];
$connexion = mysql_connect("localhost","root","");
$db = mysql_select_db("pgm", $connexion);
$requete = mysql_query("Select * from membres where Pseudo='$pseudo' and Mdp='$mdp'", $connexion);


if(@mysql_num_rows($requete) == 1)
{
$_SESSION['pseudo'] = $pseudo;
echo "Vous êtes connecté en tant que $pseudo";
// => Je veux que le menu de mon index.php se rafraichisse ici. //


}else{


echo "Veuillez entrer votre Pseudo et votre Login pour vous connecter.";
echo "<form action ='index.php?page=connexion.php' method='Post' name='log'>";
echo "\";
echo \"----
Pseudo :, , \";
echo \"----
Mot de passe :&nbsp;, , \";
echo "

";
echo "";
echo "</form>"; echo 'Vous avez fait une erreur.';
}
}
?>

Je cherche avec les fonctions javascript mais je m'y connais pas tellement.
Messages postés
9
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
10 août 2009

Merci amezghal ca a marché. merci pour ta fonction je m'en reservirai  A bientôt.