Session

nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 27 oct. 2007 à 12:02
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 - 27 oct. 2007 à 23:03
Bonjour tout le monde, mon problème est le suivant :
j'ai une page connection.php qui permet de se connecter et je voudrai que si l'utilisateur est recconu $_SESSION['pseudo'] soit égal au pseudo inscrit dans la zone de texte et que $_SESSION['password'] soit égal au mot de passe entré dans la zone de texte et que sinon $_SESSION['pseudo'] et $_SESSION['password'] soit tout les deux égal à 0. voici mon code :

<?php
session_start();
if ( !isset($_POST['login']) || !isset($_POST['pass']) ) // On Vérifie si le formulaire à  été envoyé... sinon on l'affiche.
{
?>
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
   <head>
       <title>Connexion</title>
       <meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"/>
    <link rel="stylesheet"media="screen"type="text/css"title="page1style"href="design/page1style.css"/>
   </head>
  
   

    

<?php
include('menu.php');
?>
          
       
      

  

  <form action="connection.php"method="post">
   Pseudo :

   Mot de passe :
  
  </form>
  

   
     </html>


<?
exit(); // Sécurité pour le script ==> Si le formulaire n'a pas été envoyé, le script s'arrètera ici !
}
else
{
        // On référence les variables, pour pouvoir mieux les utiliser...
        $login = trim($_POST['login']);
        $pass = trim($_POST['pass']);


         $link = mysql_connect ('localhost' ,'nicomilville' ,'' ); // on se connect a la base de données


         $sql = "SELECT * FROM profil WHERE `pseudo`='$login' AND `mot de passe`='$pass'"; // on prépare la requette
         $result = mysql_db_query("programmeur_db",$sql,$link); //on execute la requette




        // On crée la condition, toujours pour une question de sécurité, on commence par l'inverse de ce qu'on souhaite !
        if (mysql_num_rows($result)<1) // Si les infos fournis ne sont pas bon(la requette na renvoyée aucun résultat).
        {
  $_SESSION['pseudo'] = 0;
  $_SESSION['password'] = 0;
        ?>


  <html xmlns="http://www.w3.org/1999/xhtml"xml:lang="fr">
   <head>
       <title>Connexion</title>
       <meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"/>
    <link rel="stylesheet"media="screen"type="text/css"title="page1style"href="design/page1style.css"/>
   </head>
  
   

    

<?php
include('menu.php');
?>
          
       
      

  

   Identifiants de connection incorect

  <form action="connection.php"method="post">
   Pseudo :

   Mot de passe :
  
  </form>
  

   
     </html>


        <?php


        exit(); // Même chose que tout à l'heure...
        }
        else //sinon c'est bon
        {
//fin de la partie modifiée
$_SESSION['pseudo'] = $_POST['login'];
$_SESSION['password'] = $_POST['pass'];
        ?>
 
  <html xmlns="http://www.w3.org/1999/xhtml"xml:lang="fr">
   <head>
       <title>Bienvenue !!!</title>
       <meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"/>
    <link rel="stylesheet"media="screen"type="text/css"title="page1style"href="design/page1style.css"/>
   </head>
  
   

    

<?php
include('menu.php');
?>
          
       
      

   

  Bonjour <?php echo $login; ?> !

  Voulez-vous :
 
  Ou :
 
  <li>[index.php Retourner à l'acueil]</li>
 
 

 
  </html>


        <?php
        };
};
if($_POST['login']=='admin' && $_POST['pass']=='nicomilville')
$_SESSION['pseudo'] = $_POST['login'];
$_SESSION['password'] = $_POST['pass'];
{
?>


  <html xmlns="http://www.w3.org/1999/xhtml"xml:lang="fr">
   <head>
       <title>Bienvenue admin</title>
       <meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"/>
    <link rel="stylesheet"media="screen"type="text/css"title="page1style"href="design/page1style.css"/>
   </head>
  
      <script language="javascript">
   <!--
   alert("bonjour admin !!!");
   -->
   </script>
   

  Bonjour <?php echo $login; ?> !

  Voulez-vous :
  <li class="administration">[gerer_news.php Gérer les news !]</li>
  <li class="administration">[gerer_tutoriaux.php Gérer les tutoriaux !]</li>
  <li class="administration">[gerer_compte.php Gérer les comptes !]</li>
  <li class="administration">[gerer_site.php Gérer le site !]</li>
  <li class="administration">[gerer_forum.php Gérer le forum !]</li>
  <li class="administration">[gerer_chat.php Gérer le chat !]</li>
  Ou :
 
  <li>[index.php Retourner à l'acueil]</li>
 
 

 
  </html>


<?php
};
?>

Et comment faire pour faire une condition si l'utilisateur est connecter on peut accéder à la page sinon ça affiche un message du genre vous n'êtes pas connecté

 Si je peut me rendre utile demander

1 réponse

Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
27 oct. 2007 à 23:03
C'est mignon de mettre 42 fois le même code html dans une page avec juste quelques détails qui changent...
Ensuite, stocker un mot de passe en clair dans une variable $_SESSION c'est _vraiment_ pas propre. A la limite, un hash md5.

"if (mysql_num_rows($result)<1)" perso j'utilise un if (mysql_num_rows($result) != 1), vu que le couple username/mot de passe est censé me renvoyer uniquement 1 résultat (sinon, problème d'incohérence dans ta base...)

Ton code n'arrivera jamais dans la partie "if ($_POST['nom'] == "admin"...) de plus, ton accolade juste après le if est mal placée.

Finalement, ya pas de ; après une accolade fermante.

Sinon ton code pour ton histoire de session à l'air ok (chuis pas en état de debugger ce soir).
0
Rejoignez-nous