LE SYSTÈME DES COMMENTAIRES AVEC MODÉRATION DE L'ADMINISTRATEUR

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 - 15 oct. 2010 à 09:11
cs_sunnely Messages postés 1 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 26 avril 2011 - 26 avril 2011 à 18:29
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/52383-le-systeme-des-commentaires-avec-moderation-de-l-administrateur

cs_sunnely Messages postés 1 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 26 avril 2011
26 avril 2011 à 18:29
merci pour ce script, j avais ecrit un systeme simple de commentaire avec un update table-set et delete table-set mais je galerai a trouver un systeme pour mettre en attente les commentaires, ton script est nikel , je vois pas pourquoi certains geulent qd les choses fonctionnent!merci
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
31 déc. 2010 à 13:26
Bon, comme quoi, quand NEIGEDHIVER disait qu'il fallait tout refaire .... il avait raison ! ;-)

Wizardblack, je te conseille de voir directement dans la doc PHP comment reconstruire ce qu'a proposé Pitchoubrazil.
Son idée t'as plu ? Essayes de trouver les bonnes pistes toi-même maintenant ! Tu verras c'est intéressant de bien comprendre ce que l'on place sur son site !
Pour la maintenance, tu te souviendras de quoi tu as réellement besoin si tu l'as bâti toi tout seul !

Bonne prog et bonne année 2011 !
wizardblack Messages postés 6 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 9 mars 2011
9 déc. 2010 à 14:13
merci, je vais encore essayer avec mon minuscule connaissance en php de résoudre l'erreur.
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
9 déc. 2010 à 12:24
Ça ne sert à rien , je viens de le supprimer.
wizardblack Messages postés 6 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 9 mars 2011
9 déc. 2010 à 12:12
A quoi sert le répertoire Nova pasta ?
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
9 déc. 2010 à 11:44
wizardblack, je viens de telecharger le même que j'ai posté sans fonctionnement très bien , il faut verifier chez toi si t'as fait quelques ajouts. Tu peux avoir omis une virgule quelque part ou ajouté.
wizardblack Messages postés 6 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 9 mars 2011
9 déc. 2010 à 09:44
J'ai peut être pas récupéré les bons fichiers.
wizardblack Messages postés 6 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 9 mars 2011
9 déc. 2010 à 09:41
Merci pitchou, mais j'ai encore des erreurs.
Voici le code :

*
page 1

ces commentaires concernent les news du site

Notice: Undefined index: nom in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 55

Notice: Undefined index: email in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 56

Notice: Undefined index: site in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 57

Notice: Undefined index: commentaire in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 58

*
toto dit le :
Notice: A non well formed numeric value encountered in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 129
01/01/1970 00:01

commentaire 1
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
9 déc. 2010 à 03:06
wizardblack , je viens faire quelques modifications tu peux telecharger , tout fonctionnement bien chez moi.
wizardblack Messages postés 6 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 9 mars 2011
6 déc. 2010 à 11:59
Bonjour,
j'ai un message d'erreur, quelqu'un pourrais d'aider?
voici l'erreur:

*
page 1

ces commentaires concernent les news du site

Notice: Undefined index: nom in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 55

Notice: Undefined index: email in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 56

Notice: Undefined index: site in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 57

Notice: Undefined index: commentaire in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 58

Notice: Use of undefined constant ok - assumed 'ok' in C:\wamp\www\commentaires_avec_moderation_de_l'administrateur_du_site\single.php on line 61

Unknown column 'date' in 'field list'

d'avance merci
GREGGRAPH Messages postés 62 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 21 avril 2010
27 oct. 2010 à 00:51
J'avais oublié, dans la partie modération, après avoir approuvé le commentaire, il ne se met pas dans la partie Commentaires approuvés
GREGGRAPH Messages postés 62 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 21 avril 2010
27 oct. 2010 à 00:41
Il y a un progres, j'ai rempli le formulaire, puis envoyez le commentaire et j'ai ça comme réponse:
Erreur dans la tentative d'enregistrer le commentaire , Merci d'essayer une nouvelle fois.

En revanche le commentaire est bien enregistré dans la table de la bdd;
il est bien dans le système de modération. le tout fonctionne bien.
Il y a juste ce message d'erreur.

Autre chose si on rafraichi la page avec le formulaire, le commentaire est renvoyé à nouveau, y a t'il un moyen pour effacer le contenu du formulaire lorsque le commentaire est envoyé?
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
26 oct. 2010 à 23:02
regarde à la 30ème ligne dans la page single il y a une virgule normalement le texte est à la fin tu enlève cela et dans la table c_comments au dernier enregistrement il y a comentaire remplace par commentaire
car la variable commentaire a deux 'm'. ok
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
26 oct. 2010 à 22:36
normalement ça devrait affiche un message. Bon ok je vais analyser toutes les possiblilités et je te repond.
GREGGRAPH Messages postés 62 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 21 avril 2010
26 oct. 2010 à 21:41
Je ne sais pas vu qu'il n'y en a aucun qui peut s'enregistrer.
Je remplis bien le formulaire, mais lorsque j'envos mon commentaire, rien ne se passe :(
Et rien non plus ne s'écrit dans la bdd :(
il doit y avoir un pb de liaison entre les 2 mais il n'y a pas de message d'erreur.
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
26 oct. 2010 à 14:52
bonjour GREGGRAPH, une petite question est ce que tu arrive à approuvé ou excluir un commentaire ?
GREGGRAPH Messages postés 62 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 21 avril 2010
26 oct. 2010 à 09:08
Non
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
26 oct. 2010 à 07:18
salut GREGGRAPH, le commentaire est enregistré dans le bdd.
GREGGRAPH Messages postés 62 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 21 avril 2010
25 oct. 2010 à 22:01
merci Pitchoubrazil, j'ai corrigé.
C'est réglé mais j'ai encore un souci. Apparemment le commentaire ne s'enregistre pas dans la bdd et je n'ai pas d'erreur qui s'affiche :(
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
25 oct. 2010 à 16:13
bonjour GREGGRAPH,
pour corriger ceci:
Unknown column 'date' in 'field list'
regarde à la table c_comments il y a petite erreur qui s'est glissée au lieu "date" j'ai dû écrire "data".
Change cela et tout fonctionnera normalement.
En cas de probleme je suis à votre disposition.
GREGGRAPH Messages postés 62 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 21 avril 2010
25 oct. 2010 à 02:23
Bonjour,

j'ai essayé de mettre le système de commenatire sur une des pages, mais ça n'a pas l'air de fonctionner;
sur single;php j'ai ça qui s'affiche:
Il n'existent pas des commentaires pour le moment
Unknown column 'date' in 'field list'

J'ai bien insére la ligne : ["single.php?post=<?php echo $post_id;?>"><?php echo ]
ça me mets la liste des pages mais pas le formulaire de commentaire ?

Je pense que j'ai dut faireune erreur quelque part :(
un eptit coup de main serait sympa;
Nort0n Messages postés 41 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 18 octobre 2010
20 oct. 2010 à 17:12
"il faut donner en detailler les failles que t'a trouvé dans ce système pour me permettre de l'ameliorer davantage mais non se limiter en disant pas mal de chose"

T'as conscience qu'en disant pas mal de choses on te donne aussi les failles et les explications.
Seulement on te les donne une fois et tu n'en prends ps compten et en plus Neige se fait à moitié envoyer chier parce qu'il explique (cf "ces détails de merde ...").

Et bon, je ne vais pas non plus réécrire ton code en te disant "il faut faire comme ça". On te donne les points de départ, à toi de faire le chemin jusqu'à l'arrivée ...

Pour conclure, je n'insiste pas vu que la mauvaise foi règne en maître.
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
20 oct. 2010 à 00:42
@Nort0n bonjour;
Ici il ne faut faire le fanatisme, pose clairement ta question et sera repondue dans la mesure du possible. neigedhiver a fait des remarques dont certaines étaient fondée et d'autres pas du tout en mon humble avis. Je suis conscient que je n'ai inclu l'authentification de la partie administrative. Ça tout programmeur qui veut utiliser ce code peut inclure sans problème et surtout qu'il y a pas mal de codes dans site traitant le sujet de l'authentification. Etc ne va pas monsieur , il faut donner en detailler les failles que t'a trouvé dans ce système pour me permettre de l'ameliorer davantage mais non se limiter en disant pas mal de chose, etc.
GREGGRAPH Messages postés 62 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 21 avril 2010
19 oct. 2010 à 23:56
Bah ! OK!

J'ai rien dit alors ;)

Greg
Nort0n Messages postés 41 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 18 octobre 2010
19 oct. 2010 à 12:51
Celle de COD57 peut-être, mais les autres non.

- Comme la gestion des erreurs qui est absente;
- Aucune identification de l'espace admin;
- etc ...

Bref, pas mal de choses ont déjà été dites, et une seule a été appliquée, alors ne dit pas que nos remarques sont prises en compte ...
GREGGRAPH Messages postés 62 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 21 avril 2010
19 oct. 2010 à 00:18
Holla Norton !

Quand tu dis "PS : Je ne fourni aucune idée d'amélioration, étant donné que, même quand on le fait, on prend quand même =)"

C'est faux, la remarque et l'évolution apporté par COD57 a été ajouté ;)
Alors c'est quoi tes évolutions par rapport à tes remarques ;) Alors !
Nort0n Messages postés 41 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 18 octobre 2010
18 oct. 2010 à 19:51
Vu les réactions, je vais en prendre pour mon grade, mais ainsi soit il ...

Je suis plutôt d'accord avec Neige d'hiver :

Relativement mal codé, incomplet, pas mal d'erreur, une flemme certaine de gérer les erreurs SQL et un code bordelique ...

Juste une question : En quoi ce code est réutilisable ?

PS : Je ne fourni aucune idée d'amélioration, étant donné que, même quand on le fait, on prend quand même =)
pitchoubrazil Messages postés 13 Date d'inscription dimanche 28 mars 2010 Statut Membre Dernière intervention 14 février 2011
18 oct. 2010 à 03:34
@GREGGRAPH Bonjour, bien sûr ce systèment peut être utilisé dans différentes pages.
- Insère dans la table c_posts au champ titre et une petite description de ta page(optionnel)au champ texte

-Met la ligne suivante
["single.php?post=<?php echo $post_id;?>"><?php echo ]
dans les pages qui seront commentées.
je pense que je viens de repondre à ta question. En cas de difficulté je suis là!
GREGGRAPH Messages postés 62 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 21 avril 2010
18 oct. 2010 à 01:14
Bonjour,

Juste une petite question.
Y a t'il un moyen pour utiliser ce système dans différentes pages? je m'explique, j'ai un site avec une centaine d'article ou page comme on veut.
J'aimerai mettre un système de commentaire par page pour quel les internautes puissent discuter sur le sujet. C'est une idée ancienne mais je n'ai jamais touvé de code que je pouvais inclure à mon site.

Merci d'avance pour la réponse,
Greg
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
16 oct. 2010 à 17:56
@neige d'hiver "Détails de merde ";c'est toi qui pinaille tout le temps faut te relire !

// ne pas écrire vos $_POST , $_GET directement dans votre 'query' je propose :

// si le serveur accessible , sinon mysql_real_string_escape() marche pas ...


$ma_var_a_inserer = sanitise($_POST['ma_var_postee']);

// fonction à mettre en haut de page

function sanitise($string){
$string = strip_tags($string); // anti xss injection
$string = htmlspecialchars($string); //
$string = trim(rtrim(ltrim($string))); // pas tjs utile
$string = mysql_real_escape_string($string); // anti mysql injection
return $string;
}
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
16 oct. 2010 à 16:53
Oh pardon, j'ai fait une faute de frappe, c'est impardonnable.

@ sert surtout à masquer l'incompétence ou la fainéantise de certains développeurs qui ne veulent pas / savent pas gérer les erreurs.

strip_tags ne protège pas contre les injections SQL. Un point c'est tout.

Et y'a pas que la NASA qui a le droit d'avoir un site sécurisé et du code de qualité. C'est pas avec ce genre de raisonnement qu'on progresse.
Putain mais même quand je donne des éléments pour améliorer, y'en a qui viennent me faire chier avec des détails de merde et des arguments à la con.

Désolé d'être grossier, mais ça devient vraiment pénible !
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
16 oct. 2010 à 14:43
Salut neigedhiver

1/ La fonction c'est pas "stripp_tag" mais strip_tags dixit
(faut pas t'énerver quand tu écris)

2/ Contre une injection xss c'est déja ça
le manuel ...
strip_tags() tente de retourner la chaîne str après avoir supprimé tous les octets nuls, toutes les balises PHP et HTML du code. Elle génère des alertes si les balises sont incomplètes ou erronées. Elle utilise le même moteur de recherche que fgetss().

3/Avec un mysql_real_escape_string() (CONNECTION ACTIVE) sur les variables à insérer ça suffit, faut pas devenir parann !

4/@ sert aussi à cacher aux hackers les erreurs !

5/C'EST PAS UN CODE POUR LA NASA
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
16 oct. 2010 à 02:26
Je cite :
"L'utilisation de mysql_close() n'est pas habituellement nécessaire, puisque les connexions non persistantes ouverts sont automatiquement fermées à la fin l'exécution du script"
Source : php.net/mysql_close

Bon mais sinon, c'est pas exactement ce qu'on peut appeler un code de qualité :
- pas de protection des données insérées (la fonction stripp_tags n'a JAMAIS été et ne sera jamais une fonction de protection
- du php en vrac n'importe comment au milieu du html
- gestion des erreurs SQL plus que médiocre qui tend sur le néant (utilisation de l'opérateur de suppression d'erreur @)
- certaines lignes de code sont purement et simplement ARCHI FAUSSES, par exemple, mais pas uniquement :
# if(@mysql_num_rows($link=='0')){
# echo"Il n'existent pas des commentaires pour ce moment";
# }
- je n'ai pas vu de système d'authentification pour la partie modération
- tout ça, c'est très difficilement intégrable dans un site sans tout réécrire

Bref...

Ah ! Si je dis pas ce qu'il faut faire pour améliorer la source, je vais encore me faire engueuler.
1. Apprendre le PHP : la syntaxe doit être un minimum rigoureuse, les fantaisies ne fonctionnent pas mieux quand elles sont cachées avec un @
2. Continuer d'apprendre le PHP, notamment la déclaration d'une chaîne de caractères et la manière dont les variables y sont interprétées, notamment les tableaux associatifs
3. Se renseigner sur l'injection SQL
4. Gérer les erreurs
5. Séparer un peu le HTML du PHP et proposer un code qui soi FACILEMENT intégrable
6. Dans la famille sécurité, je demande l'authentification

Bonne continuation.
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
15 oct. 2010 à 09:11
Salut
Je trouve pas de mysql_close() ?
mysql_real_string_escape() sur les variables à insérer ... (j'ai vu le striptags())
Sinon le script est simple et bien, il va à l'essentiel
merci
Rejoignez-nous