Problème avec module de commentaire PHP/AJAX

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec module de commentaire PHP/AJAX

Re: Problème avec module de commentaire PHP/AJAX

par xTG » 16 mai 2011, 18:06

Bah dans ce cas utilises le nom de la page comme identifiant de ta table.
En gros tu enregistres un md5() de l'adresse (récupérable dans je ne sais plus quel index de $_SERVER).
Ainsi tu obtiendras un code générique.

Re: Problème avec module de commentaire PHP/AJAX

par Mooks » 16 mai 2011, 15:53

Merci beaucoup pour le temps que tu as pris à me répondre ;-)

En revanche, je me rends compte que je n'ai pas été assez précis sur un point : j'aurais aimé ne pas avoir à entrer manuellement l'ID de la page, vu le grand nombre de pages que mon site possède. D'après ce que je comprends de ton morceaux de code (dis moi si je me trompe^^), un ID va être attribué à chaque page. Mais je devrais, manuellement, écrire cet ID sur mes différentes pages où je collerais ce bout de code :
$result = mysql_query("SELECT * FROM comments WHERE idForm = $numero_de_la_page ORDER BY id ASC");
Ma question est donc la suivante : n'y a-t-il pas une possibilité de requête pour retrouver automatiquement cet ID? Pour éviter d'avoir à le rentrer manuellement? C'est pour cela que j'avais penser à ce que j'appellerais un page_url plutôt qu'un page_id.

C'est à dire que si l'url de la page est www.monsite.com/salut.php , alors créer une entrée dans le champ page_url = url. Ainsi, le serveur saura que pour la page salut.php , il devra aller dans le champ page_url et sélectionner toutes les lignes comportant salut.php.

Je ne sais pas si j'ai été assez clair... mais merci encore d'avoir consacré un peu de temps à ma requête.

Re: Problème avec module de commentaire PHP/AJAX

par xTG » 16 mai 2011, 08:25

Il faut déjà commencer par changer la structure de la table SQL.
Il faut rajouter un identifiant qui indique la page et qui permettra donc de grouper les messages. (un numérique ferra l'affaire)

Ensuite il faut pouvoir préciser dans le formulaire ce numérique, on préférera un input de type hidden.
Ce champ possédera une valeur différente sur chacune de tes pages afin de séparer les commentaires.
(Je nomme ce champ idForm pour la suite de l'explication)

L'enregistrement doit prendre en compte cet identifiant et l'insérer dans la table.
Déjà modifier la fonction de validation pour rajouter ce champ dans le fichier comment.class.php dans la fonction validate :
if( !filter_input(INPUT_POST,'idForm',FILTER_VALIDATE_INT) )
{
    $errors['idForm'] = 'Une erreur s'est produite.'; // Je vois pas trop quoi dire vu que c'est une donnée cachée... Le but est de bloquer le formulaire sans plus.
}
Rajouter l'id dans la requête d'insertion : (submit.php)
mysql_query("   INSERT INTO comments(name,url,email,body)
	                    VALUES (
                                ".$arr['idForm'].",
	                        '".$arr['name']."',
	                        '".$arr['url']."',
	                        '".$arr['email']."',
	                        '".$arr['body']."'
	                    )");
Et enfin l'affichage ou plutôt la requête permettant l'affichage qui se trouve dans le fichier demo.php où il faut insérer l'id de la page actuellement affichée :
$result = mysql_query("SELECT * FROM comments WHERE idForm = $numero_de_la_page ORDER BY id ASC");
Voilà en gros comment opérer pour permettre ce que tu veux. ;)

Problème avec module de commentaire PHP/AJAX

par Mooks » 15 mai 2011, 19:48

Bonjour,

J'ai installer sur mon site un module de commentaire de chez tutorialzine : http://tutorialzine.com/2010/06/simple- ... ng-system/

Tout marche impec', mais sur une seule et unique page. Dès que je met le code sur une seconde page, il m'affiche la même chose, les mêmes commentaires qu'en page une.
J'aimerais en réalité que la page php, via un script, regarde dans le champ "page_URL" de ma table. Si page_URL existe, alors afficher la page avec les commentaires qui se réfèrent à cette ligne. Si page_URL n'existe pas, alors créer l'entrée dans la base de données puis afficher le module de commentaire.
Je suis sur que c'est possible, mais ne sais pas du tout comment faire.

Merci à ceux qui voudrons bien m'aider.

PS : le lien que je vous ai fournit en début de post comprend le code en intégral des différents fichiers.