Script de vérification formulaire utilisé php

Tout d'abord on va créer une petite base de données avec les tables suivantes :

user (no_user, compte_user, pass_user , no_groupe,photo_user ); # cette table sert à stocker les les comptes d'utilisateurs
groupe_user (no_groupe,nom_groupe); # les groupe d'utilisateurs
fonctionnalites (no_fonc, nom_fonc); # les fonctionnalités sur le site
autorisation_page(no_fonc,no_groupe) #définir les droits d'accès aux fonctionnalités de la page pour chaque groupe d'utilisateur

Mes fichiers

- erreurs.php --> servi l'affichage des erreurs sur la page
- centre.php --> servi l'affichage du centre de la page
- init.php --> initialisation de la variable $_SESSION :

<?
    @session_start();
    $_SESSION['user']="visiteur"; // affecter les valeurs initiale pour la variable $_SESSION
    $_SESSION['stat']="visiteur";
    $_SESSION['no_groupe']=4;   
?>

- menunav.php, menunav_gauche.php --> servi l'affichage de l'affichage des menus de navigation.

<?
session_start();
var_dump($_SESSION);
include "db_connect.php";   // insérer la page db_connect --> contient les fonctions de la connection à la base de données.
include "erreurs.php";  // pour le gestion d'affichage d'erreurs
 /*************************************************************************************************
   VERIFICATION DU COMPTE D'UTILISATEURS :  
       - Revevoir les information depuis le formulaire de login
       - Chercher tous les champs dans la table user
       - Balancer le résultat dans un tableau
       - Comparer l'égalité entre les valeurs reçues et les valeurs trouvée dans la base mysql
       - Démarrer le session si tout est ok **************************/
 if ((isset($_POST['login'])) && (isset($_POST['pass'])))  // si l'utilisateur se logue avec un compte et mot de passe
 {
  $compte=$_POST['login'];   //affecter la valeur du login  au $compte
  $passe=$_POST['pass'];     // et mot de passe
  $chercher_login="select * from user where compte_user='$compte' and pass_user='$passe'";      // sélectionner tous les éléments dans la table user
  $chercher=mysql_query($chercher_login) or die (mysql_error());    //exécution de la requête
  if($result=mysql_fetch_array($chercher))    //si le résultat pour le compte utilisateur et mot de passe trouvé corresponds au celui du login
  {       
   $group=$result['no_groupe'];    // affecter le valeur du groupe pour pouvoir trouvé le nom du groupe d'utilisateur
   echo $group;
   $search_group="select nom_groupe from groupe_user where no_groupe='$group'";      //chercher le nom du groupe auquel l'utilisateur appartient
   $search=mysql_query($search_group);    // on lance la recherche!
   $result_search=mysql_fetch_row($search);     // on indexe le résultat de la recherche dans un tableau
   @session_start();       // démarer une session
   $_SESSION['user']=$compte or die (mysql_error());  // enregistrement du compte utilisateur
   $_SESSION['no_groupe']=$result['no_groupe'];  // son numéro de groupe
   $_SESSION['no_groupe']=intval($_SESSION['no_groupe']) ; // conversion en integer
   $_SESSION['stat'] = $result_search[0] ;          // enregistre le statut de utilisateur
   $_SESSION['id']= session_id();       // variable contenant l'ID de la session
   $centre = "centre.php";                   // si l'utilisateur est enregistré alors affecter le centre de la page pour les user authentifié
   $_SESSION['image']=$result['photo_user'];   // pour l'affichage de la photo d'utilisateur

  // dans le cas ou il y a des erreurs de mot de passe ou login : afficher les messages d'erreurs 
  }
  elseif ($result['compte_user'] != $_POST['login'] && $result['pass_user']!= $_POST['pass'])
  {
   $centre=$erreur_login_pass;
  }
  elseif($result['pass_user']!= $_POST['pass'])
  {
   $centre=$erreur_pass;
  }
  elseif($result['compte_user'] != $_POST['login'])
  {
   $centre=$erreur_login;
  }
 }
 elseif ((!isset($_SESSION['user']))&& (!isset($_SESSION['stat'])))
 {
  include "init.php";
 }
 else
 {
  @session_start();
 }
?>
<? /* ************L'AFFICHAGE DE LA PAGE COMMENCE ICI *************/ ?>
<html>
<head><title>Index</title></head>
<body>
      <table width="100%" height="100%" border="1">
            <tr height="200px"><td height="135" align="center">Ici commence l'entête de la page</td >
            </tr> <!-- entête de la page -->
            <tr ><td height="40px" >L'intermédiaire</td></tr >
            <tr ><td>
                  <table height=="80%"  width="100%" border="1">
    <tr height="40px"><td width="50%" >Nous sommes le:<?php echo date("d - m - y"); ?></td>
       <td width="50%" >
           <table border=0>
              <tr>
                    <td width="100%">
                         <?php include "affiche_session.php"; ?>  //echo "<img src=\"$imag\">"; 
                   </td> 
                   <td><?
                           if ($_SESSION['stat']!='visiteur')
                           {
                               echo "<a href=\"log_out.php\">Deconnexion</a>";
                           }
                           else
                           {
                           echo "&nbsp;";
                           }
                          ?>
                    </td >
                 </tr >
           </table >
    </tr>
    <tr><td colspan="2">
     <table cellpadding="0" cellspacing="0" border="1" height="100%" align="center" width="100%">
            <tr>
            <td width="20%"><?php
               include "menunav.php"; 
                                              ?>
                                          </td>
            <td width="60%">
         <?
         if(@$centre=$erreur_login_pass ||$centre=$erreur_pass||$centre=$erreur_login )
         {
         if (@$result['compte_user'] != @$_POST['login'] && @$result['pass_user']!= @$_POST['pass'])
         {
          $centre=$erreur_login_pass;
          echo $centre;
         }
         elseif(@$result['pass_user']!= @$_POST['pass'])
         {
          $centre=$erreur_pass;
          echo $centre;
         }
         elseif(@$result['compte_user'] != @$_POST['login'])
         {
          @$centre=$erreur_login;
          echo $centre;
         }
         
         }
         else
         {
        include "$centre";
         }
         ?></td>
            <td width="20%"><? include "menunav_gauche.php"; ?></td>     <? // affichage du menu gauche de la page (facultatif) ?>
       </tr>
     </table>
      </td>
    </tr>
   </table>
      </td >
  </tr >
  <tr height="100px"><td colspan="2">Footer</td></tr>
      </table>
</body>
</html>

Après dans chaque page du site web, il faut faire : include "fonc_permis.php". La page fonc_permis.php est écrite de manière suivante:

<?php
@session_start();
include "erreurs.php";
include "db_connect.php";     // connexion à la base de données
function chercher_nom_fonc ($no_fonct)   // cette fonction renvoie le nom de la fonctionnalité selon le numéro envoyé
{
      $cherche_nom_fonc= "select nom_fonc from fonctionnalites where no_fonc = '$no_fonct'";  // la requete dans la base de données
      $go = mysql_query($cherche_nom_fonc) or die (mysql_error());  // exécution de la requête
      $result_cherche= mysql_fetch_row($go);  // affecter les valeurs trouvées de la recherche dans un tableau
      return $result_cherche[0];     // retourner le résultat trouvé
}   
$group= $_SESSION['no_groupe'];    // le nom du groupe d'utilisateur
$query1 = "select no_fonc from autorisation_page where no_groupe='$group'";  // recherche le numéro de fonctionnalités à partir de numéro de groupe
$execute = mysql_query($query1) or die (mysql_error());           // exécution de la requête

while ($result1= mysql_fetch_row($execute))
{
   $affiche= chercher_nom_fonc($result1[0]);            // pour chaque résultat de no_fonc nous cherchons le nom de fonctionnalités dans la table fonctionnalités
   if(strcmp($_SESSION['page'],$affiche)==0)   // on compare avec la page actuelle, si ils sont égaux alors
   {
  $auto=1;           // l'utilisateur a le droit d'accéder à cette page
   }
}

?>

Et n'oubliez pas de mettre un session_start() entete de chaque page (-;

Bon, j'espère que ce petit script vous aide un peu pour comprendre l'intérêt de la variable $_SESSION. Si vous avez des questions n'hésitez pas de m'écrire au: sontung2603@yahoo.com

Salut ! ;-)

Ce document intitulé « Script de vérification formulaire utilisé php » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous