Connection membre

Signaler
Messages postés
7
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
12 janvier 2008
-
Messages postés
7
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
12 janvier 2008
-
Voila j'ai un ptit soucis, je débute le php, et j'essai de faire une page où l'on peut se connecter, le truc c'est que j'ai déjà fais les inscriptions sur la base de données, tout marche nickel. Là il y a un soucis, on peut se connecter mais une fois qu'on change de page, on se déconnecte automatiquement, pourtant j'utilise une session :/
quelqu'un pourrait y jeter un oeil, je suis désolé que le code soit un peu dégueulasse, j'ai très bien travailler les autres pages pour quelles soient aux normes, mais là c'est une page d'essai ^^

en gros j'essai de faire passer les réponses du formulaire de connection en session, que je vérifie ensuite :)
et donc la connection marche mais ensuite quand je vais sur une autre page (dont le lien est en dessus, en fait on se trouve ici sur la liste des membres triés par 5 par pages), le formulaire réapparait comme si on ne s'était jamais connecté.

merci par avance pour un ptit coup de pouce ^^

<?php
session_start();
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
$_SESSION['pseudo'] = $_POST['pseudo'];
mysql_connect("mysql5-17", "ssbexperligue", "unbeaumotdepasse");
mysql_select_db("ssbexperligue");

?>
<?php

if (isset($_SESSION['mot_de_passe']) && isset($_SESSION['pseudo']))
{
    $mot_de_passe = $_SESSION['mot_de_passe'];
    $pseudo = $_SESSION['pseudo'];
}
else
{
    $mot_de_passe = "absent";
    $pseudo = "asbent";
}

$requete = mysql_query("SELECT pseudo,mdp FROM membre WHERE pseudo='$pseudo' AND mdp='$mot_de_passe'") or die( 'Erreur MySQL : ' . mysql_error() );

if(mysql_num_rows($requete)!=1)
{

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link href="style.css" rel="stylesheet" type="text/css">
        <title>Liste des Participants</title>
    </head>
   
    <script type="text/javascript" language="JavaScript" src="./jasc.js" />
   

   
   
       
        <form action="connection.php?page=1" method="post">



</form>

<?php   
$debut=($_GET['page']-1)*5;

$reponse = mysql_query("SELECT * FROM membre ORDER BY 2 LIMIT $debut , 5" )    ;

// On fait une boucle pour lister tout ce que contient la table :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<?php echo $donnees['idMembre']; ?>,
<?php echo $donnees['pseudo']; ?>,
<?php echo $donnees['msn']; ?>,
<?php echo $donnees['codeami']; ?>,    

<?php
}
$query = mysql_query("SELECT COUNT(*) FROM membre");
$totalpage = round((strval(mysql_result($query,0,0))/5) ,0);
for ($i=1;$i<=$totalpage;$i++) echo "[style.css
        <title>Liste des Participants</title>
    </head>
   
        <script type="text/javascript" language="JavaScript" src="./jasc.js" />

   

   
   
       
<?php
$connection = mysql_query("SELECT pseudo FROM membre WHERE pseudo='$pseudo'" )    ;
while ($con = mysql_fetch_array($connection) )
{
?>

<?php echo $con['pseudo']; ?>

<?php
}

?>
<?php   
$debut=($_GET['page']-1)*5;

$reponse = mysql_query("SELECT * FROM membre ORDER BY 2 LIMIT $debut , 5" )    ;

// On fait une boucle pour lister tout ce que contient la table :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<?php echo $donnees['idMembre']; ?>,
<?php echo $donnees['pseudo']; ?>,
<?php echo $donnees['msn']; ?>,
<?php echo $donnees['codeami']; ?>,    

<?php
}
$query = mysql_query("SELECT COUNT(*) FROM membre");
$totalpage = round((strval(mysql_result($query,0,0))/5) ,0);
for ($i=1;$i<=$totalpage;$i++) echo "]Page $i &nbsp;&nbsp;";
?>

       

   
</html>

<?php
}

mysql_close();
?>

8 réponses

Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
tu as bien mis ton session_start(); sur tes pages suivantes?


Personne ne peut se permettre de juger l'autre....
Messages postés
7
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
12 janvier 2008

en fait pour le moment je reste sur cette même page, car c'est une liste de membre qui contient 10 membres par pages, donc il n'y a que cette même page pour toutes les pages contenant la liste, et elle se recharge elle même.
c'est pour ça que je ne comprend pas.
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
et ton formulaire de connection envoi t-il les données a chaque foi quell se recharge car si il ne les renvoit pas ton $_SESSION['mot_de_passe'] et $_SESSION['pseudo'] devienne vide...


Personne ne peut se permettre de juger l'autre....
Messages postés
7
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
12 janvier 2008

oui c'est exact, j'ai fais un echo pour voir le contenu de la variable $_SESSION['mot_de_passe'] et c'est absent, il faut donc que je trouve un moyen de les renvoyez à chaque fois ^^
merci pour cette indicaion maintenant je pense bien voir mon erreur ;)
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
ou alor tu peux mettre un if($_POST){
la executer le code pour qu'il se connecte


Personne ne peut se permettre de juger l'autre....
Messages postés
5
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
13 décembre 2007

En fait, le problème vient du fait qu'au début de ton script, tu écrases les valeurs des variables en session avec les valeurs des variables du post. Et dans le cas où les variables du post ne sont pas renseignées, les variables de session deviennent vide.

Il faut remplacer :
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
$_SESSION['pseudo'] = $_POST['pseudo'];

par :
if(isset($_POST['mot_de_passe']) && isset($_POST[pseudo']))
{
   $_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
   $_SESSION['pseudo'] = $_POST['pseudo'];
}

et ça devrait marcher !

Steph
Messages postés
7
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
12 janvier 2008

alors en fait j'y arrive, maintenant j'ai du mal c'est pour la déconnection, sa prend 2 pages pour le faire ^^

<?php

session_start(); // ouverture de la session

mysql_connect("mysql5-17", "ssbexperligue", "supersecret ;)"); // connection à la base de données
mysql_select_db("ssbexperligue"); // sélection de la base de données

if (isset($_POST['mot_de_passe']) && isset($_POST['pseudo'])) // test si les données existent
{
    $_SESSION['mot_de_passe'] = $_POST['mot_de_passe']; // créé les variables mdp et pseudo
    $_SESSION['pseudo'] = $_POST['pseudo'];
    $mdp= $_SESSION['mot_de_passe']; // copie les variables pour les requêtes
    $pseudo = $_SESSION['pseudo'];
}
else
{
  
    if (isset($_POST['deco'])) // si le bouton "déconnection" est enclenché
    {
          if (session_destroy()) // termine la session, déconnection.
          {
                echo 'Vous êtes déconnecté';
                unset($_SESSION['pseudo']);
        }
        else
        {
                echo 'Erreur : impossible de partir du site :p !';
        }
    }
    else // si déjà connecté, recopie les variables
    {
        $mdp = $_SESSION['mot_de_passe'];
         $pseudo = $_SESSION['pseudo'];
    }
}

$requete = mysql_query("SELECT pseudo,mdp FROM membre WHERE pseudo='$pseudo' AND mdp='$mot_de_passe'") or die( 'Erreur MySQL : ' . mysql_error() ); // connection, chercher le pseudo et mot de passe pour le pseudo et mot de passe entrés

?>
<!-- Header, Design et entête de la page, chargement du style css -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="style.css" rel="stylesheet" type="text/css" />
        <title>Liste des participants à la Ligue Smash Brawl Experience</title>
    </head>
   
       

           
       

       

           
           
       
<?php

if(mysql_num_rows($requete)!=1) // si il y a plus d'une ligne sélectionnée : non connecté
{

?>

        <form action="connection.php?page=1" method="post">
           
               
           

        </form>

<?php
}
else // sinon connecté
{

    $connection = mysql_query("SELECT pseudo FROM membre WHERE pseudo='$pseudo'" )    ; // recherche du pseudo
    while ($con = mysql_fetch_array($connection) )
    {
    ?>

    <?php echo $con['pseudo']; ?>
// affichage du pseudo

        <form action="connection.php?page=1" method="post" >
           
               
           

        </form>

    <?php
    }

}
<!-- corps de la page -->
$debut=($_GET['page']-1)*10; // choisi le début de la liste

$reponse = mysql_query("SELECT * FROM membre ORDER BY 2 LIMIT $debut , 10" ) ; // sélectionne les membres à partir du pseudo et jusqu'a 10

$page = $_GET['page'];
$num = $page*10 - 10; // On numérote les participants
// On fait une boucle pour lister tout ce que contient la table :
while ($donnees = mysql_fetch_array($reponse) )
{
    $num = $num +1 ;
?>
<?php echo "$num"; ?>,
<?php echo $donnees['pseudo']; ?>,
<?php echo $donnees['msn']; ?>,
<?php echo $donnees['codeami']; ?>,    

<?php
}

<!-- On affiche les liens des différentes pages -->
$query = mysql_query("SELECT COUNT(*) FROM membre");
$totalpage = round((strval(mysql_result($query,0,0))/10) ,0);
for ($i=1;$i<=$totalpage;$i++) echo "Page $i &nbsp;&nbsp;";
?>

<!-- Foot -->
       

       

           
       

   
</html>
<?php
mysql_close(); // fin de connection
?>

le résultat ici :
http://90plan.ovh.net/~ssbexper/Ligue/listeparticipant.php?page=1
Parse error: syntax error, unexpected '<' in /home.10.31/ssbexper/www/Ligue/listeparticipant.php on line 112
jcomprend plus sa marchait hier XD
Messages postés
7
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
12 janvier 2008

c bon j'ai corrigé, j'avance lentement mais j'avance, par contre niveau sécurité c zero là lol