JeuWeb - Crée ton jeu par navigateur
aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] (/showthread.php?tid=5255)

Pages : 1 2


aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - php_addict - 03-03-2011

bonjour à tous

je m'apprête à faire un cache pour les pages d'aide de mon projet.

les pages d'aide vont farfouiller dans la base de donnée pour y récupérer les données du jeu et c'est pour cela que je vais mettre en place un système de cache HTML

voici ce que je pensais faire: c'est de récupérer la variable serveur $_SERVER['REQUEST_URI'] et déterminer si le cache existe ou si il faut le créer.

pensez vous que cela soit une solution viable ?

bonne journée ensoleillée


RE: aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - niahoo - 03-03-2011

oui c'est classique et ça marche.


RE: aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - php_addict - 03-03-2011

un dernier petit doute:

la variable $_SERVER['REQUEST_URI'] n'est jamais vide (je pense au HTTP_REFERER qui est souvent masqué)...j'imagines que non vu que c'est un varaible serveur et non une variable issue du navigateur...mais j'ai quand meme un petit doute...


RE: aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - niahoo - 03-03-2011

ça, ça dépends uniquement de la config du serveur !

mais généralement c'est ok !


RE: aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - php_addict - 04-03-2011

ok merci, mon systeme de cache est en place

par contre pour ceux qui ont l'intention de mettre en place un systeme de cache en utilisant $_SERVER['REQUEST_URI'] il faut faire attention aux parametres de l'url, et bien les vérifier avant la génération du cache car cela peut multiplier les fichiers cache inutilement, par exemple :

aide.php?id=1 --> où id est un parametre 'valide' qui correpond rellement à un contenu
aide.php?id=112321 --> où id est un parametre 'invalide' qui ne correpond pas à un contenu et donc il ne faut pas mettre en cache cette url mais retourner le cache de l'index par exemple...


RE: aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - niahoo - 04-03-2011

Logiquement, ta page aide est censée renvoyer une erreur 404 si l'id passé en paramètre ne correspond à rien dans la base. Logiquement tu le découvres avant de faire appel au système de cache.

Un système de cache qui se contenterait d'englober tout le traitement du site sans distinction est selon moi une mauvaise idée.


RE: aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - php_addict - 04-03-2011

(04-03-2011, 06:07 PM)niahoo a écrit : Un système de cache qui se contenterait d'englober tout le traitement du site sans distinction est selon moi une mauvaise idée.

je ne suis pas certain de comprendre, par exemple imaginons l'url suivante:

aide.php?batiment=32

le bâtiment 32 n'existe pas, donc dans la version "sans cache" le traitement est fait un peu comme ceci:

- on interroge la bdd pour savoir si le bâtiment 32 existe
- il n'existe pas, on affiche la vue du style "ce bâtiment n'existe pas"

le but du cache étant de ne pas faire appel à la base de donnée

c'est pour cela que je pensais qu'il faut mieux tester les paramètres de l'url avant de tester si la version cache existe, sinon un fichier cache nommé par exemple $filename = md5('aide.php?batiment=32') va être écrit sur le disque dur et donc c'est la poisse...

ce que j'ai mis en place est la chose suivante:

- on dispose d'un fichier de configuration qui dit qu'il n'y a que 12 batiments (c'est un exemple)
- test des parametres de l'url
* si le batiment 32 n'existe pas (selon notre fichier de configuration) alors on propose la vue de aide.php par exemple
* si le batiment 10 existe : si le cache existe on l'affiche sinon on créé le cache (interroge la bdd) et on l'affiche.

non? il y a peut être un point que je n'ai pas compris...


RE: aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - niahoo - 04-03-2011

C'est bon ton truc, ça fonctionne.

Ce que je te disais, c'est que 'normalement' tu envoies une 404 pour indiquer que ce qui à été demandé n'existe pas, mais c'est ma méthode, la tienne fonctionne aussi. voilà comment je voyais la chose:

?b=32 -> on regarde si le fichier md5(?b=32).html existe -> il n'existe pas, il faut donc le générer -> on procède comme pour n'importe quelle page, on appelle la base de données -> le 32 n'existe pas, on renvoie une 404, avec comme affichage l'aide comme tu le dis (404 n'est pas synonyme de "page apache par défaut toute moche", tu le sais je pense)

Alors oui, cette technique fais plus appel à la base, mais si un mec s'amuse à te spammer de requêtes avec b=32 tu dois normalement le pécho pour spam, et pour les utilisateurs normaux, si ton site est bien fait et bien il n'y a pas de raison qu'il y ait beaucoup de monde qui appelle des pages inexistantes de ton wiki.


RE: aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - srm - 04-03-2011

Tu peux aussi mettre en cache le résultat de la requête ^^


RE: aide du jeu - cache HTML - $_SERVER['REQUEST_URI'] - Sephi-Chan - 07-03-2011

Je trouve tout ça compliqué et chiant à faire (sans un bon framework).
Je te conseille plutôt de profiter du protocole HTTP pour mettre en cache ce genre de pages.


Sephi-Chan, qui espère récupérer le net bientôt.