NewbieContest

Programmation => Langages Web => Discussion démarrée par: eldergob le 11 Février 2008 à 09:07:56



Titre: [Général] Secrets de fabrication
Posté par: eldergob le 11 Février 2008 à 09:07:56
Bonjour,

Je poste ici mais je ne suis pas sur que ce soit le bon endroit (déplacer le sujet si c'est nécessaire).

Je m'étais mis à programmer un challenge sur mon site en m'inspirant de NC. Mon site (voir mon profil) est fait avec PHP-Nuke et je lui rajoutais donc un module Challenge (donc j'utilise PHP + MySQL).

Suite à des problèmes avec mon site - perte de la sauvegarde du site au moment d'une mise-à-jour (qui a dit boulet  =) ?) - j'avais un peu arrêtais ce développement. Je suis en train de m'y remettre.

Mais je bute toujours sur le même problème: l'organisation des données. Donc j'aurai quelques questions.

- Comment sont stockées les descriptions des épreuves dans NC? Moi j'ai opté pour coder directement dans un fichier PHP avec un "switch" mais je suis pas persuader que ce soit le mieux (sauf que ça m'évite de coder la partie admin du module pour pouvoir stocker les descriptions des épreuves dans la BDD).

- Comment sont enregistrés les épreuves résolues? Moi, j'ai une table dans ma BDD avec un champ par épreuve. Ce qui m'oblige à rajouter un champ chaque fois que je rajoute une épreuve.

J'aimerai donc savoir quels choix ont été fait pour NC et si on peut avoir une idée de la manière dont les données sont organisées. Bref, j'aimerai connaître les secrets de fabrication de NC.

Merci.


Titre: Re : Secrets de fabrication
Posté par: the lsd le 11 Février 2008 à 09:46:51
Je déplace dans la partie prog web, qui me parait plus appropriée.

Concernant tes questions, je doute que les admins de NC acceptent de livrer la strcture de la BDD.

Par contre, avec un peu de réflexion, tu peux déduire comment sont faites les tables.
Perso, je pencherais pour un truc du genre une table membre qui contient
pseudo pass mail toussa toussa
et une deuxieme table contenant une clé étrangère (pseudo par exemple) avec les épreuves résolues ou non.

Pour les description, je ne pense pas que ce soit de cette manière, mais perso j'aurai fait par fichier

Enjoy

The lsd


Titre: Re : Secrets de fabrication
Posté par: Folcan le 11 Février 2008 à 10:19:56
Citation
- Comment sont stockées les descriptions des épreuves dans NC? Moi j'ai opté pour coder directement dans un fichier PHP avec un "switch" mais je suis pas persuader que ce soit le mieux (sauf que ça m'évite de coder la partie admin du module pour pouvoir stocker les descriptions des épreuves dans la BDD).

Quelle drole d'idée !!
Depuis quand on stocke des données dans une page PHP ??
Une page PHP ne doit contenir que du code ! (question de propreté).

Si jamais tu souhaite rajouter une épreuve, ou modifier le titre ou la description, tu dois donc aller downloader la page, la modifier, la réuploadé ? Pas très propre tout ca. Les bases de données spa fait pour faire jolie !


Titre: Re : Re : Secrets de fabrication
Posté par: S0410N3 le 11 Février 2008 à 18:34:23
Concernant tes questions, je doute que les admins de NC acceptent de livrer la strcture de la BDD.

Effectivement  =)

Bon, sinon, il n'y a pas de structure ni d'approche parfaite. Ca dépend de ce qu'on veut en faire.
Un peu de modélisation merisienne peut aider pour jeter la structure. Reste ensuite à optimiser et trouver des feintes pour ne pas non plus avoir à se fader des requêtes de gros malade pénibles à écrire et couteuses en utilisation cpu.
Merise c'est bien pour conceptualiser mais dans la réalité ça ne fait pas de mal de s'en éloigner un peu...


Titre: Re : Re : Secrets de fabrication
Posté par: BiDOrD le 11 Février 2008 à 21:23:50
Depuis quand on stocke des données dans une page PHP ??
Une page PHP ne doit contenir que du code !
Et où tu stockes les axx de connexion à la BDD ? :/


Titre: Re : Secrets de fabrication
Posté par: the lsd le 11 Février 2008 à 23:57:21
dans un fichier php a part !

Enjoy

The lsd


Titre: Re : Secrets de fabrication
Posté par: BiDOrD le 11 Février 2008 à 23:58:57
Donc dans une page php ! =D

Edit : Page != fichier, effectivement, avais pas réfléchi. donc j'ai rien dit... :/


Titre: Re : Re : Re : Secrets de fabrication
Posté par: Folcan le 12 Février 2008 à 10:39:24
Depuis quand on stocke des données dans une page PHP ??
Une page PHP ne doit contenir que du code !
Et où tu stockes les axx de connexion à la BDD ? :/

Tu parlais des données variables (description, titre) et non des accès à la base il me semble.

Tout ce qui est ammené à être modifier doit etre dans une base de donnée.
Les description en font donc partie, imagine une faute d'**orthographe !**, une modification d'épreuve, suppression, ajout, il vaut mieux toucher à la base plutot que se perdre dans le code source, pour peux que un oublie un ";" qelque part et hop ca te genere une erreur pour que dalle.

C'est sur qu'une modelisation merisienne aide vraiment pas mal pour concrétiser un projet de site web bien ordonné.


Titre: Re : Re : Re : Re : Secrets de fabrication
Posté par: the lsd le 12 Février 2008 à 14:34:40
une faute d'**orthographe !**

Moi je trouve ca assez rigolo comme faute ^^

Tout ce qui est ammené à être modifier doit etre dans une base de donnée.

Ou alors des fichiers !!! ca evites les injection SQL quand meme !

Enjoy

The lsd


Titre: Re : Re : Re : Re : Re : Secrets de fabrication
Posté par: Folcan le 12 Février 2008 à 15:11:02
une faute d'**orthographe !**

Moi je trouve ca assez rigolo comme faute ^^

Haaa même pas vu à la relecture ! M'enfin, ca passe quand meme ^^

Tout ce qui est ammené à être modifier doit etre dans une base de donnée.

Ou alors des fichiers !!! ca evites les injection SQL quand meme !

Enjoy

The lsd

Oui mais enfaite...non !
Des variables, c'est fait pour varier, qui dit varier, dit écriture, qui dit écriture dans un fichier, dit chmod 777, donc bouhpasbiencpassecure !
Et puis, un accès à une base de donnée est plus rapide et plus souple que la lecture d'un fichier.
Dans un fichier, soit tu as seulement les description, et le titre dans un fichier à part, soit tu es obligé de faire du parsing de porc pour t'en sortir.

Encore une fois, on a pas inventé les bases de données pour rien.


Titre: Re : Re : Re : Re : Re : Re : Secrets de fabrication
Posté par: zours le 12 Février 2008 à 16:07:27
Des variables, c'est fait pour varier, qui dit varier, dit écriture, qui dit écriture dans un fichier, dit chmod 777, donc bouhpasbiencpassecure !
Ah ? J'aurais plutôt pensé qu'il suffisait de donner les fichiers à www-data (ou l'utilisateur équivalent qui lance apache, surtout pas root), compte avec pas vraiment beaucoup de privilèges... Ceci dit si tu chmodes 777 dès que t'as un problème de permissions, je veux bien te croire quand tu dis que c'est pas secure.


Titre: Re : Re : Re : Re : Re : Re : Secrets de fabrication
Posté par: Zmx le 12 Février 2008 à 18:38:18
Encore une fois, on a pas inventé les bases de données pour rien.
Encore une fois, on a pas inventé les bases de données le XML pour rien.


Titre: Re : Secrets de fabrication
Posté par: BiDOrD le 12 Février 2008 à 18:45:02
Depuis quand on stocke des données dans une page PHP ??
Une page PHP ne doit contenir que du code !
Et où tu stockes les axx de connexion à la BDD ? :/

Tu parlais des données variables (description, titre) et non des accès à la base il me semble.
Euh, pas compris pourquoi tu me dit "tu parlais", vu que j'avais encore rien dit avant le post que tu as cité.
Mais sinon, c'était juste une boutade sur le fait que les axx de la BDD (qui sont bien une forme de données !), on est bien obligés de les stocker dans un fichier php. (Enfin c'est vrai, on peut faire autrement, mais c'est une solution courament employée quand même...)


Titre: Re : Secrets de fabrication
Posté par: eldergob le 14 Février 2008 à 11:06:05
Merci pour toutes vos réactions.

Je viens de relire le code de mon embryon de challenge. J'ai tellement mis de données dans mes fichiers PHP que je peux quasiment me passer de BDD =D. C'est d'ailleurs ce que je fais faire provisoirement (je sais, c'est moche). Comme ça, je vais pouvoir réfléchir tranquillement à la structure de mes tables.