BLOCK POUR LES PORTAILS NUKED-KLAN

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 24 févr. 2006 à 13:41
cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006 - 27 avril 2006 à 10:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36223-block-pour-les-portails-nuked-klan

cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006
27 avril 2006 à 10:11
Si il reste des choses à modifier/reprendre, merci de me le dire.
Le HTML sera uniformisé avec la version 2.0 (et 2.1) quand la 2.1 sera fini (j'ai eu un mois chargé donc je n'ai pu y consacrer du tps avant).
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
22 avril 2006 à 17:47
D'une part parce que c'est le script de Clenio et d'autre part parce que si on commençait à mettre à jour tous les scripts auxquels on voit des corrections à apporter on y passerait nos journées... qui plus est je n'utilise pas ce CMS je ne vais donc pas l'installer juste pour corriger un script qui, d'ailleurs, tourne en l'état il me semble... mais libre à toi de mettre le script en question à jour si ça te chante... .. .

@ tchaOo°
acidtek Messages postés 3 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 21 avril 2006
21 avril 2006 à 12:38
euh au lieu de dire que si et là ne va pas en masse ... pkoi ne faites vous pas les modifications pour en proposer une version dite à jour ^^
cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006
7 mars 2006 à 09:17
lien direct vers la v2.0 :

http://www.phpcs.com/code.aspx?ID=36418
cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006
7 mars 2006 à 09:05
Je mets la version 2.0 en ligne!
Loxyey, je te conseille d'aller la voir, ca pourra surement te donner des idées :).
++
cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006
7 mars 2006 à 08:41
j'y pensais mais je manque de tps (mes journées devraient faire 48 voir 96 heures des fois ... ;) ).
Entre l'électronique, la prog, le montage vidéo ET le boulot (mdr), je manque un peu de tps pour tout faire. Mais je vais essayer de trouver le tps.

bye Loxyey
cs_loxyey Messages postés 11 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 6 mai 2006
7 mars 2006 à 01:56
Voila bai moi ton ma était utile donc je voulais te demander si tu voudrai pas le partager sur le site http://mods.nuked-klan.org car il pourait en aider plus d'un.

voila.

merci
cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006
27 févr. 2006 à 11:19
Ok
Merci Malalam, je vais modifier le code en conséquence! :)
lol, par contre, pour la v2.0, j'ai bien remplacer le select * par un select et le nom des champs. Je la poste dès que j'ai commenté.

Tant que j'y suis, je prévois un v2.1 qui ajoutera un lien dynamique au texte (lien vers une screen pour montrer le boss mort dans mon cas).
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 févr. 2006 à 09:32
Hello,

ton if (eregi ()) parmet de vérifier de façon franchement bourrine si la chaine 'block.php' est présente dans l'url courante.

Les SELECT * ne pérénise pas du tout le code, bien au contraire : tu ne sais jamais ce que tu ramènes, à fortiori si ta base change.
Tu risques de ramener des champs dont tu n'as pas besoin. De plus, tu as de toutes façons besoin du nom des champs, ou de leur ordre dans ta requête si tu utilises un fetch_rows, pour les afficher, ou t'en servir. Si tu ajoutes un champ, cet ordre peut-être modifié, et tu feras des bêtises dans ton fetch... ().
Et c'est beaucoup moins clair quand tu relis le code. Si tu fais SELECT champ_id, champ_nom, champ_code FROM champs... tu sais exactement, dès la 1ère lecture, ce que tu vas chercher dans ta base.
Si tu fais SELECT * FROM champs, tu n'en sais rien, et tu dois aller fouiller dans ta boucle pour tenter de comprendre ce que tu veux récupérer.
Enfin, cela alourdit tout simplement la charge serveur BDD.
cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006
27 févr. 2006 à 09:09
J'ai oublié de préciser que c'est mon premier code php. Donc je vous remercie pour vos commentaires. :)

Pour le if (eregi()){}, si vous pouviez me dire exactement à quoi cela sert, ca serait sympa. Si je l'ai mis, c'est parce que j'ai constaté que tout les blocks pour Nuken Klan commence par cela (donc pour homogénéïser mon code avec les autres sources).

Qu'as tu contre le "select *" malalam ? Il est vrai que j'aurai pu lister tous les champs de la table, mais je trouve cela plus compréhensible. Et si la structure de la table change, ca permet de péréniser le code ;).
Quand au HTML, ouai je sais... je vais d'ailleurs le faire tout beau et changer le ZIP.

Je vais tenir compte de vos remarques avant de poster la version 2.0 de mon code! La nouvelle version intègre une liste déroulante et permet de changer dynamiquement les entrées affichées (ajout de javascript).

Merci encore
Clénio
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
24 févr. 2006 à 14:00
=> eregi est inutile pour çà. Il y a tout un tas d'autres moyens moins gourmands. Allez, un pas terrible (il y a mieux ):
if (basename ($_SERVER['PHP_SELF']) === 'block.php') {}

if (strpos(__FILE__,'block.php') !== false) die();

Mais bon y a mieux... dans le cadre d'un gros code comme nuke autant tester la présence d'une constante définit dans le corps de nuke...

if (!defined('CONSTANTE_DE_CONF_DE_NUKE')) die();

si elle est là la page est affichée via une page normal si elle n'est pas là c'est que l'on tente d'accéder à la page directement... .. . ;o)

@ tchaOo°
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 févr. 2006 à 13:41
Hello,

Les petites critiques :

+ if (eregi("blok.php", $_SERVER['PHP_SELF'])) {
die ("You cannot open this page directly");
}

=> eregi est inutile pour çà. Il y a tout un tas d'autres moyens moins gourmands. Allez, un pas terrible (il y a mieux ):
if (basename ($_SERVER['PHP_SELF']) === 'block.php') {}

+ Evite les SELECT * :-)
+ le html n'est pas joli du tout du tout (balises en majuscule, attributs dépréciés...) En fait, parfois il est ok, parfois pas du tout...comme si certaines parties avaient été développées il y a très longtemps, et d'autres plus récemment ;-)
+ tu devrais utiliser des boucles php quand tu as des listes déroulantes à rallonge à créer, ce serait plus simple.
+ 'global' est loin d'être indispensable. On aurait préféré un fichier de configuration avec des constantes par exemple. D'autant plus que tu utilises déjà des constantes...pourquoi ne pas avoir sorti tout ça dans un fichier de conf?

Bon enfin, je ne vais pas plus loin dans les détails : ton code est orginal, le screenshot est joli :-) Et il y a pire niveau programmation PHP.
C'est pas mal, donc :-)
Rejoignez-nous