Cette troisième partie est dédiée à l'écriture d'une bibliothèque PHP que nous compléterons au fur et à mesure de l'avancée du projet. Pour l'instant, cette bibliothèque contiendra trois fonctions :
À la racine du site, créez un nouveau dossier lib
dans lequel vous allez créer
un fichier lib.php
.
Dans le cadre de ce projet, nous n'allons pas développer un système d'authentification avec un identifiant et un mot de passe. Chaque liste de course sera accessible publiquement, mais sera protégé par une clé pour empécher des visiteurs indélicats d'accéder à des listes qui ne leur appartiennent pas. Plus tard (dans la section Création d'une nouvelle liste), la clé sera passée en paramètre dans l'URL de la page et servira de système de vérification. Même si ce principe n'est pas totalement fiable, il présente l'avantage de pouvoir être mis en oeuvre rapidement.
Pour l'instant, nous allons juste écrire la fonction de génération de la clé.
Ecrire une fonction generateKey($length = 32)
qui retourne une clé aléatoire de longueur
$length
composée de :
La syntaxe suivante vous permet d'inclure la bibliothèque dans les scripts où vous souhaitez l'utiliser :
require_once('/chemin_a_modifier/lib.php');
Testez votre fonction avant de poursuivre.
Il est important, pour des raisons de sécurité et d'ergonomie, de traiter correctement
les erreurs qui pourraient survenir. Pour permettre la flexibilité de notre architecture,
nous allons rediriger tous les messages d'erreur vers la fonction errorManager($message, $url = NULL)
que nous allons écrire dans la bibliothèque lib.php
.
La fonction errorManager($message, $url = NULL)
:
$message
) ;$url
après 5 secondes ;Écrire et tester la fonction.
Ecire une fonction dbConnect()
qui va se connecter à la base de données :
$db
.errorManager
avec une message approprié.Testez votre fonction avant de poursuivre.
Écrire une fonction dbNewList($db, $name, $ukey = NULL)
qui crée une nouvelle liste de courses dans la table
lists
. Les paramètres de la fonction sont :
$db
est l'objet retourné par la fonction dbConnect
;$name
est le nom de la liste de courses ;$ukey
est la clé de sécurité. Si ce paramètre est NULL, la fonction génére une
clé de 32 caractères. Testez votre fonction avant de poursuivre.
Complétez le script new.php
afin que ce dernier
trim
;/list/?id=_____&key=________________________________
.Si une erreur survient pendant l'exécution du script, afficher un message approprié et arrêtez le script.
Si tout s'est bien déroulé, le script redirige l'utilisateur vers la page générique /list/
avec des paramètres que nous utiliserons plus tard. Pour l'instant, créez un dossier
list
à la racine du site. Créez dans ce dossier un fichier index.php
qui contient
le code provisoire suivant :
<?php
var_dump ($_GET);
Testez la création d'une nouvelle liste. Pensez à nettoyer la base de données lorsque vous aurez terminé.