Problème simple de sessions !

Résolu
Bonjour à tous,

Voila mon problème est simple. J'ai crée une base de données avec des utilisateurs ainsi qu'un espace de connexion sur l'index de mon site. Le but étant que seule la page d'accueil soit visible en "non-connecté".

J'ai donc appliqué un code sur les autres pages afin d'utiliser les sessions pour voir les pages. Un visiteur ne doit pas pouvoir ces pages. Voici mon code, si vous pouviez m'aider rapidement ;)

Merci d'avance !

<?php
session_start();
if (isset($_SESSION['id'])) {
?>

<!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 http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="robots" content="noindex, nofollow"/>
<meta name="Googlebot" content="nofollow">
<link rel="shortcut icon" href="icone.png" type="image/png" />
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />

<title>titre</title>
</head>

<body>

<div id="corpus"><br/>
 <ul class="navigation">
<li class="current"><a href="index.php"><em class="home"></em><b>Accueil</b></a></li>
<li><a href="blog.html"><em class="shop"></em><b>Les News</b></a></li>
<li><a href="access.html"><em class="templates"></em><b>Demande d'Acces</b></a></li>
<li><a href="ftp.html"><em class="psd"></em><b>Comment Faire</b></a></li>
<li><a href="allow.html"><em class="tutorials"></em><b>Regles</b></a></li>
</ul>

Contenu de la page ...

</div>
<div id="footer"> </div>

</body>
</html>

<?php
}
else
{
echo "Vous devez vous connecter";
}
?>

23 réponses

  1. Je me sens idiot mais bon le problème est résolu. J'avais bêtement oublié de mettre l'extension en .php, elle était restée en .html.

    Merci quand même pour l'aide ;)
    0
    1. Je teste ca ;) merci

      EDIT : Sans résultat....
      0
      1. Hébergeur personnel ;)

        Pourquoi ?
        0
        1. Contributeur
          Bonsoir :)

          Tu serais pas chez free par hasard ??
          0
          1. Ce sont des liens relatifs a la racine du site, tous.
            0
            1. Tu es bien toujours dans le même domaine pour toutes tes pages ?
              tes liens sont absolus ou relatifs ? (meme si que ce soit l'un ou l'autre, il devrait y avoir quand meme un id de session :S)
              0
              1. Pourtant il n'y a rien et j'ai essayer l'echo partout dans le fichier, même parmi le texte. Rien. J'ai vraiment besoin d'aide là.
                0
                1. Ben là dsl mais jvois vraiment pas :O

                  tu dis que l'id de session de s'affiche pas ?
                  pourtant après un session_start(), yen a forcément un, parce que si ya pas de session, le session_start en créé une :O
                  0
                  1. TOUT mes débuts de page se structurent ainsi :'(

                    <?php
                    session_start();
                    echo session_id();
                    ?>
                    <!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">
                    0
                    1. tes session_start sont ils tous tout en haut de tes pages ?
                      parce qu'il ne faut aucun code qui soit généré avant un session_start
                      0
                      1. C'est étrange...l'ID de session ne veux que s'afficher sur ma page d'index ! Des idées ?
                        0
                        1. essayes de faire un echo session_id() après chacun de tes session_start, et regarde si c'est bien la même chose qui est affiché
                          0
                          1. Si bien sur je l'ai. Mais le problème ce sont les autres pages que je n'arrive pas a protéger avec le code que j'ai mis dans mon 1er post :(
                            0
                            1. Et donc, dans ta page, t'as pas le "Vous êtes connecté en tant que " qui est affiché ?
                              0
                              1. Non ca ne change rien si je supprime ca ;)

                                Je pense que c'est utilisé pour la deconnexion.
                                (C'est un ami qui a codé cette partie et il m'a donné un code pour sécuriser la page mais ca ne fonctionne pas :( )

                                PS: j'ai vérifié le session_destroy...il est utilisé en effet pour la deconnexion. On ne peut pas se deconnecter sans.
                                0
                                1. Je vérifies ca :) Merci
                                  0
                                  1. Heu
                                    ton session_destroy ne s'enclenche pas tout de même ?
                                    sinon ca va pas marcher ^^
                                    0
                                    1. Voici le code php complet alors, pardonnez moi :s

                                      <?php
                                      session_start();

                                      //Deco !
                                      if($_GET['act'] == 1)
                                      {
                                      session_destroy();

                                      }
                                      //Connexion
                                      if(isset($_POST['pseudo']) AND isset($_POST['mdp']))
                                      {
                                      mysql_connect("...."); // Connexion à MySQL
                                      mysql_select_db("...."); // Sélection de la base

                                      $retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM ... WHERE pseudo='" . mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])) . "' AND mdp='" . mysql_real_escape_string(htmlspecialchars($_POST['mdp'])) . "'");
                                      $donnees = mysql_fetch_array($retour);

                                      if($donnees['nbre_entrees'] == 1)
                                      {
                                      $_SESSION['id'] = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
                                      }
                                      else
                                      {
                                      echo "Erreur !";
                                      }
                                      }
                                      ?>
                                      <!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 profile="http://gmpg.org/xfn/11">

                                      </head>

                                      <body>
                                      <div id="corpus"><br/>
                                       
                                      <ul class="navigation">

                                      </ul><br/>
                                      <?php if(isset($_SESSION['id']))
                                      {
                                      echo "Vous êtes connecté en tant que " . $_SESSION['id'] . " (<a href='?act=1'>Logout</a>) ";
                                      }
                                      else
                                      {
                                      ?>
                                      <form method="post" style="float:right;">
                                      Login:
                                      <input type="text" name="pseudo"/> 
                                      Password :
                                      <input type="text" name="mdp"/>
                                      <input type="submit" value="Se connecter"></form>
                                      <?php
                                      }
                                      ?>
                                      <br/><br/><br/>
                                      contenu
                                      <br/>
                                      </div>
                                      <div id="footer"> </div>

                                      </body>
                                      </html>
                                      0
                                      • 1
                                      • 2