salut à toi,
Bon travail de ta part
Cepandant j'ai quelque points qui ne vont pas :S Ne le prend surtout pas mal, si j'en avais rien a foutre de ton travail j'aurais rien écrit
Tout d'abord ton projet ne ressemble pas vraiment a un CMS mais plutot à un gros et conséquent backoffice. En effet, un CMS (ou système de gestion de contenu) permet a l'utilisateur de modifier
tout son contenu. Ca passe du simple menu jusqu'a lajout de page et même ajout et supression d'image sur ta bannière enfin tout quoi
Une autre particularité des CMS c'est le foncionnement en module, en effet un utilisateur peut ajouter et supprimer des modules qu'on lui auras fournie. Je sais de quoi je parle vu que j'en ai créé un aussi mais je tiens a te rassurer, il n'a aucun rapport avec minecraft et il est payant
Ton travail n'en reste pas moins conséquent mais tu pourrais gagné du temps sur bien des choses (petite intro pour parler de ton code
)
Ton code est comment dire, pas très propre, on sent que tu as du potentiel mais qu'il te manque pas mal d'années de pratique pour trouver les bon "trucs" que je vais te filer bien sur
, voici ma liste:
-Mauvaise structuration au niveau de toute tes pages ou tu envoie de l'HTML, en effet tu réécrit dans chaque pages les headers ainsi que le haut et le bas de ta pages. Le bon truc ici, c'est de créer une page haut et une page bas que tu incluras dans chaque page grâce a include_once ça te permettras une meilleur maintenabilité puisque que tu n'auras qu'a modifier qu'une seule page au lieu de tout refaire...
Si tu utiliseras dorénavant cette méthode utilise dirname(__FILE__) ça te permettras de faire une inclusion dans une autre sans te soucier trop te soucier de l'endroit où tu te trouve dans le répertoire. (ça renvoie le chemin d'accès au fichier courant)
Généralement je fais aussi une page top qui contient toute mes inclusions comme la page de config ou mes fonctions récurrente qu'ensuite j'appelle dans ma page haut.
-Utilise plus de dossier pour mieux t'y retrouver, exemple un dossier news qui contient la vision des news mais aussi ses contrôleur comme la suppressions et l'ajout.
-Ne surtout plus utiliser mysql_query !!! Mais
pdo, il permet de rendre plus propres les accès à la base et en plus les fonctions mysql vont disparaître dans php 6. T'es pas a la mode
-L'idée de mettre le menus, les headers.... est une très mauvaise idée c'est vraiment pas beau utilise la méthode que je t'ai indiqué plus haut, car j'ai bien compris que c'était pour t'éviter de tout retaper à chaque fois mais bon dieux aiaiaiaie
-Attention a la sécurité aussi, tu n'as rien fais pour les failles
CSRF ainsi certainement quelque faille sql, sur la connection tu utilises session register et ça aussi c'est aiaiaie tu créé des failles qui n'existerais même pas à la base
un autre petit sur la doc te ferais pas de mal, on peut y lire: "Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS), n'utilisez pas session_register()" mais aussi ça: "Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser." --->
trouver ici
-Sur ton site de démo tu devrais supprimer tous les accès de type delete pour t'éviter bien des problèmes ce qui m'amène a un autre point. Un site comme le tiens qui diffuse son code doit avoir un dossier de log de toute les connection et modification sql, pour cela il te suffit de faire une classe héritée de pdo (par contre je suis pas sur que tu connaisse la POO :S ) pour pouvoir enregistrer tous les appels a ta base
-Tu as trop de condition imbriquée l'une dans l'autre, or n'importe quel programmeur fera tout pour en avoir le moins possible. Par exemple si il est dans une fonction et que la condition n'est pas remplie il fera un return dans un seul if pour couper net la fonction ou encore un break dans une boucle.
J'ai surtout vu ce problème dans ta pages index où tu regardes si l'installation n'est pas faites ce qui donne un truc comme ça:
PHP:
if ($install) {
?>
<link rel="stylesheet" type="text/css" href="./css/style.css" title="" media="all" />
<div id="box" onclick="document.getElementById('box').style.display='none';" style="margin:20%;" class="error-box rounded" title="Fermer la fenêtre">
L'installation n'a pas encore été réalisée. <a href="./install/index.php">Cliquez ici</a> pour commencer.
</div>
<?php
} else {
require('./config/tbl.php');
if ($line_info['maintenance_choix_info'] == "Oui") {
show_maintenance();
} else {
....
}
tu peux améliorée ça en utilisant, comme tu l'as déjà très bien fait dans d'autre pages, des redirections. Tu pourrais créé une pages maintenance et une autre pages install pour les redirections ce qui pourrais donner:
PHP:
if ($install) {
header("Location: install.php");
}
require('./config/tbl.php');
if ($line_info['maintenance_choix_info'] == "Oui") {
header("Location: maintenance.php");
}
....
Tu peux faire un truc similaire pour la gestion des erreurs, par exemple:
PHP:
if (isset($_POST['add_comment']) && $_POST['comment'] != ""){}
(j'ai fais avec le premier truc qui me tombes sur la main, ça tu peux garder, c'est plutôt pour les grosses vérifications)
PHP:
<?php
$erreur=null;
if(empty($_POST['add_comment'])){
$erreur .= 'erreur d'ajout'; //je sais c'est pas une erreur en vraie mais c'est pour l'exemple :D
}
if(empty($_POST['comment'])){
$erreur .= 'Vous n'avez pas remplie le champ commentaire';
}
if(empty($erreur)){
//tu continus ton script normalement
}else{
echo $erreur;
}
?>
liste terminé enfin j'ai dû oublier quelque trucs mais bon :S
En ce qui concerne le HTML5/CSS3, ptit biscuit n'a pas tout a fait tort il reste près de 1/5 des internautes qui utilise internet explore 8,7 et 6 or ces navigateurs ne supporte pas cette norme qui n'est pas encore terminé. Par contre je ne suis pas d'accord avec toi ptitbiscuit, d'une internet explorer supporte l'html 5 et de deux au départ ms pensait créé leur propres rendus graphique pour concurrencer canvas et se mettre des programmeurs dans la poche
on peut pas leur en vouloir. Moi je dis utiliser l'html 5 le plus tôt possible pour en faire une norme le plus vite possible, utiliser le dans des sites innovants pour vous démarquez
Pour finir, pour faire l'interaction entre ton site et le serveur tu peux utiliser
mctelnet il te permettras de communiquer entièrement entre le site et le serveur comme si tu étais en mode console sur ton serveur, je peux te fournir la class php pour communiquer en telnet et mon controleur pour gérer plus particulièrement le serveur
(Grâce à ça mon site communique entièrement avec mon serveur ce qui me permet d'ajouter, supprimer, changer de groupe un joueur... sans avoir a faire une seule commande ingame, tout se fait sur le site de façons visuel
J'espère que ça pourras t'aider et n'oublie c'est tout de même du très bon boulot