8791 sujets

Développement web côté serveur, CMS

Bonjour,

je fais appel à vous pour un petit souci sur mon nouveau site. J'ai eu l'idée de mettre en place un système de notation et de commentaires par le javascript et le PHP. Ne connaissant rien à ces langages, j'ai trouvé des codes sur le net que j'ai jugé assez fiable pour être utilisé, bien que plusieurs auraient été possible

Seulement voilà, si ces codes marchent bien sur une page, il n'en est pas de même sur l'ensemble des pages du site qui nécessitent ces codes. Je m'explique : sur une seule page, le code pour la notation et les commentaires marchent sans problème, mais une fois le vote ou le commentaire d'entré, ce dernier se reporte sur toutes les autres pages où ces codes ont été placés ! En un mot, écrire un commentaire ou mettre une note sur une page revient à l'écrire sur TOUTES les pages où se trouvent le code !

Alors comment faire pour que les codes agissent page par page différemment selon ce que l'on veut y mettre, et non pas qu'ils se reportent sur l'ensemble ? Que faut-il renommer s'il le faut sur les codes donnés ci dessous ?
Merci.

Voilà les codes java pour la notation et PHP pour les commentaires d'utilisés :

NOTATION :

<!-- Star Rating Start Code --> <center><script type="text/javascript" src="http://www.mypagerank.net/services/starrating/rating.php?rid=131712416230489d454750f7eb70c60187a9cf0677455252440c66f170f44b240e3bc087f90ee5c94837a257&rima=7"></script><!-- Star Rating End Code -->



HTML COMMENTAIRES :

<div id="commentaires"><!--  début du bloc commentaires, version 1.0  (06 novembre 2009)-->
<script language="JavaScript" type="text/javascript">
    var sujet='pour_test'; // les dix premiers caractères serviront d'identification de la liste des commentaires
    var adressebase='';  // base d'adressage pour le fichier PHP de gestion des commentaires
</script>
<div id="laisseruncommentaire">
    <form name="commentaire_bouton" id="commentaire_form_A" action="" method="" onsubmit="return false;" style="display: Block">
        <input type="button" value="laisser un commentaire" onclick="Affiche_form_B()">
    </form>
    <form name="commentaire_saisie" id="commentaire_form_B" action="" method="" onsubmit="return false;" style="display: None">
		<fieldset>
        <legend>Vous pouvez saisir un commentaire ...</legend>
			Votre nom (<i><small>ou pseudo</small></i>):<br><input name="nom" type="text" size="20"><br>
			Saisissez le commentaire que vous voulez ajouter:<BR>
			<textarea name="commentaire" cols="60" rows="4" wrap="soft"></textarea>
			<input name="annuler" type="button" value="Annuler" onclick="Annuler()"><br>
			<input name="envoyermodifier" type="button" value="Envoyer" onclick="Envoyer_modifier()">&nbsp;&nbsp;
			<input name="terminer" type="button" value="Terminer" onclick="Terminer()" style="display: None">
        </fieldset>
    </form>
    <div id="liste_des_messages">&nbsp;</div>
</div>


PHP COMMENTAIRES :
<?php
/* Fichier PHP: "gestioncommentaires.php"
+------------------------------------------------------------------------------+
| Extension pour une fonction "ajout de commentaires"                          |
| Tedheu 2009, version 1.0 (fr),        mise à jour le 09 novembre 2009        |
| Module script PHP de gestion des commentaires                                |
| fonctionne de paire avec le module JavaScript "commentaires.js"              |
+------------------------------------------------------------------------------+
*/
/*========= Paramètres de personnalisation ===================================*/
// Chaque message a un parametre de validation (index 'v' du tableau $Message)
// avec une valeur de 0 le message est stocké mais ne sera pas affiché
// avec une valeur de 1 le message est stocké et sera affiché
// avec une valeur de -1 le message sera retiré du fichier de stockage
$validmesdef= 1;  // validation par défaut des messages
//
/*========= Variables (initialisation) =======================================*/
$jeton= NULL;       // normalement communiqué par variables GET
$sujet= NULL;       // normalement communiqué par variables GET
$action= NULL;      // normalement communiqué par variables GET
//---
$entetedef= '|=== Fichier de commentaires, T² 09 novembre 2009 - version 1.0 ===|'."\n";
$nouveau= false;     // message pas nouveau par défaut
$imesnou= -1;        // indice nouveau message mis à -1
//--- messages => tableau de tableaux
// le visteur envoi un commentaire avec d'autres informations l'ensemble forme un message
$Message= array();
$Message['*']= array(); // * > jeton
$Message['s']= array(); // s > sujet
$Message['v']= array(); // v > validation, -1, 0 ou 1 , 0 > non validé, -1 > rejeté
$Message['i']= array(); // i > numéro IP
$Message['d']= array(); // d > date du jour
$Message['h']= array(); // h > heure
$Message['n']= array(); // n > nom
$Message['c']= array(); // c > commentaire
$Message['r']= array(); // r > réservé pour usage futur
//--- deux actions possibles: lecture, écriture
$Actionliste= array('lecture','ecriture');
//--- données pour traitement de sécurisation
$tagspermis= '<b><i><u><a><br><small><img>';
$Evenements= array('onAbort','onBlur','onChange','onClick','onDbclick','onDragdrop','onError','onFocus','onKeydown','onKeypress','onKeyup','onLoad','onMouseOver','onMouseOut','onReset','onResize','onSelect','onSubmit','onUnload');
foreach ($Evenements as $evenement){$Clefs[]= '/'.$evenement.'/i';}
$Car_nr= array("\n\r","\r\n","\n","\r");
$Carspe= array('&','ç','¨','£','µ','§','²','³','¤','¿','±');
array_push($Carspe,'à','â','ä','ã','é','è','ê','ë','î','ï','ô','ö','õ','ù','û','ü');
array_push($Carspe,'Â','Ä','Ã','Ê','Ë','Î','Ï','Ô','Ö','Õ','Û','Ü');
array_push($Carspe,'ñ','Ñ');
foreach ($Carspe as $car){$Carchgs[]= htmlentities($car);}
array_push($Carspe,'%','^');
array_push($Carchgs,'&#37;','&#94;');
//-----------------------------------------------------------------------------/
/*========= Récupération d'informations ======================================*/
//--- informations générales
$ipc=$_SERVER['REMOTE_ADDR']; // numéro IP du visiteur
$jour= date('d.m.Y');
$heure= date('H:i');
//--- variables passées par méthode GET
(!empty($_GET['sujet']))? $sujet=$_GET['sujet']: $sujet='aucun';
(!empty($_GET['action']))? $action=$_GET['action']: $action='rien';
(!empty($_GET['jeton']))? $jeton= $_GET['jeton']: $jeton= '0';
//--- traitements des informations GET entrantes
$sujet= substr(strip_tags($sujet),0,30);
$sujet_r= substr(strip_tags($sujet),0,10);
if (!in_array($action,$Actionliste)) $action='rien';
$jeton= preg_replace('/[^0-9]/','',$jeton); // que des chiffres
$jeton= substr($jeton,0,10);
//-----------------------------------------------------------------------------/
/*========= Validation de la requête =========================================*/
$valide= true;
if ($sujet=='aucun') $valide= false;
if ($action=='rien') $valide= false;
if ($jeton=='0') $valide= false;
if (!$valide) {
    // arret du script par sécurité si requête non valide
    exit;
}  
/*========= Créations de fichiers si inexistants =============================*/
$nomfichier_verrou= 'verrou_'.$sujet_r.'.txt';
$nomfichier_messag= 'messages_'.$sujet_r.'.txt';
if (!file_exists($nomfichier_verrou)) touch($nomfichier_verrou);
if (!file_exists($nomfichier_messag)){
    $pf0=fopen($nomfichier_messag,'w');
    fwrite($pf0,$entetedef);
    fclose($pf0);
}
//-----------------------------------------------------------------------------/
//
/*========= Mode écriture ($action= 'ecriture') ==============================*/
if ($action=='ecriture'){
    $nouveau= true; // on suppose un nouveau message
    //
    //=== variables passées par méthode POST ----------------------------------/
    (!empty($_POST['nom']))? $nom= $_POST['nom']: $nom= 'inconnu';
    (!empty($_POST['message']))? $commentaire= $_POST['message']: $commentaire= '';
    //--- traitements des informations POST entrantes
    $nom= strip_tags($nom);
    $nom= str_replace($Car_nr,'',$nom);
    $nom= htmlentities(substr($nom,0,20));
    $commentaire= strip_tags($commentaire,$tagspermis);
    $commentaire= preg_replace($Clefs,'none',$commentaire);
    $commentaire= str_replace($Carspe,$Carchgs,$commentaire);
    $commentaire= str_replace($Car_nr,'<br>',$commentaire);
    $commentaire= preg_replace('/\\\/','',$commentaire);  // plus d'anti-slash
    //-------------------------------------------------------------------------/
    //=== accès au fichier des messages en lecture/écriture -------------------/
    //--- mise en place du verrou -------------------------
    $deb= time(); $tempo= 2; $erreur= '';
    do{
        $verrou= file($nomfichier_verrou);
        if (count($verrou)==0) break;
    }while((time()-$deb)<=$tempo);
    if (count($verrou)!=0){ // (le verrou est resté bloqué)
        $erreur.= '-- blocage-verrou --';
        if ((time()-trim($verrou[0]))>=10){
            $erreur.= ' -- deblocage-force --';
            $pfv=fopen($nomfichier_verrou,'w');
            fwrite($pfv,'');
            fclose($pfv);
        }
    }
    else{  // (si pas d'erreur fermeture du verrou)
        $pfv=fopen($nomfichier_verrou,'w');
        fwrite($pfv,time());
        fclose($pfv);
    }
    if ($erreur!='') die('ERREUR: '.$erreur);
    //-----------------------------------------------------
    //--- lecture du fichier de messages ligne par ligne
    $pf1= fopen($nomfichier_messag,'r');
    $n=-1;
    while (!feof($pf1)) $ligne[++$n]=fgets($pf1,1024);
    fclose($pf1);
    $nlgn= $n;
    //-------------------------------------------------------------------------/
    //=== analyse du contenu et traitement ------------------------------------/
    $entete=$ligne[0]; // la première ligne est une entête
    $imesnou= 0; // indice nouveau message = 0
    if ($nouveau){
        $Message['*'][0]= $jeton;
        $Message['s'][0]= $sujet;
        $Message['v'][0]= $validmesdef;
        $Message['i'][0]= $ipc;
        $Message['d'][0]= $jour;
        $Message['h'][0]= $heure;
        $Message['n'][0]= $nom;
        $Message['c'][0]= $commentaire;
        $Message['r'][0]= 'RFU';
    }
    //--- traitement ligne par ligne
    $imes= 1;
    $jeton_tst= false; $ipc_tst= false; $heure_tst= false;
    for ($ilgn=1; $ilgn<=$nlgn; $ilgn++){
        $clef= substr($ligne[$ilgn],0,3);
        $contenu= str_replace($Car_nr,'',substr($ligne[$ilgn],3));
        switch($clef){
            case '\\*\\': // jeton
                $Message['*'][$imes]= $contenu;
                ($jeton==$contenu)? $jeton_tst= true: $jeton_tst= false; break;
            case '\\s\\':
                $Message['s'][$imes]= $contenu;
            case '\\v\\':
                $Message['v'][$imes]= $contenu;
            case '\\i\\':
                $Message['i'][$imes]= $contenu;
                ($ipc==$contenu)? $ipc_tst= true: $ipc_tst= false; break;
            case '\\d\\':
                $Message['d'][$imes]= $contenu;
                ($jour==$contenu)? $d_tst= true: $d_tst= false; break;
            case '\\h\\':
                $Message['h'][$imes]= $contenu;
                $mindif= substr($heure,3,4) - substr($contenu,3,4);
                ($mindif<=5)? $heure_tst= true: $heure_tst= false;
                $heudif= substr($heure,0,2) - substr($contenu,0,2);
                if ($heudif!=0) $heure_tst= false;
                break;
            case '\\n\\':
                $Message['n'][$imes]= $contenu; break;
            case '\\c\\':
                $Message['c'][$imes]= $contenu; break;
            case '\\r\\':
                $Message['r'][$imes]= $contenu; break;
            case '\\-\\':
                // fin de message
                if ($nouveau AND $jeton_tst AND $ipc_tst AND $heure_tst){
                    // le même que le nouveau
                    $imesnou= $imes; // indice nouveau message
                    $Message['h'][$imes]= $heure;
                    $Message['n'][$imes]= $nom;
                    $Message['c'][$imes]= $commentaire;
                }
                $imes++; // au suivant
                $jeton_tst= false; $ipc_tst= false; $heure_tst= false;
                break;
        }
    }
    $nmes= $imes-1;
    //--- réduction des messages si le champ $commentaire est vide
    if ($commentaire==''){
        $Message['v'][$imesnou]= -1;
        $nouveau= 0;
    } 
    //-------------------------------------------------------------------------/
    //=== reecriture du fichier de messages -----------------------------------/
    $pf2=fopen($nomfichier_messag,'w');
    fwrite($pf2,$entete);
    ($nouveau AND ($imesnou==0))? $imesdeb=0: $imesdeb=1;
    for ($imes=$imesdeb; $imes<=$nmes; $imes++){
        if ($Message['v'][$imes]== -1) continue; // '-1'> le message est effacé
        fwrite($pf2,'\\*\\'.$Message['*'][$imes]."\n");
        fwrite($pf2,'\\s\\'.$Message['s'][$imes]."\n");
        fwrite($pf2,'\\v\\'.$Message['v'][$imes]."\n");
        fwrite($pf2,'\\i\\'.$Message['i'][$imes]."\n");
        fwrite($pf2,'\\d\\'.$Message['d'][$imes]."\n");
        fwrite($pf2,'\\h\\'.$Message['h'][$imes]."\n");
        fwrite($pf2,'\\n\\'.$Message['n'][$imes]."\n");
        fwrite($pf2,'\\c\\'.$Message['c'][$imes]."\n");
        fwrite($pf2,'\\r\\'.$Message['r'][$imes]."\n");
        fwrite($pf2,'\\-\\----------'."\n");
    }
    fclose($pf2);
    //-------------------------------------------------------------------------/
    //=== libération du verrou ------------------------------------------------/
    $pfv=fopen($nomfichier_verrou,'w');
    fwrite($pfv,'');
    fclose($pfv);
    //-------------------------------------------------------------------------/
}// $action== 'ecriture'
//
/*========= Mode lecture ($action= 'lecture') ================================*/
if ($action=='lecture'){
    $nouveau= false; // pas de nouveau message
    //--- lecture du fichier de messages lignes par lignes
    $pf1= fopen($nomfichier_messag,'r');
    $n=-1;
    while (!feof($pf1)) $ligne[++$n]=fgets($pf1,1024);
    fclose($pf1);
    $nlgn= $n;
    //-------------------------------------------------------------------------/
    //=== analyse du contenu et traitement ------------------------------------/
    $entete=$ligne[0]; // la première ligne est une entête
    //--- traitement ligne par ligne
    $imes= 1;
    for ($ilgn=1; $ilgn<=$nlgn; $ilgn++){
        $clef= substr($ligne[$ilgn],0,3);
        $contenu= substr($ligne[$ilgn],3);
        $contenu= str_replace($Car_nr,'',$contenu);
        switch($clef){
            case '\\v\\':
                $Message['v'][$imes]= $contenu; break;
            case '\\d\\':
                $Message['d'][$imes]= $contenu; break;
            case '\\h\\':
                $Message['h'][$imes]= $contenu; break;
            case '\\n\\':
                $Message['n'][$imes]= $contenu; break;
            case '\\c\\':
                $Message['c'][$imes]= $contenu; break;
            case '\\-\\': // fin de message
                $imes++;  // au suivant
                break;
        }
    }
    $nmes= $imes-1;
}// $action== 'lecture'
//-----------------------------------------------------------------------------//

/*========= Affichage ========================================================*/
if ($nouveau){
$imes= $imesnou;
    echo('<hr><fieldset>');
    echo('<legend>Votre nouveau message est enregistr&eacute; : <i>( vous pouvez encore le modifier )</i></legend>');
    echo('&nbsp;Nom: '.$Message['n'][$imes].'<br>');
    echo($Message['c'][$imes]);
    echo('</fieldset>');
}
//
echo('<hr>');
for ($imes=1; $imes<=$nmes; $imes++){
    if ($Message['v'][$imes]== 0) continue; // '0'> le message n'est pas affiché
    if ($imes != $imesnou){
        echo('<b>Nom&nbsp;:</b>&nbsp;'.$Message['n'][$imes].'&nbsp;&nbsp;');
        echo('<b>Date&nbsp:</b>&nbsp;'.$Message['d'][$imes].'&nbsp;'.$Message['h'][$imes].'<br>');
        echo($Message['c'][$imes].'<br>');
        echo('<hr>'."\n");
    }
}
//-----------------------------------------------------------------------------/
?>
A quel moment tu appelles ton formulaire? parce que là le action est vide donc il n'appelle pas ton fichier php.


<form name="commentaire_bouton" id="commentaire_form_A" action="[#red]?[/#]" method="" onsubmit="return false;" style="display: Block"> 


donc mettre :

<form name="commentaire_bouton" id="commentaire_form_A" action="[#red]gestioncommentaires.php[/#]" method="[#blue]GET[/#]" onsubmit="return false;" style="display: Block">


Il faut que tu précises aussi la méthode enmployée pour le formulaire.
Modifié par jmlapam (07 Oct 2011 - 23:14)
Bonjour jmlapam. merci pour ta réponse.

J'ai remplacé ce que tu m'as précisé mais ca ne change rien, mon commentaire s'affiche toujours sur toutes les pages.
Je crois que pour l'appel du formulaire, il y a une histoire autour d'un autre emplacement qui est précisé sur le lien ci dessous où j'avais trouvé le code...
Regarde si tu trouves quelque chose car j'arrive pas à voir ce qui pourrait être mal construit pour se reporter comme ca sur toutes mes pages...!
Merci bien, c'est très important pour moi, comme pour toute personne qui en a besoin je pense...

Que veux tu dire par "préciser la méthode employée pour le formulaire ?"

http://www.tedheu.net/

J'ai oublié aussi le code java nécessaire pour ces commentaires :

/* Fichier JavaScript: "commentaires.js"
+------------------------------------------------------------------------------+
| Extension pour une fonction "ajout de commentaires"                          |
| Tedheu 2009, version 1.0 (fr),        mise à jour le 09 novembre 2009        |
| Module script JavaScript externe                                             |
| fonctionne de paire avec le module PHP "gestioncommentaires.php"             |
+------------------------------------------------------------------------------+
*/
//------------------ variables
if (typeof sujet == "undefined") sujet='aucun';
// Adresse du module PHP de traitement et du fichiers des messages
if (typeof adressebase == "undefined") adressebase='';
//
//------------------ tirage d'un nombre aléatoire 'jeton'
var jeton= Math.floor(Math.random()*2521008887);
//
//------------------ objets pour gérer l'affichage du formulaire
var Obj_listemes= getObj('liste_des_messages');
var Obj_formulaireA= getObj('commentaire_form_A');
var Obj_formulaireB= getObj('commentaire_form_B');
//
//------------------ création d'un objet XHR_commentaires (interface 'AJAX')
var XHR_commentaires;  
if (window.XMLHttpRequest){
    XHR_commentaires= new XMLHttpRequest(); // Firefox
}else if (window.ActiveXObject){    
    XHR_commentaires= new ActiveXObject('Microsoft.XMLHTTP'); // Internet Explorer
}else{
    // ce type d'objet n'est pas supporté par le navigateur
    alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest ...');
}
//------------------ actions immédiates
Gestioncommentaires(sujet,0);
//
/*========= fonctions JavaScript =============================================*/
//--- gestion de la saisie de commentaire
function Gestioncommentaires(sujet,action){
    switch (action){
        case 0:
            ressource = adressebase+'gestioncommentaires.php?sujet='+sujet+'&action=lecture&jeton='+jeton;
            XHR_commentaires.open('GET',ressource,true);
            datapost= null;
            break;
        case 1:
            ressource = adressebase+'gestioncommentaires.php?sujet='+sujet+'&action=ecriture&jeton='+jeton;
            XHR_commentaires.open('POST',ressource,true);
            var champ_nom = Obj_formulaireB.nom.value;
            var champ_com = Obj_formulaireB.commentaire.value;
            datapost = '&nom='+escape(champ_nom);
            datapost += '&message='+escape(champ_com);
            datapost= datapost.replace(/\+/g,'%2B');
            XHR_commentaires.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            XHR_commentaires.setRequestHeader("Content-length", datapost.length);
            XHR_commentaires.setRequestHeader("Connection", "close");
            break;
    }
    XHR_commentaires.onreadystatechange = function(){ // attribution de la fonction
        if (XHR_commentaires.readyState == 4){
            Obj_listemes.innerHTML = XHR_commentaires.responseText;
        }else{
            Obj_listemes.innerHTML = 'chargement en cours ...';
        }
    }
    XHR_commentaires.send(datapost);
}
//---
function Affiche_form_B(){
    Obj_formulaireA.style.display= 'None';
    Obj_formulaireB.style.display= 'Block';
    Obj_formulaireB.nom.focus()
}
//---
function Envoyer_modifier(){
    incomplet= '0';
    champ_nom= Obj_formulaireB.nom.value;
    champ_com= Obj_formulaireB.commentaire.value;
    if (champ_nom=='') Obj_formulaireB.nom.focus();
    if ((champ_com=='') && (champ_nom!='')) Obj_formulaireB.commentaire.focus();
    if ((champ_com=='') || (champ_nom=='')) incomplet= '1';
    if (incomplet!='1') {
        Obj_formulaireB.envoyermodifier.value= 'Modifier';
        Obj_formulaireB.terminer.style.display= 'Inline';
        Gestioncommentaires(sujet,1);
    }else{
        Gestioncommentaires(sujet,0);
    }
}
//---
function Annuler(){
    Obj_formulaireB.nom.value= '';
    Obj_formulaireB.commentaire.value= '';
    Gestioncommentaires(sujet,1);
    Terminer();
}
//---
function Terminer(){
    Obj_formulaireB.style.display= 'None';
    Obj_formulaireA.style.display= 'Block';
    location.reload();
}
//---
function getObj(Id){
    var Obj;
    if (document.getElementById){
        Obj = document.getElementById(Id);
    }else{
        // sinon, tant pis !
        alert('Votre navigateur ne supporte pas la sélection d\'objet à partir de son ID ...');
    }
    return Obj;
}
/*========= fin du script ====================================================*/

Modifié par nicky14 (08 Oct 2011 - 11:53)
J'ai oublié aussi de préciser que ces commentaires s'affichent sur Firefox, mais il ne se passe rien sur Explorer 8...
Modifié par nicky14 (08 Oct 2011 - 13:06)
nicky14 a écrit :


J'ai remplacé ce que tu m'as précisé mais ca ne change rien, mon commentaire s'affiche toujours sur toutes les pages [...] il y a une histoire autour d'un autre emplacement




As-tu vérifié le chemin d'accès, c'est-à-dire est-ce que le fichier php est dans le même dossier que ton fichier HTML?


nicky14 a écrit :


méthode?



Il s'agit de la méthode d'appel du formulaire, ici c'est "GET"

Je regarde ton lien


EDIT: oui alors, déjà méfie-toi des scripts clé en main, celui-ci date d'il y a déjà 2 ans. Smiley decu


>>>
a écrit :
Then, insert the HTML snippet (modified in advance) into the source code of your page, upload the ".js" file in the same folder of you page and upload the ".php" file too in this same folder (then keep the value of the parameter "adressebase" at '' ) or in another location ( update the 'adressebase' accordingly ).
That's' all.



Mets tous tes fichiers dans le même dossier ou plus simplement à la racine de ton serveur et vois si cela fonctionnne. Smiley cligne
Modifié par jmlapam (08 Oct 2011 - 16:34)
Merci encore de prendre le temps de m'aider alors que je t'embête... Smiley confused

Pour en revenir à mon problème, oui, dès le début, j'avais fait attention à ca, tous les fichiers sont bien dans le même dossier. De toute façon, le script marche très bien en tant que tel, sauf qu'il déraille sur ce que tu sais...et moi, ca me va pas du tout de ce fait !

Je dois avoir plus de 50 pages avec ce code pour des commentaires, et sur toutes, j'ai corrigé le code comme tu me l'avais dit. Je te le remets ci dessous pour que tu aies un aperçu plus frais.

Je me demandais aussi s'il ne fallait rien changer aussi sur la ligne :
<form name="commentaire_saisie" id="commentaire_form_B" action="" method="" onsubmit="return false;" style="display: None">
?
Mias je l'ai fait, comme pour la ligne précédente, mais rien n'a changé encore une fois alors je suppose que ca ne vient pas de là non plus...
Ou alors il faut entrer quelque chose dans var adressebase=''; mais apparemment, ici, comme le dis le gars, il ne faut y changer que si on a nos fichiers dans un autre dossier, ce qui n'est pas mon cas...
J'ai vraiment du mal...

<div id="commentaires"><!--  début du bloc commentaires, version 1.0  (06 novembre 2009)-->
<script language="JavaScript" type="text/javascript">
    var sujet='pour_test'; // les dix premiers caractères serviront d'identification de la liste des commentaires
    var adressebase='';  // base d'adressage pour le fichier PHP de gestion des commentaires
</script>
<div id="laisseruncommentaire">
    <form name="commentaire_bouton" id="commentaire_form_A" action="gestioncommentaires.php" method="GET" onsubmit="return false;" style="display: Block">
        <input type="button" value="laisser un commentaire" onclick="Affiche_form_B()">
    </form>
    <form name="commentaire_saisie" id="commentaire_form_B" action="" method="" onsubmit="return false;" style="display: None">
		<fieldset>
        <legend>Vous pouvez saisir un commentaire ...</legend>
			Votre nom (<i><small>ou pseudo</small></i>):<br><input name="nom" type="text" size="20"><br>
			Saisissez le commentaire que vous voulez ajouter:<BR>
			<textarea name="commentaire" cols="60" rows="4" wrap="soft"></textarea>
			<input name="annuler" type="button" value="Annuler" onclick="Annuler()"><br>
			<input name="envoyermodifier" type="button" value="Envoyer" onclick="Envoyer_modifier()">&nbsp;&nbsp;
			<input name="terminer" type="button" value="Terminer" onclick="Terminer()" style="display: None">
        </fieldset>
    </form>
    <div id="liste_des_messages">&nbsp;</div>
</div>
<script language="JavaScript" type="text/javascript" src="commentaires.js"></script>
<!-- fin du bloc commentaires --></div>
Bien alors, je ne sais pas si j'ai mal compris tes dernières réponses ou pas, mais à force de bidouiller, j'ai finalement trouvé la solution. Il m'a suffit de donner des chemins d'accès différents pour chaque page dans la ligne de code var adressebase='';.

Je ne sais pas si ca reste la meilleure solution mais en tout cas, si c'est bien ca, c'était assez simplet comme solution je trouve.

Seulement voilà, comme je le disais, le code ne fonctionne que pour Firefox. La fenêtre de commentaires apparait bien sous Explorer ou Google Chrome mais une fois qu'on entre son commentaire, il n'apparait pas !!!!
Que faire ? Que modifier dans mon code pour y rendre compatible sur tous ? Est-ce au moins possible avec le type de code que j'ai implanté ?

Merci.
Salut,

Ce qui me rend perplexe est que cela ait pu marcher sans le fichier php puisqu'auparavant tu ne l'appelait pas pour ton formulaire mais attention:

a écrit :

<form name="commentaire_saisie" id="commentaire_form_B" action="" method="" onsubmit="return false;" style="display: None">


Là aussi faut spécifier le method et le action, tu dois avoir un fichier php pour la saisie des commentaires ou si cela se trouve c'est encore le même fichier gestioncommentaires.php.

Renseigne cela dans ton fichier php.
A mon avis tu as bien ton affichage (ça c'est du HTML et du CSS) mais ton script php n'étant pas appelé, le module n'est pas fonctionnel.

La solution se trouve là à mon avis et c'est pour cela que cela ne marche plus au moment où tu entres le commentaire. Smiley cligne





PS:
a écrit :
Je ne sais pas si ca reste la meilleure solution


Clairement pas si tu as 50 pages. Smiley langue
Alors, j'ai utilisé la même méthode pour régler mon problème avec le code de notation en java et ca marche.

Par contre, pour les commentaires sous autre chose que Firefox, je galère là !! J'ai essayé ta méthode, ca ne m'affiche toujours rien de plus. Logiquement oui, il faudrait mettre quelque chose sur la ligne...

<form name="commentaire_saisie" id="commentaire_form_B" action="" method="" onsubmit="return false;" style="display: None">


...mais comme pour la ligne juste au dessus avec le commentaire_form_A, même si je n'entre rien du tout sur les deux et indique le chemin d'accès seulement dans var adressebase=''; et bien ca marche quand même pour justement ce qui te laisse perplexe.
Par contre, tiens, je te donne plus bas le code que j'ai actuellement, mais je ne sais pas si le chemin d'accès des formulaires est exactement le même à noter lettre par lettre, traits par traits, dans la case action="" que dans la case var adressebase=''; ?
Peut-être fais-je une erreur ? Que mettre ?

Le fichier gestioncommentaires.php gère bien semble t-il aussi la saisie des commentaires.

Cela dit, il y a aussi un fichier java dont j'ai donné le code plus haut qui lui est lié. Si ca se trouve, c'est lui qui crée la perturbation, car j'ai lu que le PHP, normalement, ne doit pas rencontrer de problème de compatibilité entre navigateurs, mais le java lui par contre...

Le hic, c'est que parmi tout ces codes java et PHP, j'ai bien noter des lignes suspectes, avec les noms commentaires_form_A et B et autre, mais je n'y connais rien du tout alors si il faut modifier quelque chose en leur sein même...

C'est quand même fou car seul les commentaires entrés ne s'affichent pas sous Explorer ! Dans l'état du code, le formulaire s'affiche bien lui. Il n'y a donc plus qu'un seul problème !!
Je continue à chercher, si tu as une idée...Merci.

<div id="commentaires"><!--  début du bloc commentaires, version 1.0  (06 novembre 2009)-->
<script language="JavaScript" type="text/javascript">
    var sujet='pour_test'; // les dix premiers caractères serviront d'identification de la liste des commentaires
    var adressebase='/XHTML/gestioncommentaires/bd1/';  // base d'adressage pour le fichier PHP de gestion des commentaires
</script>
<div id="laisseruncommentaire">
    <form name="commentaire_bouton" id="commentaire_form_A" action="/XHTML/gestioncommentaires/bd1/gestioncommentaires.php" method="GET" onsubmit="return false;" style="display: Block">
        <input type="button" value="laisser un commentaire" onclick="Affiche_form_B()">
    </form>
    <form name="commentaire_saisie" id="commentaire_form_B" action="" method="" onsubmit="return false;" style="display: None">
		<fieldset>
        <legend>Vous pouvez saisir un commentaire ...</legend>
			Votre nom (<i><small>ou pseudo</small></i>):<br><input name="nom" type="text" size="20"><br>
			Saisissez le commentaire que vous voulez ajouter:<BR>
			<textarea name="commentaire" cols="60" rows="4" wrap="soft"></textarea>
			<input name="annuler" type="button" value="Annuler" onclick="Annuler()"><br>
			<input name="envoyermodifier" type="button" value="Envoyer" onclick="Envoyer_modifier()">&nbsp;&nbsp;
			<input name="terminer" type="button" value="Terminer" onclick="Terminer()" style="display: None">
        </fieldset>
    </form>
    <div id="liste_des_messages">&nbsp;</div>
</div>

Modifié par nicky14 (09 Oct 2011 - 16:06)
a écrit :


D'abord vous avez seulement deux paramètres à personnaliser aux premières lignes du bout de code HTML:
Vous devez choisir un nom de sujet pour les commentaires, la valeur de la variable "sujet".
Si nécessaire, vous pouvez spécifier avec la variable "adressebase" le décalage d'adressage pour le fichier PHP si celui-ci est placé dans un autre dossier que celui de la page où vous ajoutez ce bout de code. ( La valeur peut être une partie d'une url absolue, "http://..." )

Puis, insérez le bout de code HTML (préalablement modifié) dans le code source de votre page, télécharger le fichier ".js" dans le même dossier que votre page et télécharger aussi le fichier ".php" dans ce même dossier (dans ce cas gardez la valeur du paramètre "adressebase" à '') ou dans un autre dossier ( adaptez la valeur de "adressebase" en conséquence ).
C'est tout.

Bien sûr vous pouvez modifier le bout de code HTML de façon à obtenir un style d'affichage différent, asseyez et testez ...
Et aussi, si vous désirez placé le fichier ".js" dans un dossier particulier vous devez modifier en accord la valeur de l'attribut HTML "src" de la balise "<script ..." en dernière ligne du bout de code.



Applique bêtement et vois si cela marche, sinon c'est que leurs scripts sont mauvais, je suis pas rentré dans le détail parce qu'il me semble que tu peux trouver des ressources bien meilleures et beaucoup plus récentes sur le web.


EDIT: le site s'appelle "atelier de bricolage" ça sent pas le script robuste, si tu veux mon avis, la recherche d'autres ressources serait plus efficace. Smiley langue
Modifié par jmlapam (09 Oct 2011 - 16:55)
Et bien vois-tu, j'ai tilté sur le fichier java. Je me demande s'il n'est pas mal placé. Etant donné que j'ai créé des sous dossiers d'accès pour mes pages et le fichier gestioncommentaires.php, mon fichier java lui était bien seul dans le dossier XHTML.

J'ai alors pensé à le mettre dans le dossier /XHTML/gestioncommentaires/bd1/, là où se trouve le fichier gestioncommentaires.php, mais ca ne change rien non plus.
Seulement, dans le fichier java, il y a à un endroit un chemin d'accès de demandé apparemment :

//--- gestion de la saisie de commentaire
function Gestioncommentaires(sujet,action){
    switch (action){
        case 0:
            [#red]ressource = adressebase+'gestioncommentaires.php?sujet='+sujet+'&act[/#]ion=lecture&jeton='+jeton;
            XHR_commentaires.open('GET',ressource,true);
            datapost= null;
            break;
        case 1:
            [#red]ressource = adressebase+'gestioncommentaires.php?sujet='+sujet+'&action=ecriture&jeton='+jeton;[/#]
            XHR_commentaires.open('POST',ressource,true);
            var champ_nom = Obj_formulaireB.nom.value;
            var champ_com = Obj_formulaireB.commentaire.value;
            datapost = '&nom='+escape(champ_nom);
            datapost += '&message='+escape(champ_com);
            datapost= datapost.replace(/\+/g,'%2B');
            XHR_commentaires.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            XHR_commentaires.setRequestHeader("Content-length", datapost.length);
            XHR_commentaires.setRequestHeader("Connection", "close");
            break;
    }


et je me demande si il n'y a pas un truc à faire là. J'ai testé en remplaçant le 'gestioncommentaires.php[...]' par le chemin d'accès '/XHTML/gestioncommentaires/bd1/gestioncommentaires.php[...]' mais visiblement, rien ne change non.
Cela dit, je me demande si il ne reste pas quelque chose à modifier de ce genre selon l'emplacement du fichier java ?
Ils disent qu'il faut le fichier java et PHP dans le même dossier que la page, mais dans le cas où on changerait le chemin d'accès du PHP dans un autre dossier, comme je l'ai fait, où faut-il placer le fichier java ?
De même, on a dans le formulaire HTML le lien qui lie la page au fichier PHP, mais qu'en est-il du java ?? Je vais regarder à nouveau mais il ne me semble pas dans le fichier de la page avoir vu le lien du java, mais seulement celui du PHP.

Je vais voir encore quelques trucs mais si ca continue, je vais penser à changer de script oui.
Modifié par nicky14 (09 Oct 2011 - 18:03)
Je serais toi, j'opterais pour le couple PHP/Mysql.
Recherche des scripts plutôt dans ce sens plutôt que celui-ci où il y a du PHP du javascript, de l'AJAX...
Y a trop d'éléments que tu ne maîtrises pas et donc ton code sera compliqué à corriger ou mettre à jour, qui plus est sur 50 pages...
Bonjour, me revoilà ! Alors, n'ayant pas décidé d'abandonner simplement parce que je n'avais pas assez de connaissance, j'ai continué à bidouiller mon dernier code et finalement, j'ai réussi à le faire fonctionner correctement partout en modifiant bien des choses dans les environs des derniers extraits en rouge de cité plus haut.

Par contre, il est évident qu'avec plus de 50 pages, le côté peu pratique de ce code reste qu'il ne me prévient pas d'un nouveau commentaire d'ajouté et je me sens mal faire souvent les 50 pages pour vérifier cela !
Alors j'ai cherché un autre script et je suis tombé sur ca :

http://scripts.toocharger.com/fiches/scripts/my-comment/3568.htm

Je ne vais pas mettre tout ce qu'il y a dans le téléchargement ici car y en a pas mal...mais je ne comprends pas tout ce qu'il faut faire, dont essentiellement le côté d'être prévenu par mail d'un nouveau commentaire.
J'arrive à faire marcher l'affichage, mais rien ne se passe quand j'écris un commentaire, et même si selon l'auteur, la mise en place est simple et rapide, je suis bloqué sur l'étape où il faut renommer la variable $titre...!

Ceux qui peuvent m'aider le verront de suite après téléchargement du dossier. Le script date un peu mais bon...
Si ya besoin de mettre malgré tout l'ensemble du long code en ligne, dites le moi SVP, si vous ne voulez pas télécharger.

Merci d'avance.
Modifié par nicky14 (10 Oct 2011 - 23:39)