TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web, casual MMOs, jeux par forum ou par e-mail. En savoir +
En ligne : 788 jeux, 7082 news, 26384 commentaires
 

Recherche de jeu par critères - Un jeu au hasard !

Le guide des jeux en ligne alternatifs

Comment crer son jeu et le grer ?

Les Focus

Tech. : Le programmeur cologique
Tech. : automatisation et mails
Salon MondeDuJeu 2002
Revue de presse des JpC
Humour : 1001 raisons pour jouer
Ludique : le joueur parfait
Ludique : dcouverte du JpC
PHP : accs base de donnes
PHP : structure du site
Ludique : JpC et Temps rel
Jeux de rles sans rgles
Humour : astrologie du JpC
Tech. : Bases de donnes
MJ : les joueurs multiples
PHP : utilit pour un JpC
PHP : c'est quoi ?
Tech. : l'analyse des ordres
Ludique : dbutants et vtrans
Tech. : archi Ultraball 2100
Ludique : les jeux de pronos
Tech. : le site Web d'un JpC
Humour : football et wargame
Prsentation de TourDeJeu

PHP : structure du site

par Oelita

Jeu-pilote Fish Race, la suite ! on a dj vu dans l'pisode prcdent comment concevoir la base de donnes du jeu. L'tape suivante est ici de dmarrer le site PHP. Le site PHP est avant tout un site Web, donc vous pouvez commencer par lire notre Focus sur le site web d'un JpC.

Dans cette tape, on va construire la structure du site. Il faut faire des fondations un peu solides, pour pouvoir aller plus vite ensuite. Il y plusieurs choses voir avant de se lancer tte baisse dans le code du jeu lui-mme.

Vous trouverez en fin de l'article un zip contenant les fichiers sources permettant de voir et tester tout a chez vous !

Nom des pages

Tous les hbergeurs fournissant PHP ne sont pas encore passs en PHP v4, et beaucoup obligent encore les dveloppeurs nommer leurs fichiers sources avec une extension .php. C'est mon cas, et mes exemples suivront donc cette norme.

La premire notion PHP connatre et utiliser est l'include. Si vous avez du code commun plusieurs pages (HTML ou PHP !), mettez-le dans un fichier part, et appelez-le depuis vos diffrentes pages par la fonction include(). Indispensable. On nomme gnralement ces fichiers avec l'extension .inc.php pour les diffrencier des pages compltes (.php) sans laisser la possibilit aux visiteurs indiscrets de regarder votre source (ce qui serait le cas en laissant le fichier s'appeler .inc : seuls les fichiers .php sont traduits par le serveur en HTML, les autres sont transmis tels quels au visiteur s'il en donne l'adresse !).

Graphisme et style

Il ne s'agit pas de vous lancer fond dans le graphisme et les images, mais de prvoir comment grer et stocker tout a. Aprs a, vous pourrez bricoler et amliorer vos images quand le coeur vous en dira, petit petit, ou demander de l'aide un copain. Ca sera gratifiant de voir le site prendre forme rapidement !

Feuille de style : connaissez-vous les feuilles de style CSS ? ce n'est pas du tout du PHP : il s'agit de rajouter dans votre code HTML des instructions qui vous viteront de coder des tags de mise en forme partout dans votre code. Par exemple, vous indiquerez que tous vos paragraphes, tous vos contenus de tableaux, etc, utilisent la police Arial en taille 10. Ca tient en une ligne, et a conomise beaucoup de <font> ! Et si vous en avez marre d'Arial, il n'y a qu'une ligne changer pour passer toute votre page en Verdana par exemple... le plus beau est que vous pouvez mettre toutes ces instructions dans un fichier part, fishrace.css dans notre exemple, et qu'ensuite, toutes vos pages peuvent utiliser ce mme style en codant juste dans le <head>: <link rel="stylesheet" href="fishrace.css">. A exploiter fond !

Pour en savoir plus : le guide CSS de Technosphere, et le guide le plus complet mais en anglais : House of style.

En-tte et bas de page : il est classique d'avoir en haut de toutes vos pages un bandeau et un menu (comme chez TourDeJeu par exemple), et en bas de page quelques liens pratiques (email du webmaster, par exemple). Un moyen de faire a sans se fatiguer est d'utiliser des frames, mais c'est plein d'inconvnients que je ne dtaillerai pas ici. Il est prfrable d'viter a, et le PHP vous le permet facilement. En PHP, vous pouvez en effet inclure un source dans un autre source. Vous allez donc construire un fichier d'entete nomm entete.inc.php et un bas de page nomm baspage.inc.php, et vous incluerez ces fichiers dans toutes vos pages. Vous pourrez aussi bien avoir un menu.inc.php que vous placerez o vous voulez sur vos pages.
Votre menu peut aussi tre gauche de vos pages : dans l'entete, vous ouvrez un tableau et crez une colonne de gauche dans lequel vous avez votre menu ; vous ouvrez une colonne de droite, et c'est tout. Dans le bas de page, vous mettrez la fermeture de cette colonne et du tableau, et le tour est jou. C'est ce qui est fait pour ceux de FishRace.

Administration du site

Vous aurez besoin de protger certains sources PHP, comme celui qui contient les infos de connexion la base de donnes. Vous aurez aussi besoin d'avoir des pages en accs rserv l'arbitre. Pour tout cela, crez un rpertoire spcifique dans votre site. Nommons-le ici "admin". Consultez votre hbergeur pour savoir comment restreindre l'accs direct ce rpertoire selon une liste de login/mot de passe systme. Souvent, on fait cela en crant un fichier .htaccess dans le rpertoire en question. C'est ce que je fais pour FishRace. A noter qu'en local il faut nommer ces fichiers autrement (par exemple htacces.txt) et les renommer par votre outil FTP une fois sur votre serveur.

Pour en savoir plus : la page d'explications sur les .htaccess de Free, un guide en anglais plus gnral chez ApacheToday.

Authentification des joueurs

Il va falloir aussi protger l'accs aux pages ordres et CR de vos joueurs.. et l, pas de liste fixe des login et mot de passe, il faut un systme souple. D'une part, il faut un systme de saisie des login et mot de passe, et d'autre part, il faut passer ces paramtres toutes les pages protges, de faon fiable et non contournable...

Attention ne pas uniquement passer l'ID du joueur en paramtre, trop facile de tricher, tant donn que l'ID est souvent visible de tous, ou pas trop difficile deviner/fouiner !

Plusieurs solutions sont possibles, qui utilisent 2 systmes principaux :

  • Passer le login et le mot de passe de page en page. On peut le faire via l'url (url.php?id=xxxx&pass=yyyy"), via un formulaire cach ou via l'authentification HTTP et les variables $PHP_AUTH_USER et $PHP_AUTH_PW.
    Inconvnient de ces solutions : on transporte des donnes permanentes, rutilisables directement si elles sont interceptes d'une faon ou d'une autre (ce n'est pas la port de chacun, mais disons que c'est un risque quand mme).
  • Utiliser des sessions : partir du login et du mot de passe saisis, une fois la vrification effectue, on construit un ID de session, de valeur temporaire, et on le stocke dans la base de donnes. On ne passe ensuite que cet ID de page en page, soit directement en URL (pas trs joli), soit en cookie. La phobie des cookies s'tant calme, c'est une solution envisageable... le cookie rside sur le poste client et peut donc tre bidouill facilement par le client en question, mais comme l'ID de session n'est pas rutilisable, ce n'est pas grave. Si on est en PHP4, on peut directement utiliser les sessions de PHP4 (en savoir plus : trs bon article de PHPinfo.net), sinon on construit soi-mme un pseudo-systme de session simplifi.

    Pour FishRace, on va utiliser un ID de session qui sera cr au login, stock dans la base de donnes du serveur (table fish_joueur crer), et transmis par cookie ct client. On cre une page de formulaire de login (jouer.php) qui renvoie vers une page (login.php) qui va vrifier les infos, et crer la session et le cookie. On renvoie ensuite vers une page spciale au joueur (joueur.php). Toutes les pages en accs rserv un joueur devront avoir la mme structure que cette page. (merci JB pour son aide)

    Premire page d'administration

    Pour terminer notre premire version du site, on cre une page de sommaire d'administration (admin/index.html) et une page de liste des joueurs (admin/listejoueur.php).

    Voila donc le squelette de notre site PHP constitu ! la prochaine tape sera l'inscription des joueurs d'une part, et la gestion des tables paramtres du jeu (rivires, espces, parties, etc) d'autre part.

    Voici le zip contenant les donnes de cette premire version, avec un readme.txt qui vous expliquera comment l'installer ! zip du site Fish Race v1.

    Le site de FishRace utilise ces mmes sources, vous pouvez donc en voir les rsultats (sauf l'administration) directement sur Fish Race. Les joueurs bidon existants sont toto, mot de passe titi, et killer, mot de passe go.

    Prcdent - Suivant

    
  • Commentaires laissés par les visiteurs

  • The Fab, le 22-10-2001
    Hum...
    Petit tips... J'ai procd comme cela est dit dans l'article pour le haut de page, le bas de page... Mais je recommenderai plutot l'usage des templates qui sont beaucoup plus souples (faites une recherche sur SMARTY ou fastTemplate sur google) pour en apprendre plus ! En plus on peut mettre certaines pages trs charges (classement...) en cache, ce qui acclre notablement la navigation ! Bon courage tous, The Fab
  • Cedric (cedric.lefebvre@free.fr), le 17-10-2001
    Cool
    Encore bravo pour ce magnifique article. Je pense que tous les createurs de jeux apprecieront la qualite du travail effectue. J'ai un amis qui veut se lancer dans la creation de son propre jeu, je pense que cela lui servira de bible. ;-) Cedric