0) { // supprimer espaces, tabulations et sauts de ligne en début et fin de chaine $texte = trim($texte); // supprimer les sauts de ligne $sautsDeLigne = array("\n", "\r", "\r\n"); $texte = str_replace($sautsDeLigne, '', $texte); // échapper tous les ', ", \ et caractère NULL $texte = addslashes($texte); } else { $texte = ''; // nouveau contenu } return($texte); } // réception du HTML créé par l'éditeur // le nom du fichier est celui dans $_SESSION['nomFichier'] function submitCKeditor($page, $nomFichier, $contenu) { // déjà fait mais on ne sait jamais if(!isset($_SESSION['admin']) || $_SESSION['admin'] != 1) { header('Location: index.php?page=' . $page . '&erreur=connexion'); } else { // ne pas continuer si la variable est vide (javascript mal supporté ou utilisation de IE, bug?, erreur de l'utilisateur) // on évitera de perdre un article existant par erreur !! if($contenu == '') { header('Location: index.php?page=' . $page . '&erreur=contenu_vide'); } else { // récupérer les liens multimedia //require("media.php"); //$contenu = mediaSubmit($contenu); // sécurité faille XSS $configHtmLawed = array( 'safe'=>1, // protection contre les élements et attributs dangereux 'elements'=>'h2, h3, h4, p, br, span, i, strong, u, mark, blockquote, li, ol, ul, a, figure, hr, img, figcaption, table, tbody, tr, td', // paramètre optionnel: les balises non indiquées sont supprimées // paramètre optionnel: les balises non indiquées sont supprimées 'deny_attribute'=>'id', // gêner le JS hostile // on garde 'class' et 'style' utilisés par l'ckediteur ); $specHtmLawed = ''; // optionnel: faire qu'un certain élément puisse n'avoir que certains attributs $contenu = htmLawed($contenu, $configHtmLawed, $specHtmLawed); // supprimer espaces, tabulations et sauts de ligne en début et fin de chaine $contenu = trim($contenu); } } // lien sans http:// // un clic sur un lien dans l'éditeur affiche une infobulle montrant l'adresse cible du lien si celle-ci a déjà été précisée // il est possible de cliquer sur ce lien, ce qui ouvre un onglet avec le site demandé // toutefois si cette adresse est de type "domaine.fr" (sans http:// devant), le navigateur ne va pas rechercher un site mais un fichier comme si mon adresse était de type file:///fichier // tomber ainsi sur une page d'erreur est déroutant: // "ai-je perdu le texte que j'étais en train de taper?"" // solution 1 (mauvaise): activer la redirection en cas d'erreur 404 dans le .htaccess // solution 2 (façon pop-up): fermer ce nouvel onglet avec echo ''; // pour faire passer par le .htaccess l'info comme quoi la page précédente comportait un éditeur ouvert... // echo($page); // echo($article); // echo($contenu); // die(); // enregistrement require('model/melaine-write.php'); if($_GET['article'] == 0) { nouvelArticle($page, $contenu); } else { modifArticle($page, $nomFichier, $contenu); } // debuggage //exit(); }