Accueil > tutos > ajax > systeme-de-commentaire-ajax
Système de commentaire AJAX / PHP
| Difficulté | Tags / Mots-clés | Prérequis |
|---|---|---|
![]() |
AJAX, système de commentaire, simple, design, commentaire, Module commentaire AJAX, Module AJAX | Bonne base PHP / MySQL, Maitrise XHTML / CSS |
| Durée | Voir aussi | Publié le |
|---|---|---|
| 2 heures | Formulaire de contact AJAX, Système de vote AJAX | 07 août 2010 |


Comme vous avez déjà peut-être pu le constater, un nouveau module de commentaire basé sur la technologie AJAX est venu s'ajouter à Astuces-Webmaster. Et c'est précisement ce module de commentaire que je vais vous apprendre à intégrer dans un site web. Mais tout d'abord, je vais vous présenter les deux modules qui font la force de ce module de commentaire.
1. Le premier élément est la base du système de commentaire AJAXisé et tiré de l'excellent site anglophone Tutorialzine.com et constitue ainsi la base du module, robuste et fiable.
2. Quant au deuxième, le défi était de trouvé un formulaire qui donne envie de laisser des commentaires ! Quelque chose de moderne, exploitant les nouvelles propriétés CSS3 et qui ait de la gueule ! Second paramètre requis : la simplicité, la clareté et l'intuitivité du formulaire. Gros challenge vous dites ? Je dois avouer qu'effectivement j'ai mis un certain temps à le trouver, mais j'ai fini par mettre la main sur quelque chose de très convainquant et qui remplissait les conditions fixées au départ. Je n'en dis pas plus, je vous laisse voir de quoi il s'agit.
![]()
Et voilà le résultat ! Un superbe module de commentaire qui en jette un max. ! Sans plus attendre je vous laisse checker une démo de cette petite merveille, le tutoriel est juste en dessous.
Avantages
Pas de rechargement de la page lors du post des commentaires grâce à son moteur AJAX
Formulaire intuitif et parfaitement comprhénsible (pas de subitilité cachée)
Le bouton "Envoyer" affiche un message pendant l'envoi du commentaire indiquant ainsi à l'utilisateur que sa requête est en cours de traitement.
Protection contre les posts intempestifs
Inconvénients
Pas de rechargement de la page lors du post des commentaires grâce à son moteur AJAX
Formulaire intuitif et parfaitement comprhénsible (pas de subitilité cachée
Le bouton "Envoyer" affiche un message pendant l'envoi du commentaire indiquant ainsi à l'utilisateur que sa requête est en cours de traitement.
Protection contre les posts intempestifs


Arborescence du module complet :
- Racine
- commm
- submit.php
- script.js
- connect.php
- comment.php
- comment.class.php
- img
- default_avatar.gif
- bg.jpg
- css
- commm
Etape 1 : Création de la table dans MySQL
CREATE TABLE `comments` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(128) NOT NULL default '', `url` varchar(255) NOT NULL default '', `email` varchar(255) NOT NULL default '', `body` text NOT NULL, `dt` timestamp NOT NULL, `page_id` varchar(128) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=154 ;
Etape 2 : Connexion à la base de données
--> connect.php
<?php
/* Configuration de la connexion */
$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'toor';
$db_database = 'database';
/* Fin de la configuration */
$link = @mysql_connect($db_host,$db_user,$db_pass) or die('Unable to establish a DB connection');
mysql_query("SET NAMES 'utf8'");
mysql_select_db($db_database,$link);
?>
Etape 3 : Récupération des commentaires & structure du formulaire
--> comment.php
<?php
// Error reporting:
error_reporting(E_ALL^E_NOTICE);
include "../comm/connect.php";
include "../comm/comment.class.php";
/*
/ On récupère les commentaires s'il y en a dans la BDD
*/
$comments = array();
$result = mysql_query("SELECT * FROM comments WHERE page_id = '$id_page' ORDER BY id ASC");
//
while($row = mysql_fetch_assoc($result))
{
$comments[] = new Comment($row);
}
?>
<?php
/*
/ Affichage des commentaires un par un
*/
foreach($comments as $c){
echo $c->markup();
}
?>
<div id="addCommentContainer">
<h4 align="center">Ajouter un commentaire</h4>
<form id="form1" method="post" action="">
<p>
<label for="name">Nom</label>
<input name="name" type="text" id="name" size="45" />
</p>
<p>
<label for="email">Email</label>
<input name="email" type="text" id="email" size="45" />
</p>
<p>
<label for="commentaires">Commentaire</label>
<textarea name="body" cols="35" rows="6" id="body"></textarea>
</p>
<p>
<label for="url">Site (facultatif)</label>
<input name="url" type="text" id="url" size="45" />
</p>
/*
/ Champ caché qui va transmettre l'ID de la page pour l'inscrire dans la BDD
*/
<input type="hidden" name="id_page" id="id_page" value="<?php echo $id_page ?>" />
<p>
<input type="submit" id="submit" value="Envoyer" />
</p>
</form>
</div>
Etape 4 : Traitement des données et vérification
--> comment.class.php
<?php
class Comment
{
private $data = array();
public function __construct($row)
{
/*
/ Le constructeur
*/
$this->data = $row;
}
public function markup()
{
/*
/ This method outputs the XHTML markup of the comment
*/
// Setting up an alias, so we don't have to write $this->data every time:
$d = &$this->data;
$link_open = '';
$link_close = '';
if($d['url']){
// If the person has entered a URL when adding a comment,
// define opening and closing hyperlink tags
$link_open = '<a href="'.$d['url'].'">';
$link_close = '</a>';
}
// Converting the time to a UNIX timestamp:
$d['dt'] = strtotime($d['dt']);
// Needed for the default gravatar image:
$url = 'http://'.dirname($_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]).'/comm/img/default_avatar.gif';
return '
<div class="comment">
<div class="avatar">
'.$link_open.'
<img src="http://www.gravatar.com/avatar/'.md5($d['email']).'?size=50&default='.urlencode($url).'" />
'.$link_close.'
</div>
<div class="name">'.$link_open.$d['name'].$link_close.'</div>
<div class="date" title="Added at '.date('H:i \o\n d M Y',$d['dt']).'">'.date('d M Y',$d['dt']).'</div>
<p>'.$d['body'].'</p>
</div>
';
}
public static function validate(&$arr)
{
/*
/ This method is used to validate the data sent via AJAX.
/
/ It return true/false depending on whether the data is valid, and populates
/ the $arr array passed as a paremter (notice the ampersand above) with
/ either the valid input data, or the error messages.
*/
$errors = array();
$data = array();
// Using the filter_input function introduced in PHP 5.2.0
if(!($data['id_page'] = filter_input(INPUT_POST,'id_page',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
{
$errors['id_page'] = '*';
}
if(!($data['email'] = filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)))
{
$errors['email'] = '<span style="color:red;"> Adresse invalide</span>';
}
if(!($data['url'] = filter_input(INPUT_POST,'url',FILTER_VALIDATE_URL)))
{
// If the URL field was not populated with a valid URL,
// act as if no URL was entered at all:
$url = '';
}
// Utilisation d'un filtre personnalisé callback function
if(!($data['body'] = filter_input(INPUT_POST,'body',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
{
$errors['body'] = '<span style="color:red;"> Entrez un commentaire</span>';
}
if(!($data['name'] = filter_input(INPUT_POST,'name',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
{
$errors['name'] = '<span style="color:red;"> Nom manquant</span>';
}
if(!empty($errors)){
// s'il y des erreurs : on les copie dans $errors array à $arr
$arr = $errors;
return false;
}
// si les données sont valides, on nettoie le code HTML et on les copie dans $arr
foreach($data as $k=>$v){
$arr[$k] = mysql_real_escape_string($v);
}
// On s'assure que l'adresse email est bien en minuscule
$arr['email'] = strtolower(trim($arr['email']));
return true;
}
private static function validate_text($str)
{
/*
/ La méthode utilisée pour le filtre des champs FILTER_CALLBACK
*/
if(mb_strlen($str,'utf8')<1)
return false;
// Encoder les caractères spéciaux tel que (<, >, ", & .. etc) et les convertir
// Modifier les nouvelles lignes par la balise <br>
$str = nl2br(htmlspecialchars($str));
// Enlever les lignes inutiles
$str = str_replace(array(chr(10),chr(13)),'',$str);
return $str;
}
}
?>
Etape 5 : Envoi des données dans La BDD
--> submit.php
<?php
// Error reporting:
error_reporting(E_ALL^E_NOTICE);
include "connect.php";
include "comment.class.php";
$arr = array();
$validates = Comment::validate($arr);
if($validates)
{
/* Tout est Ok, insertion dans la BDD */
mysql_query("INSERT INTO comments(name,url,email,body,page_id)
VALUES (
'".$arr['name']."',
'".$arr['url']."',
'".$arr['email']."',
'".$arr['body']."',
'".$arr['id_page']."'
)");
$arr['dt'] = date('r',time());
$arr['id'] = mysql_insert_id();
/* Fonction mail pour être prévenu lors de l'ajout d'un nouveau commentair */
$msg = "Un nouveau commentaire a été ajouté sur Astuces-Webmaster.ch!
Nom : ".$arr['name']."
Email : ".$arr['email'].";
Page = ".$arr['id_page'].";
Commentaire = ".$arr['body'];
mail('votre-email@email.com','Nouveau commentaire',$msg);
$arr = array_map('stripslashes',$arr);
$insertedComment = new Comment($arr);
/* Interprétation du HTML */
echo json_encode(array('status'=>1,'html'=>$insertedComment->markup()));
}
else
{
/* Affichage des messages d'erreurs */
echo '{"status":0,"errors":'.json_encode($arr).'}';
}
?>
Etape 6 : AJAX
--> script.js
Le fichier script.js contient le coeur de la fonction AJAX qui va permettre d'afficher un commentaire fraichement rédigé directement en dessous des autres sans avoir à rechargé toute la page. C'est le deuxième plus gros atout de ce module de commentaire.
Note du chef : la fonction jQuery.noConflict(); a été ajouté dans le script et la variable générale (habituellement $) a été changée pour $j ce afin d'éviter les conflits avec d'éventuels autres bibliothèques Javascript qui serait installé sur votre site.
$j = jQuery.noConflict();
$j(function() {
/* Le code qui suit est exécuté une fois que le DOM est chargé */
/* cette variable empêche les posts intempestifs */
var working = false;
/* On récupère les événements du bouton submit */
$j('#form1').submit(function(e){
e.preventDefault();
if(working) return false;
working = true;
$j('#submit').val('Chargement en cours..');
$j('span.error').remove();
/* Envoi des données au fichier submit.php */
$j.post('../comm/submit.php',$j(this).serialize(),function(msg){
working = false;
$j('#submit').val('Submit');
if(msg.status){
/*
/ Si l'insertion du commentaire c'est bien passé
/ l'afficher en dessous des autres avec un effet SlideDown
/*/
$j(msg.html).hide().insertBefore('#addCommentContainer').slideDown();
$j('#body').val('');
}
else {
$j.each(msg.errors,function(k,v){
$j('label[for='+k+']').append('<span class="error">'+v+'</span>');
});
}
},'json');
});
});
Etape 7 : la couche CSS3 ;-)
--> commentaire.css
/* MODULE DE COMMENTAIRE AJAX */
.comment,
#addCommentContainer{
background:#f7f7f7;
background:-moz-linear-gradient(90deg, #ccc, #fff); /* Firefox */
background:-webkit-gradient(linear, left top, left bottom, from(#fff), to(#ccc)); /* Webkit */
border:1px solid #aaa;
border-radius:10px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
-moz-box-shadow:0 0 15px #aaa;
-webkit-box-shadow:0 0 15px #aaa;
box-shadow:0 0 15px #aaa;
margin:20px auto;
padding:20px;
width:510px;
}
.comment .avatar{
height:50px;
width:50px;
background:url('../comm/img/default_avatar.gif') no-repeat #fcfcfc;
-moz-box-shadow:1px 1px 0 #c2c2c2;
-webkit-box-shadow:1px 1px 0 #c2c2c2;
box-shadow:1px 1px 0 #c2c2c2;
float:left;
margin-right: 20px;
}
.comment .avatar img{
display:block;
}
.comment .name{
padding-bottom:10px;
font-size:14px;
color:#0459b7;
font-weight: bold;
}
.comment .date{
font-size:10px;
padding: 20px 10px 0 10px;
color:#666;
float: right;
}
.comment p,
#addCommentContainer p{
line-height:1.5;
overflow-x:hidden;
}
fieldset,img{ border:0;}
html {
overflow:-moz-scrollbars-vertical;
}
form {
margin: 20px 0;
}
#comDiplayBox{
background:#f7f7f7;
background:-moz-linear-gradient(90deg, #ccc, #fff); /* Firefox */
background:-webkit-gradient(linear, left top, left bottom, from(#fff), to(#ccc)); /* Webkit */
border:1px solid #aaa;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
-moz-box-shadow:0 0 15px #aaa;
-webkit-box-shadow:0 0 15px #aaa;
box-shadow:0 0 15px #aaa;
margin:20px auto 0;
padding:20px;
width:510px;
height: auto;
}
form p{
margin-bottom:20px;
}
form p:last-child{ /* Sélecteur avancé pour sélectionner le dernier paragraphe du formulaire */
margin-bottom:0;
}
label{
cursor:pointer;
display:block;
float:left;
font-weight:bold;
letter-spacing: 1px;
line-height:28px;
margin-bottom:5px;
width:160px;
}
form p:hover label{
color:#0459b7;
}
form p:hover label:after{
content:' >>';
}
input[type=text], textarea,
input[type=password]{
background: rgba(255, 255, 255, 0.9);
background:-moz-linear-gradient(90deg, #fff, #eee); /* Firefox */
background:-webkit-gradient(linear, left top, left bottom, from(#eee), to(#fff), color-stop(0.2, #fff)); /* Webkit */
border:1px solid #aaa;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
-moz-box-shadow:0 0 3px #aaa;
-webkit-box-shadow:0 0 3px #aaa;
box-shadow:0 0 3px #aaa;
padding:5px;
}
input[type=text]:focus, textarea:focus,
input[type=password]:focus{
border-color:#093c75;
box-shadow:0 0 3px #0459b7;
-moz-box-shadow:0 0 3px #0459b7;
-webkit-box-shadow:0 0 3px #0459b7;
outline:none; /* Pour enlever le contour jaune lorsque l'on sélectionne un input dans Chrome */
}
select{
cursor:pointer;
padding:3px;
box-shadow:0 0 3px #0459b7;
-moz-box-shadow:0 0 3px #aaa;
-webkit-box-shadow:0 0 3px #aaa;
}
select:active,
select:focus{
border:1px solid #093c75;
box-shadow:0 0 3px #0459b7;
-moz-box-shadow:0 0 3px #0459b7;
-webkit-box-shadow:0 0 3px #0459b7;
outline:none;
}
input[type=submit],
a.submit{
background:#ddd;
background:-moz-linear-gradient(90deg, #0459b7, #08adff); /* Firefox */
background:-webkit-gradient(linear, left top, left bottom, from(#08adff), to(#0459b7)); /* Webkit */
border:1px solid #093c75;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
box-shadow:0 1px 0 #fff;
-moz-box-shadow:0 1px 0 #fff;
-webkit-box-shadow:0 1px 0 #fff;
color:#fff;
cursor:pointer;
font-weight:bold;
margin-left:225px;
padding:5px 10px;
text-decoration:none;
text-shadow:0 1px 1px #333;
text-transform:uppercase;
}
input[type=submit]:hover,
a.submit:hover{
background:#eee;
background:-moz-linear-gradient(90deg, #067cd3, #0bcdff);
background:-webkit-gradient(linear, left top, left bottom, from(#0bcdff), to(#067cd3));
border-color:#093c75;
text-decoration:none;
}
input[type=submit]:active,
input[type=submit]:focus,
a.submit:active,
a.submit:focus{
background:#ccc;
background:-moz-linear-gradient(90deg, #0bcdff, #067cd3);
background:-webkit-gradient(linear, left top, left bottom, from(#067cd3), to(#0bcdff));
border-color:#093c75;
outline:none;
}
Etape 8 : Admirez...
Votre module de commentaire AJAX / PHP devrait être operationel ! Vous avez une démo tous en bas de la page ;-).
Oui, le compte du nombre de commentaires peut être un + intéressant. J'imagine qu'il doit être assez facile de changer la disposition des commentaires pour faire qu'ils apparaissent plutôt en dessous de ces champs de saisie qu'au dessus (un peu à la facebook quoi).
Bon concernant facebook j'ai rien dit. :) Ceci dit, le nombre de commentaires serait bien aussi et aussi pouvoir donner la possibilité de cacher un commentaire (petite croix accessible pour un admin par exemple)
Merci pour ce code ..
Mais toutefois, c'est moi ou il manque la structure de la table ?
@camyo : Oui tu as tout à fait raison, c'est un oubli de ma part.. Je viens d'ajouter la structure au début du tutoriel. Merci de me l'avoir fait remarqué.
Bonjour,
Super système ! Seul soucis, lorsque je valide en cliquant sur "Envoyer", le script reste bloqué sur "Chargement en cours" et il ne se passe rien ...
Une idée ?
@Yo
Hello,
Oui c'est surement un problème de lien. Genre un fichier qui pointe pas au bon endroit.. Essai de checker tes liens.
bravo pour cet article , clair et simple !
j'aime bien le script ;)
Bonjour !
chez moi le module ne fonctionne pas, quelqu'un pourrait-il m'expliquer l'arborescence car je pense que mon problème vient de là (en particulier avec le scipt.js dont je ne sais pas quoi faire)
Oui, que doit on faire du "script.js" svp ?
Hello, il doit être placé au même endroit que les fichiers suivants : submit.php, connect.php, comment.php,
comment.class.php
@++
Bonjour,
Merci pour ce script ..
Je viens de l'intégrer sur mon site.
Les commentaires des articles s'ouvrent dans une colorbox,
j'ai rajouter juste un petit bout de code pour le nombre de commentaire sur l'article et l'ouverture dans colorbox
je met ce code ( très simple) au cas ou ça intéresserait certains.
<?php
function commentaire($id){
$sql_nb = "SELECT id FROM tb_comments WHERE page_id = '$id'";
$req = mysql_query($sql_nb) or die('Erreur SQL !<br>'.$sql_nb.'<br>'.mysql_error());
$nb_resul = mysql_num_rows($req);
if ($nb_resul == 0 )
{
echo "<img src='images/icon_commentaire.png' /> Pas de commentaire, <a class='comm' href='commm/comment.php?id=$id'>Ajouter le votre </a>";
}else{
echo "<img src='images/icon_commentaire.png' /> " .$nb_resul. "commentaire(s), <a class='comm' href='commm/comment.php?id=$id'>Ajouter le votre </a>";
}
} ?>
@camyo : Merci pour ta contribution camyo, ton code est simple et pratique.
Salut Orion,
merci pour tes scripts !
Cela dit j'ai une question : à part "connect.php" n'y a t'il pas autre chose à modifier dans l'archive ? Ou une donnée à faire passer dans l'url ?
Mm éventuellement le fichier submit.php
mail('email@email.com','Nouveau commentaire',$msg);
remplace juste email@email.com par ton adresse. C'est la notification qui te sera envoyé dès que quelqu'un post un commentaire =D
ca match pas chez moi ( Unable to establish a DB connection ) voila j esayyer de l'uploader sur mon ftp http://www.bladilol.com/comment/comm/connect.php
@wassime : Salut, apparement un problème de connexion, vérifie les paramètres que t'as entré dans le fichier "connect.php" et check aussi si t'as base de données ainsi que la table existe et coresspondent bien.
Merci de ta réponse, malheureusement le module ne fonctionne pas chez moi : la connexion à la BDD se fait, mais quand j'envoie le formulaire rien ne se passe, aucun traitement, pourtant tous mes fichiers sont dans le dossiers "comm" de l'archive où j'ai rajouté "comment.php" et je n'ai rien modifié (à part "connect.php")
Aurais-tu une idée ?
@larso : Ya des chances pour que le fichier script.js soit mal placé. Vérifie à l'aide de Firebug (onglet réseau) si tous les fichiers et scripts se chargent commme il faut. @++
Bonjour,
Très intéressé par ce module de commentaires, je me suis lancé à la tache... mais je ne sais pas pourquoi : rien ne s'affiche.
J'ai créé mon site web avec un logiciel WYSIWYG, mes connaissance en programmation étant donc limité. Cependant, j'ai tout fait dans les règles de l'art, ma table est bien créée, les infos du fichiers connect.php semblent ok. Je n'ai aucun message d'erreur.
Et pourtant, lorsque je tente de lancer le fichier connect.php (hébergé bien sur, pas en local), et bien rien ne se passe. Ecran blanc.
Je suis chez Mavenhosting, et apparemment le serveur gère l'Ajax selon eux.
Une solution pour un humble serviteur s'étant fait chi** pour écrire un pavé long comme le Danube? ;-)
Merci.
Encore moi... bizarrement, après 15 minutes de tests, et sans avoir changé quoi que ce soit, quelquechose s'affiche maintenant!
J'ai les entrées Nom, Mail, Commentaire, Site (facultatif), mais lorsque je clique sur envoyer, rien ne se passe.
Qui plus est, la feuille css ne semble pas être prise en compte. J'ai uniquement du texte.
Une solution?
En fait j'ai qqc quand je clique sur comments.php, rien quand je clique sur connect.php :-(
SUPER le tuto ! merci
Mes questions :
Serait-ce possible d'intégrer un captcha sur ce script?
Ensuite, disons que je veux intégrer ce script sur des photos, l'adresse de ma page est :
http://monsite.com/showmedia.php?&mediaID=1552
J'ai changé page_id par mediaID mais ça ne fonctionne pas. Je parviens à faire apparaitre la boite pour les commentaires mais il ne se passe rien si j'y inscrit quelque chose. Par contre, si je fais apparaitre juste le script, seul, sur une page, le commentaire s'enregistre bien dans la base de données et apparaît ensuite.
La base de données a été créée, j'ai aussi changé page_id par mediaID en la créant.
Suis-je complètement dans le champs ou il y a une possibilité, sans trop jouer dans le code de la page existante?
Merci
SUPER le tuto ! merci
@genhcn : à mon avis c'est tout à fait possible, mais pour l'instant ça n'est pas dans mes projets, peut-être que cette amélioration sera apportée dans une future version du script. Sinon pour ta deuxième question, il faut juste que tu fasses bien attention à bien remplacer page_id par mediaID partout, à savoir dans comment.php, dans la base de données mais aussi dans submit.php. Si tu le remplace bien partout il y a aucune raison que ça ne fonctionne pas ^^
@kamal : Merci ;-)
Bonjour Orion,
Merci beaucoup pour le script et félicitations pour le boulot !
Je suis en train d'essayer de l'appliquer mais il me semble avoir le même problème que genhcn plus haut :
Le formulaire s'affiche, la connexion est ok, mais la fonction javascript ne semble pas s'effectuer au submit.
Donc :
Le bouton ne change pas "envoyer" en "Chargement en cours..",
et pas d'enregistrement dans la base (et donc pas de commentaire affiché)
Je suis un peu novice en javascript.
J'appelle le script dans le header (<script src="comm/script.js") et firebug le trouve...
Help ! :)
Je dois pas être loin et j'aimerais bien utiliser ce script..
Voici l'adresse de la page sur laquelle je travaille :
http://www.olsedf.com/site2/graffiti/090523_just-papeterie-darblay-04/01
celle là ou n'importe quelle image de la galerie...
Merci
@Ced : Salut, essaie de mettre ça comme lien dans ton header : http://www.olsedf.com/site2/comm/script.js plutôt que juste comm/script.js
Bonjour, voila mon probleme.
J'ai pas compris grand chose. j'aurais voulu savoir comment afficher le commentaire.
Il faut ouvrir le .js je suis perdu.
merci
Salut, merci bcp pour ce système de commentaire.
je suis novice et je viens de testé plusieurs module de commentaire (qui sont daté...) et aucun ne fontionne!
je viens d'installé celui la, et j'ai fait appel a "script.js" dans header de cette façon:
<script type="text/javascript" src="comm/script.js"></script>
je sais pas si c'est comme ça qu'il faut faire :/ ???
Ensuite j'aimerai savoir alors comment ajouté un commentaire sur une page ???
Belle réalisation et adaptation du script original avec des ajouts au niveau du code
moi sa ne marche pas rien ne rentre dans la db pourtant ma page connect est bonne lookez http://heberg-land.fr.mu/kevadams/comment_system/
Bonjour,
Mon problème est le même que d'autres.
Tout est bien créé, mais quand je poste un commentaire rien ne se passe !
Aidez-moi s'il vous plait, c'est assez urgent :)
Bonjour , pas moyen de trouver l'erreur , il me signal tjrs :
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in comment.class.php on line 5
-------
ça vient de MySQL ?
+
dans $db_database = ' '
il faut mettre quoi ?
=
Merci
Bonjour, heureusement qu'il y a le lien du tuto original, certe en anglais, car vous avez fait des oublis et des codes mal placés dans des fichiers.
fsdfsd
Hello,
super script mais bon impossible de le faire marcher...cela fait plusieurs jours que je m'y colle mais sans résultats.
quand je poste mon commentaire, le code javascript fonctionne, mon commentaire apparaît avec un bel effet sur ma page mais étonnement aucun enregistrement dans ma BDD :/ (évidemment lorsque je rafraîchi ma page tous mes commentaires disparaisse)J'ai beau vérifier ma requête pour l'enregistrement mais je ne trouve pas l'erreur...quelqu'un aurait une idée (j'ai évidemment lu le tuto original...) merci
Trés bon tuto
merci
Sympa !







il manque seulement s'il compte le nombre de commantaires !