Tutoriel

Tutoriel -- Un petit guide d'utilisation de Auth_PrefManager

Mettre en place la base de données

La première étape est de mettre en place la base de données qui va acceuillir les données. Pour ce tutorial, on considére que vous connaissez déjà les bases de l'utilisation de la classe PEAR DB.

Pour créer la table par défaut, exécutez la requète sql suivante :

Mettre en place votre premier objet PrefManager

Pour utiliser Auth_PrefManager, nous devons d'abord créér une instance de l'objet de base, comme présenté ci-dessous.

Fixer et mettre en place les preferences par défaut

Maintenant que nous avons l'objet PrefManager, nous pouvons l'utiliser pour fixer certaines valeurs.

Pour ce tutorial nous allons permettre aux utilisateurs de spécifier leur pays, et considérer que tout utilisateur qui n'a pas choisi de pays est quelque part sur la terre.

Premièrement nous devons fixer les valeurs en utilisant setDefaultPref.

Maintenant que les valeurs par défaut sont données, nous pouvons créer une page (très) basique, pour accueillir les utilisateurs avec un message personalisé.

Actuellement le message "Bienvenue aux habitant de la planète!" ne sera plus affiché qu'aux utilisateurs n'ayant pas configuré leur pays.

Fixer les préférences d'un utilisateur

Finalement, nous avons besoin de donner aux gens un moyen de choisir le pays dans le quel ils sont.

Cela va être fait avec un simple text box, et vous devriez évidemment faire un peu plus attention dans une vraie application au sujet des permissions aux utilisateurs de fixer les préférences des autres personnes!

Le bouton "Reset Country" va éffacer la personalisation de l'utilisateur, et provoquer le réaffichage du message par défaut.

Maintenant, chaque nouvel utilisateur encodera son nom d'utilisateur, et son pays, Et quand il se connectera, il recevra un accueil personnalisé.

Le code source complet

Exemple 29-6. Le code source de la page d'exemple

<h1>Fixer le pays</h1>
<?php
require_once('Auth/PrefManager.php');

// Création de l'objet PrefManager
$dsn = 'mysql://user:password@localhost/database';   // Changer le dsn pour celui de votre base.
$options = array('serialize' => true);               // Activer la linéarisation des données avant l'enregistrement, cela assure que les valeurs seront proprement récupérables.
$prefmanager = new Auth_PrefManager($dsn, $options); // Créer l'objet.

// Fixer la valeur par défaut (cela ne doit pas être fait chaque fois que le script tourne).
$prefmanager->setDefaultPref('country', 'Terre');

// Permettre aux utilisateurs de spécifier leur pays et nom d'utilisateur.
if (isset($_POST['submit'])) {
$username = htmlspecialchars($_POST['username']);
$prefmanager->setPref($username, 'country', $_POST['country']);
} else if (isset($_POST['reset'])) {
$username = htmlspecialchars($_POST['username']);
$prefmanager->deletePref($username, 'country');
} else {
$username = 'invité';
}
?>
<h1>Bienvenue aux personnes de <?php echo $prefmanager->getPref($username, "country")?>!</h1>
<h2>Sélectionnez votre pays et nom d'utilisateur</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>">

 <label for="username">Nom d'utilisateur</label> :
 <input name="username" value="<?php echo $username?>" />
 <br />
 <label for="country">Pays</label> :
 <input name="country" value="<?php echo $prefmanager->getPref($username, 'country')?>"/>
 <br />
 <input type="submit" name="submit" value="Enregistrer" />
 <input type="submit" name="reset" value="Réinitialiser" />
</form>