Problème d'actualisation d'une page

Résolu
cs_Gourou34 Messages postés 9 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 10 août 2009 - 16 mai 2007 à 16:04
cs_Gourou34 Messages postés 9 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 10 août 2009 - 17 mai 2007 à 15:42
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

amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
17 mai 2007 à 15:19
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.
3
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
16 mai 2007 à 18:33
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.

à+
0
cs_Gourou34 Messages postés 9 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 10 août 2009
16 mai 2007 à 18:54
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 :'(
0
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
16 mai 2007 à 20:48
$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{
......
...
}
0

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

Posez votre question
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
17 mai 2007 à 10:48
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 .
0
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
17 mai 2007 à 12:18
..il veut actualiser la page automatiquement,il la solution que j'ai proposé le fait
..en + le script est mal codé
0
cs_Gourou34 Messages postés 9 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 10 août 2009
17 mai 2007 à 15:06
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.
0
cs_Gourou34 Messages postés 9 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 10 août 2009
17 mai 2007 à 15:42
Merci amezghal ca a marché. merci pour ta fonction je m'en reservirai  A bientôt.
0
Rejoignez-nous