CKeditor Problème de champ vide sur système de commentaires

Fermé
Le-Spartan Messages postés 6 Date d'inscription mardi 15 janvier 2013 Statut Membre Dernière intervention 16 janvier 2013 - 15 janv. 2013 à 20:45
Le-Spartan Messages postés 6 Date d'inscription mardi 15 janvier 2013 Statut Membre Dernière intervention 16 janvier 2013 - 16 janv. 2013 à 18:25
Bonjour,
Bon voila je ne connais pas grand chose au php (je n'ai que 16 ans), j'ai trouvé sur internet un système de commentaire assez simple (peu de fonctions) mais qui fonctionnait a merveille, j'ai décidé d'y intégré CKeditor, mon soucis : sa ne fonctionne plus impossible de valider le commentaire, comme si le champ était vide,

voici la page du système avec Ckeditor et son code :
http://le-spartan.site90.com/PageDesCommentaires.php

et la page du système de base :
http://le-spartan.site90.com/PageDesCommentaires2.php

j'ai mis en couleur les morceaux ajouté (voir premier lien)
si quelqu'un aurait une solution,
Merci


5 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
16 janv. 2013 à 08:42
Salut,

Normalement pour intégrer Ckeditor de façon simple sur un textarea,il faut procéder de la façon suivante :
<textarea name="commentaire"></textarea>

Devient :
<textarea name="commentaire"></textarea>
<script>
CKEDITOR.replace( 'commentaire' );
</script>

Sans oublier l'appel au fichier "ckeditor.js" dans l'entête du document :
<script src="/ckeditor/ckeditor.js"></script>
0
Le-Spartan Messages postés 6 Date d'inscription mardi 15 janvier 2013 Statut Membre Dernière intervention 16 janvier 2013
16 janv. 2013 à 09:12
Merci de ta réponse mais sa ne fonctionne toujours pas, il y a toujours le même problème
0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639
16 janv. 2013 à 10:03
slt

tu as un exemple ici même !!!
https://www.000webhost.com/migrate?static=true

je ne vois rien sur ta page commentaire qui fait appel au script ckeditor !?
0
Le-Spartan Messages postés 6 Date d'inscription mardi 15 janvier 2013 Statut Membre Dernière intervention 16 janvier 2013
16 janv. 2013 à 10:49
O_o, j'ai un peu de mal,
pour faire appelle au script ckeditor il faut bien placer :
<script src="/ckeditor/ckeditor.js"></script>
entre les deux balise <head> et </head> ?
ensuite j'ai bien ajouté la classe comme sur ton lien a mon textarea :
<textarea name="commentaire"cols="60" rows="4" wrap="soft" class="ckeditor"></textarea>

Quelles seraient mes autres erreurs car sa ne fonctionne toujours pas ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 16/01/2013 à 10:27
salut,

tu fais appel a des fonctions JS:
Affiche_form_B()
Enregistrer_modifier()

où sont ces fonctions ? dans un fichier externe, je ne vois pas le lien vers ce fichier
quel est le code du script php qui récupère le nom et le commentaire ?

et comme disait tryan 44 il te manque la partie qui initialise ckEditor, ce que tu as c'est un textarea tout simple

EDit je viens de voir que tu est en train de modifier ton code
0
Le-Spartan Messages postés 6 Date d'inscription mardi 15 janvier 2013 Statut Membre Dernière intervention 16 janvier 2013
16 janv. 2013 à 10:59
Salut,
Comme je le dis dans la question, c'est un système que j'ai pris sur internet je ne suis pas capable de le faire seul, les fonction sont inscritent dans un fichier javascript qui va de paire avec un autre fichier .php, j'ai écrit leur code dans le premier lien, je suis désolé il n'est pas très lisible, les commentaire sont enregistrés ensuite dans un fichier .txt
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 janv. 2013 à 17:42
Bon j'ai trouvé après pas mal de recherche:

pour lire en Javascript le contenu de ckeditor il ne faut pas faire Obj_formulaireB.nom.value;

mais utiliser.getData() sur l'objet CKEDITOR

j'ai donc modifié un peu la création de l'instance Ckeditor dans la page ainsi que la page commentaires.js

<html>
<head>
	<title>Ma page de commentaires</title>
	<script  type="text/javascript" src="/ckeditor/ckeditor.js"></script>
</head>

<body>
<!-- début du bloc commentaires, version 1.0 (06 novembre 2009)-->
<script language="JavaScript" type="text/javascript">
var sujet='general'; // 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" id="commentaire" cols="60" rows="4" wrap="soft" ></textarea>
<!-- ci dessus supression de class="ckeditor"
donc la creation de l'instance ckeditor se fait par le script ci dessous, avec comme nom objEditor -->
<script language="JavaScript" type="text/javascript" >
	objEditor=CKEDITOR.replace("commentaire");
</script>
<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 -->
<script type="text/javascript" src="commentaires.js"></script>
<h2>
</body>
</html>


commentaires.js:
/* 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 = objEditor.getData();
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= objEditor.getData();
	
	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 ====================================================*/
0
Le-Spartan Messages postés 6 Date d'inscription mardi 15 janvier 2013 Statut Membre Dernière intervention 16 janvier 2013
Modifié par Le-Spartan le 16/01/2013 à 18:13
Merci infiniment sa fonctionne enfin, les commentaires se postent, mais j'ai un autre soucis les fonction(couleurs, centrer ... ) aucune ne fonctionnent, elles ne s'enregistrent pas dans le fichier.txt, je suis obliger de les mêttrent manuellement en éditant le fichier .txt moi même
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 janv. 2013 à 18:23
oui effectivement, les balise html sont filtrées avant l'enregistrement, il faudrait modifier la liste dans gestioncommentaires.php
$tagspermis= '<b><i><u><a><br><small><img>';

et aussi modifier la barre d'outils que tu affiches dans ckEditor, pour cela il faut aller dans ckeditor/config.js pas besoin d'avoir la source, ni fichier notamment

et modifier la partie
config.toolbar_MyToolbar =  
   [  ......


attention aux [ ] et ,
fais toi une sauvegarde du fichier d'origine
0
Le-Spartan Messages postés 6 Date d'inscription mardi 15 janvier 2013 Statut Membre Dernière intervention 16 janvier 2013
16 janv. 2013 à 18:25
ok, merci
0