TD 5 : PHP - Fonctions & Gestion d'accès

Prérequis : TD HTML + TD CSS + TD PHP/MySQL 1 & 2

Objectif : Amélioration du site :

1. Création d'une boite à outils (fichier "outils.php")

Afin d'optimiser le code source produit et d'éviter ainsi de répéter des lignes identiques dans tous les fichiers (la connexion à la base de données, l'affichage du menu, l'affichage du pied de page, ...), nous allons créer une boite à outils servant de bibliothèque de fonctions pouvant être utilisée dans tous les fichiers du site.

2. Standardisation des pages du site
(utilisation de la bibliothèque de fonctions PHP)

Après avoir créé la bibliothèque de fonctions, nous allons maintenant modifier chacune des pages du site pour que celles-ci utilisent les fonctions créées.

Etant donnée que toutes les pages vont maintenant contenir du code PHP, il est nécessaire de renommer toutes les pages statiques HTML (.html) en pages dynamiques PHP (.php)

3. Gestion des droits d'accès

On doit faire en sorte que l'accès à la rubrique "ajouter une annonce" ou "supprimer une annonce" doit être réservé uniquement aux personnes authentifiées.

Il faut alors créer un formulaire permettant à un utilisateur de s'authentifier (login + mot de passe)

La gestion de l'authentification se fera par l'utilisation des variables de sessions en PHP.

Il faudra également protéger les pages "réservées" en vérifiant l'existence de variables de sessions suite à l'authentification

<?php

		// Démarre une nouvelle session ou reprend une session existante

		session_start();


		// recuperation des valeurs du formulaire d'authentifcation

		$login = $_POST["login"] ;
		$mdp = $_POST["mdp"] ;


		// test

		if ($login == "hei" && $mdp == "hei" )
			{
				// authentification réussie
				// création des variables de sessions 
				// auth et nom avec les "bonnes valeurs"
				$_SESSION["auth"] = 1 ;
				$_SESSION["nom"] = "HEI" ;
			}
		else
			{
				// echec à l'authentification
				// création des variables de sessions 
				// auth et nom avec les "mauvaises valeurs"
				$_SESSION["auth"] = 0 ;
				$_SESSION["nom"] = "" ;
			}


		// bibliothèque

		require('outils.php') ;

?>
<?php

    // Démarre une nouvelle session ou reprend une session existante

    session_start();


    // test d'existence de la variable de session auth

    if ( !isset($_SESSION["auth"]) || $_SESSION["auth"] == 0 )
		{
            // redirection
            header("location:formulaire.php");
     }

    
    // bibliothèque
    
    require('outils.php') ;

?>

<?php

		// Démarre une nouvelle session ou reprend une session existante

		session_start();


		// destruction des variables de session

		unset($_SESSION["auth"]);
		unset($_SESSION["nom"]);


		// destruction de la session

		session_destroy();	

    
		// bibliothèque
    
		require('outils.php') ;

?>