(...)

// Nom du fichier à récupérer
char url [14];

// Cookies récupérés
char cookies [50];

(...)

void loop ()
{
    EthernetClient client;
    File descfic;
    char valhaut [6], vallarg [6], valtime [15];
    long timesec, hloc;
    int  heure, min, sec;
    char heure_aff [10];


    // Regarde si un client est connecté et attend une réponse
    client = serveur.available ();

    // si c'est le cas, quelqu'un est connecté
    if (client)
    {
        // récupérer ce qu'il a envoyé
        lire_trame_client (client, url, sizeof (url), 0, 0, cookies, sizeof (cookies));

        // si aucun nom de fichier ne figure dans l'url
        if (! url [1])
            // mettre le nom du fichier d'accueil
            strcpy (url, "cookies.htm");

        // tenter d'accéder à au fichier HTML
        descfic = SD.open (url, FILE_READ);

        // si on n'a pas réussi, tenter la page d'erreur
        if (! descfic)
            descfic = SD.open (F("/err404.htm"), FILE_READ);

        // envoi de l'entête de la page web
        envoie_entete_reponse (client, url);

        // si on accède au fichier html
        if (descfic)
        {
            // récupérer la valeur des cookies, mettre un ? s'il n'y en a pas
            if (! lecval_cookie ("hauteur", cookies, valhaut))
                strcpy (valhaut, "?");

            if (! lecval_cookie ("largeur", cookies, vallarg))
                strcpy (vallarg, "?");

            if (! lecval_cookie ("secondes", cookies, valtime))
                strcpy (valtime, "?");

            // afficher jusqu'à la taille de la fenêtre vue des cookies
            coprep_chaine (descfic, client, "XXXLARG", vallarg);
            coprep_chaine (descfic, client, "XXXHAUT", valhaut);

            // puis l'heure locale du client vue du cookie
            coprep_chaine (descfic, client, "XXXTIME", valtime);

            // extraire l'heure locale
            timesec = atol (valtime);
            hloc = (timesec + 3600) % 86400;
            heure = hloc / 3600;
            min = (hloc / 60) % 60;
            sec = hloc % 60;

            // mise en forme
            sprintf (heure_aff, "%2d:%02d:%02d", heure, min, sec);

            // afficher l'heure locale vue du cookie
            coprep_chaine (descfic, client, "XXXHLOC", heure_aff);

            // envoi de la page ou de la fin de page
            copie_jusque_fin (descfic, client);

            // ferner le fichier HTML
            descfic.close ();
        }
        // sinon message d'erreur
        else
            client.println (F("Probleme probable d'acces a la carte SD"));

        Serial.println (F("Page envoyée\n"));

        // Donne le temps au client de prendre les données
        delay (10);

        // Ferme la connexion avec le client
        client.stop ();
    }
}