<?php
require 'sendRequest.php';
// On définit la clef d'authentification (peut être beaucoup plus complexe, plus
// longue avec minuscules, majuscules, caractères spéciaux, etc.)
define('REQUEST_AUTHENTICATE', '657c080af2561edfea164e9f0c6af7bde673a3a310d78');
// On définit l'URL du script distant.
define('REMOTE_CALL_URL', 'http://serveur-donnees.com/remote.php');

try {
   // Envoie la requête
   $result = sendRequest(REMOTE_CALL_URL, REQUEST_AUTHENTICATE, 'membre::liste');
   // Valide que le retour est bien un tableau
   assert('is_array($result)');
} catch(Exception $e) {
   // On génère une trace dans les logs
   error_log('l\'appel à la fonction distante "membre::liste" a généré l\'erreur'
        . ' suivante : ' . $e->getMessage());
   // On redirige l'utilisateur vers une page de maintenance.
   header('location: http://www.site-web.com/system-error.php');
   exit;
}

// Le tableau est vide, il n'y a donc pas de membre inscrit
if (empty($result)) echo '<p>Aucun membre inscrit</p>';
else {
   // On construit la liste des membres.
   echo '<ul>';
   foreach($result as $membre) {
      // On valide que chaque élément contient bien un nom et prénom
      assert('isset($membre[\'nom\']) and isset($membre[\'prenom\'])');

      printf('<li>%s %s</li>',
         // Ne pas oublier de protéger les caractères spéciaux
         htmlspecialchars($membre['nom']),
         htmlspecialchars($membre['prenom'])
         );
   }
   echo '</ul>';
}

?>

