JeuWeb - Crée ton jeu par navigateur
Structure du jeu - 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 : Structure du jeu (/showthread.php?tid=2363)

Pages : 1 2 3


RE: Structure du jeu - Ziliev - 05-02-2008

J'en profite pour parfaire à mon éducation Tongue C'est quoi "include_once" et "empty()" ? Sinon effectivement c'est une manière sympathique d'utiliser le GET en évitant ses inconvénients, reste à vérifier que la page qu'il veut inclure il a vraiment le droit de le faire ... Par exemple chez moi il y a quelques scripts de cotés ou des fichiers de données que j'aimerais pas trop voir inclus dans une page par un p'tit rigolo ^^


RE: Structure du jeu - Plume - 05-02-2008

Mon ami, ne connaitrais-tu donc pas la [ Bible ] ? Smile

L.


RE: Structure du jeu - comg - 05-02-2008

Oula beaucoup d'idée par là, comme quoi ça valait le coup d'aborder le sujet.
Je vais approfondir un peu vos systèmes. En tout cas c'est vrai que la POO me titille, faudra que je m'y mette. ça a l'air vraiment intéressant.
LexLxus : j'espere te voir sur le jeu des que j'aurai mis de quoi fumer Wink
En tout cas je vais essayer de comprendre ton histoire là, ça a l'air sympas.

Merci à tous, j'pense qu'on a tous matiere à penser sur ce sujet !

EDIT : LexLxUs : effectivement ça revient à mettre des balles à blanc dans la kalash de ziliev ton histoire... Trés interessant, et trés sécurisé je pense... Merci beaucoup de l'idée ! Je vais essayer de le coupler avec du POST


RE: Structure du jeu - Ziliev - 05-02-2008

Dans ma bible à moi y avait pas include_once ^^ Bon y avait empty mais j'ai pas cherché. D'ailleurs je vois pas bien l'intérêt de vérifier ca, de toute facon avec une chaine empty il trouvera pas de fichier à prioris non ?


RE: Structure du jeu - Harparine - 05-02-2008

LexLxUs a écrit :Voilà mon idée [ évidemment pas optimisé, c'est de l'arrache ] :
Code PHP :
<?php
if( isSet( $_GET[ 'page' ] ) AND !empty( $_GET[ 'page' ] ) )
{
$pageSubmitted = $_GET[ 'page' ];
if(
is_file( 'pages/' . $pageSubmited . '.php' ) )
{
include_once(
'pages/' . $pageSubmited . '.php' );
}
else
include_once(
'templates/404.html' );
}
else
include_once(
'pages/homepage.php' );
?>

Voilà grossièrement comment j'vois les choses.

Commentaires s'il vous plait !

L.

J'utilise un système similaire : c'est sobre, fiable et efficace Wink :

Code PHP :
<?php
if(!empty($_GET['page'])) {
if(
file_exists('traitement/' . $_GET['page'] . '.php') AND !preg_match("/(\.|config|inc)/iU", $_GET['page'])) {
$sPage = $_GET['page'];
} else {
header('Location: index.php?page=erreur&code=404');
}
} else {
$sPage = 'accueil';
}


//Il n'y a plus qu'à inclure le traitement de la page qui renvoie le nom du template à utiliser en fin de code
include('traitement/'.$sPage.'.php');
//Affichage de la page
include($sTemplatePath.'header.tpl');
include(
$sTemplatePath . $sPageHtml);
include(
$sTemplatePath.'footer.tpl');
?>



RE: Structure du jeu - comg - 05-02-2008

Pourquoi des $s... dans tes noms de variables ? (question comme ça)
Pourrait tu expliciter un peu ton code silteuplé, ça m'a l'air interessant.

Merci d'avance

ComG


RE: Structure du jeu - Harparine - 05-02-2008

Salut,

Le "s", c'est pour signifier string : c'est une règle de notation (notation polonaise), que l'on apprécie ou pas (je sais qu'il y avait eu une controverse sur le forum à ce sujet à l'époque). J'avais appris le truc ici et personnellement, je trouve ça plus clair (j'avais pris l'habitude de typer strictement le nom de mes variables en Flash pour accélérer la saisie du code et j'ai gardé le truc pour php quand j'ai découvert la technique). Avec d'autres types de variables, ça donne :
- $iVariable => integer
- $bVariable => boolean
- $aVariable => array

Concernant le code, je vérifie que la variable $_GET['page'] n'est pas vide (pour être plus rigoureux, je devrais même lancer un isset comme LexLxUs pour tester son existence).
Ensuite, je vérifie que le fichier existe sur le serveur (avec file_exists) et que ce n'est pas un fichier de config ou un fichier qui contiendrait des points ou des slashs (avec preg_match) pour éviter qu'on me file un fichier qui n'est pas le mien (j'avais choppé le script sur le site du zéro).
Si le fichier n'existe pas, je renvoie vers une erreur 404 et si la variable est vide, je redirige vers la page d'accueil.
Enfin, j'intègre ma page :

Mon site est organisé de la façon suivante (3 répertoires de base et l'index qui contient que code ci-dessus):
- traitement
- affichage
- données
- index.php

Comme je sépare entièrement le traitement de l'affichage, les fichiers php contenus dans le dossier "traitement" (un pour chaque page appelée) ne renvoient rien vers le navigateur (aucun echo, tout ce qui sera affiché est stocké dans des variables, par exemple : $sTitre = "Mon titre de page"Wink. Chacun de ces fichiers renvoie aussi la page de template - l'affichage des données - qui sera utilisée (ici, c'est la variable $sPageHtml).

Quand le traitement est terminé, l'index inclue le fichier template correspondant à la page appelée :
- J'inclue le header
- J'inclue le corps de page défini par $sPageHtml (ici, la variable $sTemplatePath = "affichage/basic_design")
- J'inclue le footer

Juste une précision : mes templates sont de simple pages html renommées .tpl pour ne pas les confondre avec des pages indépendantes de fichiers php. Ces pages affichent les variables renvoyées par mon fichier de traitement avec de simples echo en php (qui me sert donc de moteur de template). Ex :
<title><?php echo $sTitre; ?></title>

L'intérêt est de séparer clairement traitement et affichage : je peux changer de design à volonté ou mettre en place un design alternatif sans toucher à mes fichiers php...


RE: Structure du jeu - Plume - 06-02-2008

comg a écrit :Oula beaucoup d'idée par là, comme quoi ça valait le coup d'aborder le sujet.
Ca vaut toujours le coup d'aborder un sujet aussi minime soit-il Wink
comg a écrit :Je vais approfondir un peu vos systèmes. En tout cas c'est vrai que la POO me titille, faudra que je m'y mette. ça a l'air vraiment intéressant.
Une procédural très bien architecturé peut te suffir. A toi de voir. Je trouve quand même que parfois la POO en PHP c'est abusif Smile
comg a écrit :LexLxus : j'espere te voir sur le jeu des que j'aurai mis de quoi fumer Wink
Tiens moi au courant ! Tongue
comg a écrit :En tout cas je vais essayer de comprendre ton histoire là, ça a l'air sympas.
Je propose que des trucs sympas ! (h) Sinon j'me tais. C'pour ça que je ne l'ouvre pas souvent Smile
comg a écrit :Merci à tous, j'pense qu'on a tous matiere à penser sur ce sujet !
De rien, c'est toujours un plaisir Smile

comg a écrit :LexLxUs : effectivement ça revient à mettre des balles à blanc dans la kalash de ziliev ton histoire...
Je relève toujours les défis, même jouer à la roulette russe avec un AK Wink
comg a écrit :Trés interessant, et trés sécurisé je pense...
C'est bien pour ça que je le propose Wink J'ai encore rien trouvé de mieux ou presque Smile Maintenant, s'il y a plus intéressant, je suis preneur Smile
comg a écrit :Merci beaucoup de l'idée !
De rien Wink
comg a écrit :Je vais essayer de le coupler avec du POST
C'est pas compliqué, tu remplaces juste les $_GET par $_POST & le tour est joué Smile La suite, c'est de t'arranger pour passer tes variables de pages en POST Smile
------------------------------------------------------------------
Ziliev a écrit :Dans ma bible à moi y avait pas include_once ^^
Ta bible est obsolète, c'tout, cherche pas Confusediffle:
Ziliev a écrit :D'ailleurs je vois pas bien l'intérêt de vérifier ca, de toute facon avec une chaine empty il trouvera pas de fichier à prioris non ?
Ui, mais déjà, c'est bien de ne pas entrer dans la boucle pour rien Wink Si tu gardes un sens sémantique, la boucle est là pour vérifier la compatibilité de la variable en question donc tu ne peux pas permettre de rentrer dans la boucle alors que ta variable n'est pas valide. Tu vois ce que je veux dire ?
------------------------------------------------------------------
comg a écrit :Pourquoi des $s... dans tes noms de variables ? (question comme ça)
Et évidemment, encore une fois, tu es totalement dans ton droit. Bon, je vais te mettre sur la piste, mais je ne suis pas sûr qu'il soit utile de partir sur un débat qui a déjà eut lieu au sujet de cette écriture.
On parle en réalité de notation hongroise.
comg a écrit :Pourrait tu expliciter un peu ton code silteuplé, ça m'a l'air interessant.
J'ai failli le faire mais j'ai bien fait de regarder, Harparine avait déjà répondu Wink

Cordialement,
L.


RE: Structure du jeu - Ziliev - 06-02-2008

LexLxUs a écrit :Ta bible est obsolète, c'tout, cherche pas Confusediffle:
J'dois avouer que de temps en temps il me manque un truc (genre les include justement). Mais bon la liste avec un Ctrl F c'est quand même vachement pratique, et en plus ma bible elle est jolie na :p

LexLxUs a écrit :Ui, mais déjà, c'est bien de ne pas entrer dans la boucle pour rien Wink Si tu gardes un sens sémantique, la boucle est là pour vérifier la compatibilité de la variable en question donc tu ne peux pas permettre de rentrer dans la boucle alors que ta variable n'est pas valide. Tu vois ce que je veux dire ?
Euh pas trop ... J'imagine bien le "c'est pas bien", mais pourquoi exactement c'est pas bien ... Personellement je suis partisan de l'effort moindre hein, tant que ca marche et que ca rame pas trop, j'préfère éviter de rajouter des conditions.

LexLxUs a écrit :On parle en réalité de notation hongroise ...
Personellement toujours j'fais des trucs dans le genre, mais plutôt avec des majuscules et des underscore (pour les sessions et les array multiples sortis de MYSQL surtout, quand t'as un array avec un index dans les premiers crochets, un champs texte dans les seconds, un autre dans les 3eme, t'es heureux d'avoir noter quoi mettre dedans) ... Franchement une convention pour ca ca vaut pas le coup, 'suffit d'avoir ses automatismes bien à soit :p Ca évite en plus d'apprendre des vieilles conventions en anglais qui te disent absolument rien ... En plus c'est un Micro$ftien si on en croit Wikipedia, alors je m'insurge Big Grin


RE: Structure du jeu - Harparine - 06-02-2008

Merde, moi qui ai parlé de notation polonaise^^