Partage
  • Partager sur Facebook
  • Partager sur Twitter

$_SESSION qui s'efface de page en page

2ème

    3 mars 2007 à 14:13:07

    bonjour je creer un site ou un espace membre est disponible mais j'ai un problème

    je vais commencer par vous montrer la page ou on se connecte que j'apellerai page 1:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>mon site</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        </head>
        <body>
    <form action="page2.php" method="post">
    <p>
    pseudo:<input type="text" name="pseudo"/> mot de passe:<input type="PASSWORD" name="MDP"/><input type="submit" value="Valider" />
    </p>
    </form>
       </body>
       </html>


    cette page marche corectement

    puis la page 2 qui verifi et recupère les données de l'utilisateur:

    <?php
            session_start();
            mysql_connect ('localhost', 'root', '');
            mysql_select_db ('test');
                    $erreur = '';
                    $erreur2 = '';
                    $erreur1 = '';
                    if (isset($_POST['MDP']) and $_POST['MDP'] != '')
                    {
                    }
                    else
                    {
                    $erreur = '1';
                    $erreur1= '- vous n\'avez pas rentré de mot de passe';
                    }
                    if (isset($_POST['
    pseudo']) and $_POST['pseudo'] != '')
                    {
                    }
                    else
                    {
                    $erreur = '
    1';
                    $erreur2 = '
    - vous n\'avez pas rentré de pseudo';
            }
                    if ($erreur == '1')
                    {
                    ?>
                    <meta http-equiv="refresh" content="15;URL=page1.php">
                    <h3>erreur(s):</h3>
                    <p><?php echo $erreur2; ?></p>
                    <p><?php echo $erreur1; ?></p>
                    <?php
                    }
                    else
                    {
    $donnees = mysql_query ('SELECT * FROM login WHERE pseudo=\'' . $_POST['pseudo'] . '\'')or die(mysql_error());
    $_SESSION = mysql_fetch_array ($donnees);
    mysql_close();
    if ($_POST['MDP'] == $_SESSION['MDP'] AND $donnees != '' AND $_SESSION['MDP'] != '')
    {
    ?>
    <meta http-equiv="refresh" content="1;URL=page3.php">
    <?php
    }
    else
    {
    ?>
    <meta http-equiv="refresh" content="15;URL=page1.php">
    <?php
    echo 'mauvais mot de passe ou pseudo';
    $_SESSION = array();
    session_destroy();
    }
    }
    ?>


    cette page aussi a l'air de marcher corectement, mais ce n'est pas sur

    puis la page 3 qui est le contenus consernant l'utilisateur et qui sert a changer de page grace au post:
    <?php
    session_start();
            mysql_connect ('localhost', 'root', '');
            mysql_select_db ('test');
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Bienvenue sur mon site !</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" title="dessing perso" href="<?php echo $_SESSION['locskin'];?>formate.css"/>
       </head>
       <body>
    <p><?php echo $_SESSION['pseudo']; ?></p>
    <?php
    $donnees = mysql_query ('SELECT * FROM login WHERE pseudo=\'' . $_SESSION['pseudo'] . '\'')or die(mysql_error());
    $_SESSION = mysql_fetch_array ($donnees);
    mysql_close();
    if (isset($_GET['page']))
    {
    $page = $_GET['page'];
    }
    else
    {
    $page = 'vp';
    }
    include("$page.php");
    if (isset($_SESSION['pseudo']))
    {
    ?>
    <p>oui</p>
    <?php
    }
    else
    {
    ?>
    <p>non</p>
    <?php
    }
    ?>
    </body>
    </html>


    et enfin un contenut élémentaire de page qui fera partit de toutes mes page privées ici s'apellant vp.php (ici jute le menus):
    <div id="menu">
    <div class="element_menu1">
    </div>
    <div class="element_menu2"> <!-- Cadre correspondant à un sous-menu -->
    <li><a href="jeu.php?page=vp">vue personelle</a></li> <!-- Liste des liens du sous-menu -->
    <li><a href="jeu.php?page=autrepage">autre page</a></li>
    </div>
    </div>


    merci de votre aide précieuse
    en espérant que la deuxieme sera la bonne^^
    a bientot
    • Partager sur Facebook
    • Partager sur Twitter
      3 mars 2007 à 15:39:52

      $donnees = mysql_query ('SELECT * FROM login WHERE pseudo=\'' . $_POST['pseudo'] . '\'')or die(mysql_error());
      $_SESSION = mysql_fetch_array ($donnees);
      mysql_close();
      if ($_POST['MDP'] == $_SESSION['MDP'] AND $donnees != '' AND $_SESSION['MDP'] != '')
      {


      Ca veut rien dire ça.

      On n'affecte pas le résultat d'une requête à une session sans en connaitre le résultat.

      - $donnees != ''

      $donnees vaut soit false en cas d'échec de la requête, soit une ressource en cas de réussite.





      • Partager sur Facebook
      • Partager sur Twitter
        3 mars 2007 à 19:32:34

        si ce truc la marche c'est une requette suivant le pseudo que tu as rentré si il se trouve dans la base de donnée il va le reperer et après si le mot de passe entré est égal au mot de passe(MDP) entré cela confirme sa session sinon les infos sont detruites :lol:

        et petit up

        édit


        en fait le code marche mais quand je charge la page ca met:

        Notice: Undefined index: pseudo in c:\documents and settings\utilisateur\mes documents\css\jeu.php on line 14

        Notice: Undefined index: pseudo in c:\documents and settings\utilisateur\mes documents\css\jeu.php on line 16
        • Partager sur Facebook
        • Partager sur Twitter
          3 mars 2007 à 19:56:22

          C'est pas parce que "ça marche" que c'est correct.

          Relis ce que je t'ai dis.
          • Partager sur Facebook
          • Partager sur Twitter
            3 mars 2007 à 20:24:53

            je voi pas ce que tu ve me dire pas ce n'est pas correct
            • Partager sur Facebook
            • Partager sur Twitter
              3 mars 2007 à 21:21:18

              Il faut que session_start() soit sur toutes les pages pour prolonger la session.

              Regarde le tutoriel ici : http://www.apprendre-php.com/tutoriels/tutoriel-14-les-sessions.html

              ++
              • Partager sur Facebook
              • Partager sur Twitter
                3 mars 2007 à 23:11:00

                non car j'ai utilisé des include("page.php"); qui fait comme si j'avait le code de la page dite dans une autre page donc pas besoin de session_start() dans vp.php et dans les autres page php il y a tout le temps des session_start()
                • Partager sur Facebook
                • Partager sur Twitter
                  3 mars 2007 à 23:19:20

                  Mets un error_reporting(E_ALL) et un ini_set('display_errors',1) en haut de toutes tes pages pour voir s'il y'a des erreurs retournées.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 mars 2007 à 23:22:22

                    <?php
                            session_start();
                            error_reporting(E_ALL);
                            ini_set('display_errors',1);
                    ?>


                    comme ca?

                    édit:
                    ca ne change rien ca ne marque que ca:

                    Notice: Undefined index: pseudo in c:\documents and settings\utilisateur\mes documents\css\page3.php on line 16

                    Notice: Undefined index: pseudo in c:\documents and settings\utilisateur\mes documents\css\page3.php on line 18
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 mars 2007 à 0:01:50

                      Avant le session_start() c'est mieux :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 mars 2007 à 0:05:58

                        okok

                        édit:

                        toujour rien je croi que le session_start est comme effacée de la premiere page a la deuxième
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 mars 2007 à 0:16:29

                          Tu as tenté de réafficher le tableau de session sur chaque page pour voir s'il existe bien ?


                          <?php
                            echo '<pre>';
                            print_r($_SESSION);
                            echo '</pre>';
                          ?>
                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 mars 2007 à 0:34:32

                            nan j'ai fait tout aussi bien:


                            if (isset($_SESSION['pseudo']))
                            {
                            ?>
                            <p>oui</p>
                            <?php
                            }
                            else
                            {
                            ?>
                            <p>non</p>
                            <?php
                            }
                            ?>


                            je n'ai au pire besoin de recuperer que le pseudo mais ca m'affiche non :(
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 mars 2007 à 0:50:51

                              C'est assez sale de coder comme ça (séparation du html et du php)...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                4 mars 2007 à 0:59:43

                                moui j'arive au meme resultat qu'avec:
                                if (isset($_SESSION['pseudo']))
                                {
                                echo 'oui';
                                }
                                else
                                {
                                echo 'non';
                                }
                                ?>


                                après ca dépend des préferences
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  4 mars 2007 à 1:01:09

                                  Utilise le code que je t'ai donné plus haut qui affiche le contenu du tableau $_SESSION.

                                  Tu me postes le résultat affiché sur la page stp
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    4 mars 2007 à 1:04:01

                                    ok

                                    édit:
                                    je vai avoir du mal ca marque rien du tout il doit n'y avoir rien a afficher
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    $_SESSION qui s'efface de page en page

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown