IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Session qui ne reste pas d'une page à l'autre


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut Session qui ne reste pas d'une page à l'autre
    Bonjour,
    Comme précisé dans le titre la session utilisateur ne fonctionne pas d'une page a l'autre malgré la journée passée a lire des tutos a ce sujet je ne trouve pas la solution merci d'avance a ceux qui m'apporterons leur aide ainsi que leur connaissance en la matière

    Donc pour exemple je vais vous présenter les 3 pages utilisé.

    connection.php / membres.php / adminimages.php

    donc quand je passe de connection.php a membres.php tous va bien

    ensuite pour le test je vais sur la page adminimages.php pour finir je retourne sur membres.php et la rien ne va plus.

    Plu de reconnaissance du pseudo ni de ces stats.

    Précision je travaille en local.

    voici les codes complet des trois pages concernées.

    connection.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    <?php require('config.php');
     
    // on teste si le visiteur a soumis le formulaire de connexion  
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { 
       if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 
     
          // on teste si une entrée de la base contient ce couple login / pass 
          $sql = 'SELECT count(*) FROM tb_membres WHERE pseudo="'.mysql_escape_string($_POST['login']).'" AND password="'.mysql_escape_string($_POST['pass']).'"'; 
          $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
          $data = mysql_fetch_array($req); 
     
          mysql_free_result($req); 
          mysql_close(); 
     
          // si on obtient une réponse, alors l'utilisateur est un membre 
          if ($data[0] == 1) { 
             session_start(); 
             $_SESSION['login'] = $_POST['login']; 
             header('Location: membres.php'); 
             exit(); 
          } 
          // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe 
          elseif ($data[0] == 0) { 
             $erreur = 'Compte non reconnu.'; 
          } 
          // sinon, alors la, il y a un gros problème :) 
          else { 
             $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; 
          } 
       } 
       else { 
          $erreur = 'Au moins un des champs est vide.'; 
       }  
    }  
    ?>
     
    <html>
    <head>
    <title>Accueil</title>
    </head>
     
     <a href="index.php">acceuil</a> ||
     <a href="inscription.php">inscription</a> ||
     <a href="connection.php">connection</a> ||
     <a href="page1.php">page1</a> ||
     <a href="page2.php">page2</a> || 
     <a href="page3.php">page3</a> || 
     <a href="page4.php">page4</a> ||
     <a href="page5.php">page5</a> ||
     <a href="adminimages.php">administration des images</a> ||
     <a href="membres.php">membres (images validé et points)</a> ||
    <body>
    </br>
     
    Connexion à l'espace membre :<br />
    <form action="membres.php" method="post">
    Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
    <input type="submit" name="connexion" value="Connexion">
    </form>
    <a href="inscription.php">Vous inscrire</a>
    <?php
     
    if (isset($erreur)) echo '<br /><br />',$erreur;  
    ?>
     
    </body>
    </html>
    membres.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
     
     
    	<?php
             session_start(); 
    	 $_SESSION['login'] = $pseudo;
    if(!isset($_SESSION["login"]) || $_SESSION["login"] == "")
    {
    	header("Location membres.php") ;
    }
    		 ?>
     
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta content="text/html; charset=ISO-8859-1"
     http-equiv="content-type" />
      <title>espaces membres</title>
    </head>
    <body>
     
    <a href="index.php">acceuil</a> ||
     <a href="inscription.php">inscription</a> ||
     <a href="connection.php">connection</a> ||
     <a href="page1.php">page1</a> ||
     <a href="page2.php">page2</a> || 
     <a href="page3.php">page3</a> || 
     <a href="page4.php">page4</a> ||
     <a href="page5.php">page5</a> ||
     <a href="adminimages.php">administration des images</a> ||
     <a href="membres.php">membres (images validé et points)</a> ||
     <a href="deconnection.php">deconnection</a> ||
     </br>
     
     <?php
     /* calcul du nombres d'images trouvés et assignation des point une fois que le membre a trouvé les 5 images*/
     
     /* images */
     
    	require('config.php');
        $pseudo = mysql_real_escape_string(htmlspecialchars ($_POST['login']));
    	$sql = "SELECT imagestrouve FROM tb_membres WHERE pseudo ='$pseudo'";
    	$resultat = mysql_query($sql);
    	$imagestrouvé = mysql_fetch_array($resultat);
    	$trouve=$imagestrouvé['imagestrouve'];
     
    	/* points */
     
    		$pseudo = mysql_real_escape_string(htmlspecialchars ($_POST['login']));
    	$sql = "SELECT points FROM tb_membres WHERE pseudo ='$pseudo'";
    	$resultat = mysql_query($sql);
    	$point = mysql_fetch_array($resultat);
    	$pointtotal=$point['points'];
     
    	/* atribution des points si les 5 images ont été trouvé et ajout de 1 image pour contourné la triche */
     
    if ($trouve == 5)
    {
    	$compte = $pointtotal+15000 ;
    	$sql = "UPDATE tb_membres SET points = $compte WHERE pseudo ='$pseudo'";
    	mysql_query($sql) or die('ERREUR 5 :'.mysql_error());
    	echo "Vous avez été crédité de 15 000 points.</br>";
    	$query2 = "UPDATE imagestrouve FROM tb_membres SET imagestrouve=6 WHERE pseudo ='$pseudo'";
    	mysql_query($query2) or die('ERREUR 6 :'.mysql_error());
    }
    else {
    	echo "<center>La quete est en cours</br></center>";
    }
     
    if ($trouve == 6)
    {
    	echo "<center>Bravo vous avez fini la quete</br></center>";
    }
    else {
    	$imagerestant = $trouve-5;
    	echo "<center>Il vous reste &nbsp; ";
    	echo $imagerestant;
    	echo "&nbsp; images a trouver.</br></center> ";
    }
    ?>
     
     <center>
      Bienvenue <?php echo mysql_real_escape_string(htmlspecialchars ($_POST['login'])); ?> ! </br>
      Vous avez trouvé <?php echo $trouve ;?> image(s) sur cinq.</br>
      Un bonus de 15 000 points vous sera atribué dès que vous aurez fini cette quete.</br>
      Vous avez <?php echo $pointtotal; ?> points sur votre compte.
     
     </body>
    </html>
    adminimages.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
     
     
     
    <?php 
                      session_start(); 
    			  $_SESSION['login'] = $pseudo;;
    if(!isset($_SESSION["login"]) || $_SESSION["login"] == "")
    {
    	header("Location membres.php") ;
    }
    ?>
     
    	<head>
      <meta content="text/html; charset=ISO-8859-1"
     http-equiv="content-type" />
      <title>admin images</title>
    </head>
    <body>
    <a href="index.php">acceuil</a> ||
     <a href="inscription.php">inscription</a> ||
     <a href="connection.php">connection</a> ||
     <a href="page1.php">page1</a> ||
     <a href="page2.php">page2</a> || 
     <a href="page3.php">page3</a> || 
     <a href="page4.php">page4</a> ||
     <a href="page5.php">page5</a> ||
     <a href="adminimages.php">adùinistration des images</a> ||
     <a href="membres.php">membres (images validé et points)</a> ||
     
     <?php
     /* image 1 */
     ?>
     <center>
    <h2> Image 1 :</h2>
    </br> 
    <h2> Changer l'image 1 :</h2>
    <center>
    <FORM Method="POST" Action="http://localhost/queteimages/adminimages1.php" >
    URL de l'image :</br><INPUT type="text" size="20" name="image1" ><BR>
    </br><INPUT type="submit"  value="Envoyer" ><BR>
    <INPUT type="hidden"  name="Afficher" value="OK" ><BR>
    </FORM>
    </center>
    <center>
    	<h2> Code de l'image 1 a inssérer dans la page ou vous voulez cacher l'image 1 :</h2>
    	</br>
    	<?php
    	require('config.php');
        $idimage1 = 1 ;
    	$sql = "SELECT images FROM tb_imagesquete WHERE idimages ='$idimage1'";
    	$resultat = mysql_query($sql);
    	$image = mysql_fetch_array($resultat);
    	$urlimage=$image['images'];
    ?>
    	<center><TEXTAREA name="codeimages1" rows="5" >
    <a href="http://localhost/queteimages/clicimages1.php" target="_blank">
    <img src="
    <?php 
    echo $urlimage ; 
    ?> 
    "></a>
    </TEXTAREA>
     
    <?php
     /* image 2 */
     ?>
     
    <h2> Image 2 :</h2>
    </br> 
    <h2> Changer l'image 2 :</h2>
    <center>
    <FORM Method="POST" Action="http://localhost/queteimages/adminimages2.php" >
    URL de l'image :</br><INPUT type="text" size="20" name="image2" ><BR>
    </br><INPUT type="submit"  value="Envoyer" ><BR>
    <INPUT type="hidden"  name="Afficher" value="OK" ><BR>
    </FORM>
    </center>
     
    	<h2> Code de l'image 2 a inssérer dans la page ou vous voulez cacher l'image 2 :</h2>
    	</br>
    	<TEXTAREA
    <a href="http://localhost/queteimages/clicimages2.php" target="_blank">
    <img src="
    <?php 
    require('config.php');
    $idimage2 = 2 ;
    $query = "SELECT images FROM tb_imagesquete WHERE idimages ='$idimage2'";
    mysql_query($query) or die('ERREUR 4 :'.mysql_error());
    echo $query ; 
    ?> 
    "></a>
    </TEXTAREA>
     
    <?php
     /* image 3 */
     ?>
     
    <h2> Image 3 :</h2>
    </br> 
    <h2> Changer l'image 3 :</h2>
    <center>
    <FORM Method="POST" Action="http://localhost/queteimages/adminimages3.php" >
    URL de l'image :</br><INPUT type="text" size="20" name="image3" ><BR>
    </br><INPUT type="submit"  value="Envoyer" ><BR>
    <INPUT type="hidden"  name="Afficher" value="OK" ><BR>
    </FORM>
    </center>
     
    	<h2> Code de l'image 3 a inssérer dans la page ou vous voulez cacher l'image 3 :</h2>
    	</br>
    	<TEXTAREA
    <a href="http://localhost/queteimages/clicimages3.php" target="_blank">
    <img src="
    <?php 
    require('config.php');
    $idimage3 = 3 ;
    $query = "SELECT images FROM tb_imagesquete WHERE idimages ='$idimage3'";
    mysql_query($query) or die('ERREUR 6 :'.mysql_error());
    echo $query ; 
    ?> 
    "></a>
    </TEXTAREA>
     
    <?php
     /* image 4 */
     ?>
     
    <h2> Image 4 :</h2>
    </br> 
    <h2> Changer l'image 4 :</h2>
    <center>
    <FORM Method="POST" Action="http://localhost/queteimages/adminimages4.php" >
    URL de l'image :</br><INPUT type="text" size="20" name="image4" ><BR>
    </br><INPUT type="submit"  value="Envoyer" ><BR>
    <INPUT type="hidden"  name="Afficher" value="OK" ><BR>
    </FORM>
    </center>
     
    	<h2> Code de l'image 4 a inssérer dans la page ou vous voulez cacher l'image 4 :</h2>
    	</br>
    	<TEXTAREA
    <a href="http://localhost/queteimages/clicimages4.php" target="_blank">
    <img src="
    <?php 
    require('config.php');
    $idimage4 = 4 ;
    $query = "SELECT images FROM tb_imagesquete WHERE idimages ='$idimage4'";
    mysql_query($query) or die('ERREUR 8 :'.mysql_error());
    echo $query ; 
    ?> 
    "></a>
    </TEXTAREA>
     
    <?php
     /* image 5 */
     ?>
     
    <h2> Image 5 :</h2>
    </br> 
    <h2> Changer l'image 5 :</h2>
    <center>
    <FORM Method="POST" Action="http://localhost/queteimages/adminimages5.php" >
    URL de l'image :</br><INPUT type="text" size="20" name="image5" ><BR>
    </br><INPUT type="submit"  value="Envoyer" ><BR>
    <INPUT type="hidden"  name="Afficher" value="OK" ><BR>
    </FORM>
    </center>
     
     
    	<h2> Code de l'image 5 a inssérer dans la page ou vous voulez cacher l'image 5 :</h2>
    	</br>
    	<TEXTAREA
    <a href="http://localhost/queteimages/clicimages5.php" target="_blank">
    <img src="
    <?php 
    require('config.php');
    $idimage5 = 5 ;
    $query = "SELECT images FROM tb_imagesquete WHERE idimages ='$idimage5'";
    mysql_query($query) or die('ERREUR 10 :'.mysql_error());
    echo $query ; 
    ?> 
    "></a>
    </TEXTAREA>
     
    </body>
    </html>

  2. #2
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 318
    Points
    318
    Par défaut
    Bonjour,
    pour les 2 pages membres.php et adminmages.php j'ai une remarque:
    Tu fais assigner à ta variable $_SESSION['login'] une variable qui n'existe pas $pseudo (nulle normalement), donc tu détruit ta variable de session login, c'est normal que quand tu passe à la page suivante elle n'existe pas.
    Peut être que c'est de là d'où vient le problème !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	<?php
             session_start(); 
    	 $_SESSION['login'] = $pseudo;
    if(!isset($_SESSION["login"]) || $_SESSION["login"] == "")
    {
    	header("Location membres.php") ;
    }
    		 ?>
    Correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	<?php
             session_start(); 
      $pseudo=$_SESSION['login'];
    if(!isset($_SESSION["login"]) || $_SESSION["login"] == "")
    {
    	header("Location:membres.php") ;
    }
    		 ?>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Sa revient au même aucun changement.

    et concernant $pseudo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pseudo = mysql_real_escape_string(htmlspecialchars ($_POST['login']));
    qui a été défini deux fois une fois sur la validation du formulaired'inscription et une fois sur membres.php avec cette même variable

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    Si on pouvait avoir un peu plus d'infos sur la config php de ton serveur, on trouverait plus rapidement la source du problème.

    Pourrais tu nous donner un lien d'un <?php phpinfo() ?>

    Aucun warnings de la part de php sinon?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par Joelindien Voir le message
    Si on pouvait avoir un peu plus d'infos sur la config php de ton serveur, on trouverait plus rapidement la source du problème.

    Pourrais tu nous donner un lien d'un <?php phpinfo() ?>

    Aucun warnings de la part de php sinon?

    Non aucun warning de la par de php.

    Voici le résultat du php info :


Discussions similaires

  1. Code Javascript qui ne fonctionne pas d'une page à l'autre
    Par Vict0 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 06/03/2011, 22h44
  2. Input qui ne reste pas dans une div
    Par miniBob dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/06/2010, 23h58
  3. Condition qui ne fonctionne pas dans une page jsp
    Par Lopak dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 29/04/2010, 16h37
  4. define() ne passe pas d'une page à l'autre
    Par Freeluvs dans le forum Langage
    Réponses: 5
    Dernier message: 04/11/2009, 01h27
  5. Réponses: 2
    Dernier message: 06/09/2007, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo