BLOG PRÉFABRIQUÉ.

ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 - 12 oct. 2005 à 14:21
EstevanTH Messages postés 7 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 26 juillet 2010 - 13 févr. 2008 à 22:39
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/34174-blog-prefabrique

EstevanTH Messages postés 7 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 26 juillet 2010
13 févr. 2008 à 22:39
Bon, quelqu'un vient de me solutionner le souci : la donnée 'files_up' en question n'était pas correctement référencée dans le admin.php ! Je propose donc aux auteurs de ce blog de mettre à jour. J'ai un lien pour vous vers le fichier modifié :
http://blog.thouvest.dyndns.info/fichiers_modifies/admin.rar
Merci à Jérémy A. pour sa solution.
EstevanTH Messages postés 7 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 26 juillet 2010
13 févr. 2008 à 19:10
Je vais alors devoir faire mon blog en HTML et me dispenser de commentaires avec une base MySQL, sauf avec un script externe...
Pourtant, le script fonctionne sur le site de démonstration puisqu'il y a des articles ! Peut-être un souci avec Windows...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 févr. 2008 à 11:14
c'est super drole le commentaire precedent...

la source ne foncitonne pas donc c'est php qui merde ?
en l'occurence, c'est du sql, mais bon...
et c'est plus la creation de la table sql que mysql qui a un probleme, ca vient donc de ce script
EstevanTH Messages postés 7 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 26 juillet 2010
13 févr. 2008 à 00:14
Je suppose que c'est PHP qui ne fonctionne pas parfaitement, mais quand j'ajoute un article, avec ou sans image, avec ou sans fichier joint, j'obtiens toujours le message d'erreur suivant et l'article n'est pas ajouté :

Field 'files_up' doesn't have a default value

Savez-vous d'où ce problème peut venir ? Merci.
cs_almux Messages postés 8 Date d'inscription jeudi 13 octobre 2005 Statut Membre Dernière intervention 18 février 2011
12 nov. 2007 à 09:51
Bonjour,
Pour le cas où l'on voudrait donner des leçons de langue avec ton shéma de blog (en l'occurance de l'intergalacte standard!), avec plusieurs degrés d'apprentissage, est-il possible de donner plusieurs "niveaux" d'autorisation à un élève pour qu'il accède aux cours par étapes?

Merci, almux
tridardp Messages postés 1 Date d'inscription lundi 19 juin 2006 Statut Membre Dernière intervention 13 juillet 2007
13 juil. 2007 à 10:39
Bonjour
Etant sous-doué en informatique, enfin surtout quand il s'agit de programmation PHP Java ou autre, j'aurais aimé que vous puissiez nous dire à FDIEDLER2000 comment faire (ou un lien vers un tuto) pour installer ce joli blog. Bien sur je me doute que cette question puisse paraitre idiote, il y a des ingénieurs électronique qui n'ont pas trop le temps de se pencher sur le PHP...
Alors dans Votre Grande Clémence je vous implore, pourriez vous nous indiquer la marche a suivre :) ?
Merci d'avance à tous.
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
1 mai 2007 à 20:06
Comment on installe ce blog ? Merci
toptanco Messages postés 3 Date d'inscription dimanche 22 mai 2005 Statut Membre Dernière intervention 21 janvier 2007
25 avril 2007 à 06:01
est-il possible d'avoir le script du lecteur mp3 qoe vous avez sur le site de demo
thnx
cs_Sylvian1 Messages postés 5 Date d'inscription jeudi 2 mars 2006 Statut Membre Dernière intervention 7 avril 2010
7 mars 2006 à 12:23
Bonjour,

J'aimerai utiliser ce code mais j'ai un problème.. j'aimerai ajouter un prefixe aux tables... mais niveau php je suis pas au top (je suis designer) quelqu'un pourrait m'aider ? (ou le faire pour moi... un eventuel echange de procédé serait envisageable)

Contact via MSN si possible: sylvainmeunier@msn.com

Merci d'avance.
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
14 nov. 2005 à 20:59
Mise à jour :)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 oct. 2005 à 09:38
if ( is_int($id) && $id!== 0 )

renvoi toujours false car ici, $id est une chaine de caractère, pas un int....

on peut à la limite faire des benchs entre :
$id=(int)$id;
et
$id=intval($id);

mais ça n'est pas super important...

J'utilises souvent ces conversions moi aussi, ça permet de ne mettre que des nombres dans une requette SQL, c'est très pratique, et je ne vois pas en quoi c'est crade...
Naixn Messages postés 455 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 22 juillet 2007
31 oct. 2005 à 07:56
Si dans une URL, quelqu'un rentre ?id=46ABC, le cast renvera 46, ce qui permet de ne pas avoir d'erreur, d'où l'avantage ?
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
31 oct. 2005 à 01:50
Si je me souviens bien, c'est un cast pour forcer le type int, car le script reçois un string... ce n'est pas moi qui ai codé ca, mais mon collège a voulu, je crois, uniquement tester le $id !== 0, pas si $id est un int... d'où le cast !
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
30 oct. 2005 à 22:38
"$id=(int)$id;
if ($id!==0){
//requette
}else{
echo 'ERREUR !!!';
}"
Ou
if ( is_int($id) && $id!== 0 ) {
//
} else {
//
}
A voir ce qui est plus rapide.
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
26 oct. 2005 à 11:29
Mis à jour :)
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
19 oct. 2005 à 10:30
Je vais faire un petit truc sympathique : j'affiche un formulaire avec un seul champs upload, et si l'admin clique sur un bouton "un de plus", j'envoie le formulaire avec un champs caché que j'incrémenterai ! Enfin c'est bon, je devrais y arriver :)

Et oui, en théorie, l'admin est responsable, donc les injections sql, defacages, ou autres, quand seul l'admin peut le faire, n'est pas trop grave... (ca relève juste d'une structure de code pas top)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 oct. 2005 à 19:02
j'en ai fait un pour autre chose... C'est pas hyper compliqué, renseignes soit sur innerHTML...

Mais t'es pas obligé de les uploader sur le même formulaire (pour mon blog, j'ai pas fait comme ça, et ça marche très bien...)

Bon, sinon, t'es pas obligé de vérifier le type comme tu le rentre dans une base SQL, le fichier le sera pas exécutable... De plus, l'admin est cencé être qqn de responsable...
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
18 oct. 2005 à 14:40
Oui, là tu as bien saisi ma question :)
J'ai cherché, et apparement, seul JS permet de faire un joli truc... je vais voir si je peux m'en dépatouiller !
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
18 oct. 2005 à 13:00
ooh! oki autant pour moi =)
Mais personnellement j'aime pas devoir remplir une liste de champs file... c'est... prise de tête!

Pour ta question (que j'ai mieux comprise je l'espère) phpbb utilise bien évidemment du javascript pour ajouter les champs un par un et cela me semble la meilleure solution face au problème que tu exposes.
Une autre solution serait de mettre un champ où tu demanderais combien de fichier tu veux uploader, et php génèrerait la page avec le nombre voulu de champs files. Mais des fois on se trompe, et si on a remplis 14 champs files et qu'on se rend compte qu'il nous en faut un 15°, on a plus qu'a tout recommencer car recharger la page efface les champs files (du moins sur firefox et internet explorer si je ne m'abuse)
Même si je n'aime pas le javascript (allergie congénitale) il me semble que c'est la meilleure solution. Tu n'as plus qu'a décortiquer le javascript de phpbb pour piger comment ça marche :p
(En espérant avoir été plus utile <_<)
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
18 oct. 2005 à 12:48
Ce n'est pas ce que je demandais monoceros :)
Je sais comment gérer l'upload de plusieurs fichiers, je me posais juste la question de pouvoir ajouter x champs pour uploader les fichiers ;)
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
18 oct. 2005 à 12:03
Pour mettre plusieurs fichiers en fichier joint (je comprends par là "pour envoyer plusieurs fichiers en même temps sur le serveur via un forumlaire html"), il y a la possibilité (si le serveur le permet) de pouvoir uploader un fichier compressé contenant les fichiers que tu veux envoyer. C'est la méthode la plus efficace que je connaisse.

Pour la vérification du type d'un fichier, il y a la possibilité d'utiliser la variable $_FILES['userfile']['type'] (voir http://www.nexen.net/docs/php/annotee/features.file-upload.post-method.php)
Sinon, après avoir cherché un peu, il me semble qu'on ne puisse contrôler que le type MIME des fichiers images.
Mais le plus important est, il me semble, de vérifier si le client mal intentionné (ou le vilain!) n'envoie pas un fichier pouvant être executé côté serveur. Donc interdire l'upload de fichiers dont l'extensione est .php ou .php3
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
18 oct. 2005 à 10:10
Je suis en train de regarder comment mettre en fichier joint plus fichiers, mais je ne sais pas trop comment faire.. j'avais pensé au principe de phpbb avec les sondes, en ajoutant un bouton pour ajouter un champs, mais je ne sais pas trop comment faire... et sinon comment savoir à coup sûr le type d'un fichier?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
17 oct. 2005 à 18:50
plutôt que le BBcode, tu peux penser à un éditeur WYSIWYG...

pour ce que j'ai dit des uploads : vas voir sur mon blog : http://coucou747.hopto.org, j'ai autorisé l'upload de fichiers autres que les fichiers images, et mieux : je leurs mets une icone corespondant... J'ai bientôt finit le colorateur synthaxique... j'ajouterais peut-être un éditeur d'expressions mathématiques (prochain projet), une newsmletter, un formulaire pour conseiller le site à un amis ... Bref, on peut uploader autre chose que des images, et ces fichiers sont traités comme tels...
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
17 oct. 2005 à 11:41
Oups, errata, j'ai oublié de finir ma phrase :
"Les mots clefs en majuscules/minuscules, ainsi que la réécriture de certaines requêtes (élimination des "SELECT *" et des doubles quotes).." ... seront pour plus tard car on devra revérifier toutes nos sources avant la version finale :)
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
17 oct. 2005 à 10:47
Merci encore pour vos avis :)
Concernant la qualité différente du code que tu as noté, Coucou, c'est parceque nous sommes deux à travailler ! Moi principalement sur la partie Administration, mon collègue, Jypees, sur la partie Visite (mais chacun a un peu touché le code de l'autre).

Alors, pour le mkdir tout moche, c'est réglé.
Pour la regex, j'ai corrigé, je ne savais pas que ces caractères étaient disponibles dans les adresses email Ô_o

Pour ton problème, coucou, qui te fais revenir sur le formulaire automatiquement, si tu as bien rempli en premiers lieux le formulaire, un install.lock aurait dû se créer, empêchant le réaffichage du formulaire d'installation...

Les mots clefs en majuscules/minuscules, ainsi que la réécriture de certaines requêtes (élimination des "SELECT *" et des doubles quotes)..

Sinon, je ne comprends pas trop ton histoire d'extension pour les fichiers image... comme me l'avait conseillé Immortalpc, j'ai basé le reconaissance d'un fichier image sur le type mime...

Finalement, pour tes remarques sur le peu de possibilités, sache que nous travaillons dessus :)On avait voulu mettre le projet en cours de construction ici avant sa sortie officielle pour avoir des critiques pertinentes sur notre travail durant sa mise en oeuvre pour éviter d'avoir une grosse part de code à retravailler, et avoir des idées... Le moteur de recherche est prévu, on va essayer de faire une sorte de bbCode personnel (un peu archaïque, mais bon, ca sera "Made by Nous" ^_^), éventuellement, je dis bien éventuellement, la gestion de plusieurs images pour un article, l'ajout de fichiers à downloader par un admin esra aussi mise au point, un systeme de messagerie pour prendre contact avec l'admin est à l'étude aussi (plus pratique que d'envoyer un mail)...
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
17 oct. 2005 à 04:17
Et pis... bon... j'ai pas lu la source du tout mais il semblerait que
mysql_query("DELETE FROM `coms` WHERE `id_coms` = $id");
Soit la requète d'un administrateur pour supprimer un... commentaire je dirais...

Enfin quoiqu'il en soit, je connais pas beaucoup de blog qui permette à un visiteur de supprimer quoique ce soit dans la base. Donc mis à part si l'administrateur s'amuse à se faire lui-même des injection SQL par délire schyzophrène (oui protégeons-nous contre notre follie :p), je ne vois pas trop l'intérêt de protéger ce qui se trouve dans cette clause WHERE.
Là le problème se trouverait d'abord dans la sécurité de la zone d'administration.

De plus, il ne me viendrais jamais a l'esprit de metre un htmlentities dans une clause WHERE à moins d'avoir appliqué cette fonction avant d'insérer/updater des données dans la base. Ce qui est pas génial, parce que ça peut augmenter la taille de la chaîne de caractère pour la même information. Faut économiser sa pov' base =)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
16 oct. 2005 à 11:36
sinon, vous pouvez mettre :
$id=(int)$id;
if ($id!==0){
//requette
}else{
echo 'ERREUR !!!';
}

je trouves cette solution assez simpathique... on peut aussi remplacer le (int)$id par intval($id), je ne sais pas ce qui est le plus rapide...
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
15 oct. 2005 à 23:34
Oui je c'est mais j'ai préféré faire simple et je ne me souvenais plus de la syntax correcte.
Il y a la meme fonction mais en plus simple : mysql_escape_string
Elle protège jsute les caratères " et '
Mais il est vrais qu'elle est mieux adapté.
@+
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
15 oct. 2005 à 23:03
ImmortalPC tu à écrit
> 7)
> MySQL:
> Potrection des champs !!!!
> mysql_query("DELETE FROM `coms` WHERE `id_coms` = $id");
> ----
> mysql_query("DELETE FROM `coms` WHERE `id_coms` = ".htmlentities($id).";");

mais il me semble que la fonction "mysql_real_escape_string()" ( voir sur http://fr2.php.net/manual/fr/function.mysql-real-escape-string.php ) est la plus adéquate dans ce cas là =) (evidemment il faut mettre des stripslashes() aux données renvoyées par les formulaires si "magic_quotes_gpc" est à on )
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 oct. 2005 à 12:45
j'ai retenté (suite à ta mise à jour) d'installer ton blog, et j'ai remarqué quelques petites choses :
lors de l'installation, une fois l'installation terminée, on revient automatiquement sur le formulaire, ce qui est assez désagréable...

On n'a pas beaucoups de possibilitées avec ton blog, je n'ai pas testé la façon dont il gérait les images, mais aparement, on ne peut pas faire de catégories d'articles, ni mettre plusieurs images par articles... c'est domage...
Tu n'as pas non plus de moteur de recherche...
Ce blog est très joli, mais reste au niveau de skyblog... Et encore, sur skyblog, tu as la possibilitée d'ajouter des liens...

coté code :
tu n'es pas super régulier, mais je suposes que c'est du au fait que tu t'es amélioré pendant la conception du blog :
$query = mysql_query("SELECT * from `administrateur` LIMIT 0,1");
ligne 4 dans le fichier administrator/admin_panel.php tu utilises des doubles quotes, et ta requette comporte une étoile, ce qui peut être mauvais, car même si la tu utilises tout les champs, en cas d'ajouts de colones dans ta table, alors ta requette ne restera pas optimisée...

sinon, tu n'utilises pas assez de CSS :

size="64"

if (preg_match("!^[a-z0-9_.-]+@[a-z0-9_.-]{2,}\.[a-z]{2,4}$!", $email))
ton expression régulière est mauvaise car dans un mail, on a le droit aux caractères suivants : + { et }

bon, sinon, on croise parfois des mots clefs en majuscules, et parfois en minuscules, faut être rigoureux dans ce que l'on fait, mais c'est pas trop grave...

aparement, tu limites aussi ton admin aux fichiers images, mais tu le fais par les extentions, c'est une mauvaise solution, mais pourquoi cette limite aux fichiers images ?

tu pourrais te faire des fonctions pour les dates par exemple...

$taille = getimagesize("$image");
$width = $taille[0];
$height = $taille[1];
mais quelle horeur ! met plutôt :
list($width, $height)= getimagesize($image);

sinon, t'as laissé des : <? par exemple au fichier : includes/info_membre.php

mkdir("". $path . "avatar");
ça aussi c'est très joli : mkdir($path . 'avatar');
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
14 oct. 2005 à 21:54
Très bien ;-)
C'est bon si tu vides les anciens, valeurs avec un unset c'est ok.
Dommage on peut pas changer la note en 10/10 ;-)
@+
NaeiKinDus Messages postés 51 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 3 août 2007
14 oct. 2005 à 17:21
Bon, concernant les foreach, j'ai ajouté une ligne pour unseter les anciennes variables récupérées (depuis les GET, POST, et un array). Pour tes remarques, Immortal-PC, les numéros 1,2 et 3 c'est bon, pour la 4, j'ai gardé les foreach, j'ai ajouté des unset, pour la 5, j'ai ajouté deux index.html dans les dossiers administrator et includes, remarques 9 et 10 corrigés, 11 et 12 idem :)
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
13 oct. 2005 à 13:05
Oui mais surcharger le serveur pour rien :-/
Une boucle pour créer chaque variable
et les anciennes variables $_POST ou $_GET sont encore chargées.

Alors que la simplicité est à porté de main.
Mais dans tout les cas la source est très bien codé.
@+
Naixn Messages postés 455 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 22 juillet 2007
13 oct. 2005 à 10:35
1) "à condition de bien gérer le contenu de la variable"
> a ce niveau là, utiliser $_POST['toto'] ou $toto = $_POST['toto'], c'est un peu (beaucoup la même chose, il faut gérer le contenu de la variable.

2) Après la perte de temps... Ouais peut-être, mais elle n'est pas forcément significative ici.
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
13 oct. 2005 à 10:31
Salut,
1) "à condition de bien gérer le contenu de la variable" !!!
2) Perte de temps alors que l'on peut faire plus simple.
++
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
13 oct. 2005 à 10:30
"à condition de bien gérer le contenu de la variable" !!!
Naixn Messages postés 455 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 22 juillet 2007
13 oct. 2005 à 01:12
foreach($_POST as $key => $value)
{
$$key = $value;
}

Quelle différence exactement ?
Parceque entre
$test = "toto";
et
$test = $_POST['toto'];
niveau sécurité, c'est entre guillement pareil (à condition de bien gérer le contenu de la variable), non ?

Si c'est le cas, je vois pas pourquoi ça pose problème de faire cette boucle ?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
12 oct. 2005 à 15:13
y a un truc qui est nul :
ta requette de création de table ne contient pas IF NOT EXISTS ce qui fait que si l'install a un problème, on ne peut pas la recommencer sans supprimer la table (exemple : si t'as pas mis les droits...)

bon, à part ça, ça ne marque pas chez moi, je suposes que c'est à cause de register_globals...

il cré la BDD et ne veut pas enregistrer mon pseudo et tt ça dedans...

(j'ai pas dis que je voulais l'utiliser, mais juste tester...)
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
12 oct. 2005 à 14:21
Salut,
Auniveau du codage y' a des truc qui peuvent être simplifié et la sécurité peut être amélioré mais si non c' est tout nikel.
1)
echo mysql_error();
die();
-------
die(mysql_error());
mysql_query peut être remplacé par une fonction ou une class pour mieux gérer les érreurs et autre..

2)
isset($_POST['password2']) == TRUE
isset($_POST['password2']) == FALSE
if($toto != NULL)
------
isset($_POST['password2'])
!isset($_POST['password2'])
if(!$toto) ou encore if(!empty($toto))

3)
echo 'toto'
echo 1;
echo 'toto',$toto;
Les 3 formes les plus rapide d' echo

4)
While est plus rapide que foreach
foreach($array as $key => $value){
$$key = $value;
}
-----
while(list($key, $val) = each($array)){
$$key = $val;
}

5)
Au niveau de la protection, y' a mieux.
On ne doit pas permettre à un visiteur non solicité de lister un dossier.
Un htaccess et le tour et joué:
deny from all
Ou un index.html ou index.php, etc

6)
Hum
foreach($_POST as $key => $value){
$$key = $value;
}
Si l'on à un register_globals à off c'est pas pour rien !!!
Donc: $_POST['toto'] et pas $toto

7)
MySQL:
Potrection des champs !!!!
mysql_query("DELETE FROM `coms` WHERE `id_coms` = $id");
----
mysql_query("DELETE FROM `coms` WHERE `id_coms` = ".htmlentities($id).";");

8)
"SELECT * from" n'est pas du tout conseilé du tout !
"SELECT `id`,`toto` FROM" est mieux

9)
// Regarde si la fin du nom de fichier est jpg ou jpeg
$ext = array('jpg', 'jpeg', 'png', 'gif');
$file_ext = strtolower(substr(strrchr($fichier_name, '.'), 1));
Et encore une faille !!!
Savoir l'extention c'est bien mais savoir le mime c'est mieux :
$mime = getimagesize('monfichier');
echo $mime['mime'];

10)
Les @ devant les variables ou autres pour empêcher l'affichage d' erreurs n'est pas du tout recommandé !

11)
HTML :
Pour une meilleur compactibilité
devient

car tous les navigateurs ne supportent pas

Meme chose pour les balises sans fin.

12)
Et vous azvez oublié par endroit la balise de déclaration de DOCTYPE !
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

C' est tout.
9/10
@+
ImmortalPC