L'affichage des datas qui sont dans ma DB via TinyMCE

Résolu
AgneauSincere36 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
AgneauSincere36 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   - 17 janv. 2025 à 17:51

Bonjour les génies, je renconte un sérieux problème avec l'affichage des informations qui sont dans ma DB où je les ai sauvés via un formulaire Tinymce.

Voici ce que Tinymce enregistre dans ma BDD:

<p style="text-align: center;"><em><span style="text-decoration: underline;"><strong>test</strong></span></em></p>

Alors que, j'aimerais conservé la mise en forme dans mon site comme dans Mon formulaire sous TinyMCE.

Donc sur mon site les balise comme tel:

test

Comment faire pour que Tinymce place les balise html sans qu’elle s’affiche sur mon site ?

(J’avoueque j’ai un peu chercher dans la conf de Tinymce mais je n’ai rien trouver.)

J’éspère m’être bien exprimé et que ce n’est pas trop floue pour vous aussi.

Merci.

A voir également:

5 réponses

jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 744
 

ça devrait donner un truc du genre

Fichier de connexion à la bdd à utiliser dans tous tes autres fichiers !

<?php
//Fichier de connexion à la bdd pour éviter d'avoir à la réécrire dans tous tes scripts

//Démarrage session (versions of PHP >= 5.4.0 , PHP 7, PHP 8)
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

$conn= new mysqli('localhost','root','','media')
//on vérifie qu'il n'y pas de soucis à la connexion à la bdd
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  exit();
}

?>


Fichier d'

<?php
//PAGE D’EXEXUTION .php

// On inclus le fichier de connexion à la bdd
require_once 'cnxbdd.php';

if(!isset($_SESSION['unique_id'])){
   header("location: index.php");
}


// Vérifier si le formulaire est soumis


if($texte){
	//Utilisation des requêtes préparées pour éviter les failles de sécurités
	// Doc : https://www.w3schools.com/php/php_mysql_prepared_statements.asp
	$stmt = mysqli_prepare($conn, "INSERT INTO menu (name) VALUES (?)");
	mysqli_stmt_bind_param($stmt, 's', $texte);
	$texte = !empty($_POST['texte']) ? trim($_POST['texte']) : null;

		
	if(!mysqli_stmt_execute($stmt)){
		echo("Error description: " . mysqli_error($conn));
	}else{
		echo "Insertion OK";
	}		
} else {
	echo "Aucune données à insérer en base !!! ";
}





">
<?php
//PAGE D’AFFICHAGE ET LE FORMULAIRE

// On inclus le fichier de connexion à la bdd
require_once 'cnxbdd.php';
?>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Acceuil</title>
	</head>
	<body>

		<form action=".php" method="post">
			<label for="texte">Entrez votre texte :</label><br>
			<textarea id="texte" name="texte" rows="10" cols="50"></textarea><br>
			<input type="submit" value="Envoyer">
		</form>

		<?php 
			//AFFICHAGE SANS TABLE
			$rq=mysqli_query($conn,"select * from menu where name <> 'NULL' order by id desc limit 1 ");
			// ECHO LES DATAS;
			while ($row = mysqli_fetch_assoc($rq)){
				echo "<br>" . $row['name'];
			}
		?>

		<script src="tinymce/tinymce.min.js"></script>
		<script src="script.js"></script>
	</body>
</html>

2
AgneauSincere36 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 

Allahou Akbar! Merci infiniment coach, jusqu'au point ou je manque le mot.

Gloire et louange à Celui qui a enseigné à l'homme ce qu'il ne savait pas.

0
AgneauSincere36 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 

Il sied de signaler que, ses codes sources ????<p style="text-align: center;"><em><span style="text-decoration: underline;"><strong>test</strong></span></em></p>

Sont enregistrés avec les textes saisis via mon formulaire TinyMCE, dans un terme simple, les textes s'enregistrent et s'affichent dans le navigateur avec les codes sources de la mise forme comme dans un éditeur de texte.

0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 744
 

Bonjour,

Ce que tu montres semble tout à fait normal.

Les données s'enregistrent correctement dans ta bdd...

Le souci, se situe donc au niveau de leur utilisation sur ton site...

Comment fais tu ? avec quel code ?

0
AgneauSincere36 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 

Je le faisais avec echo"$texte"; simplement et après une recherche j'ai trouvé ça ????

<?php

// Exemple de texte envoyé par TinyMCE (ou autre éditeur de texte)

texte = "<h1>Bienvenue</h1><p>Ceci est un <b>exemple</b> de texte avec des balises HTML autorisées.</p>";

// Liste des balises HTML autorisées allowed_tags = '<h1><h2><h3><h4><h5><b><i><u><strong><em><mark><p><br><span><blockquote><hr><pre><ul><ol><li><dl><dt><dd><table><tr><td><th><a><img>';

// Application strip_tags() pour show seulement les balises autorisées

texte_securise = strip_tags($texte, allowed_tags);

Mais, je n'arrive pas à l'appliquer, pour conserver la mise en forme comme dans l'aperçu de mon formulaire TinyMCE.

0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 744 > AgneauSincere36 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 

il ne faut pas utiliser de fonction comme strip_tags ni htmlspecialchars ou autre truc du genre.

tu dois echo le contenu de ta variable tel quel 

0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 744 > jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention  
 

mais il faudrait le code exact  de la page où tu veux l'afficher... y compris le code qui te Sert à récupérer les données de ta bdd...

0
AgneauSincere36 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention  
 

    // Utiliser strip_tags() pour filtrer les balises HTML non autoriséestexte_securise = 

    strip_tags($texte);

 mysqli_query($conn,"insert into menu(name)values('$texte')");

    // Exécution de la requête

    if ($conn='$texte') {

      echo "Le texte a été ajouté avec succès à la base de données.";

   } else {

      echo "Une erreur est survenue lors de l'ajout du texte.";

  }

?>

0
AgneauSincere36 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 

PAGE D’AFFICHAGE ET LE FORMULAIRE


<!DOCTYPE html>
<html>
<head>
       <meta charset="utf-8">
    <title>Acceuil</title>
</head>
<body>

<form action=".php" method="post">
    <label for="texte">Entrez votre texte :</label><br>
    <textarea id="texte" name="texte" rows="10" cols="50"></textarea><br>
    <input type="submit" value="Envoyer">
</form>

<?php 

$conn= new mysqli('localhost','root','','media')or die("Could not connect to mysql".mysqli_error($conn));

//AFFICHAGE SANS TABLE
$rq=mysqli_query($conn,"select * from menu where name <> 'NULL' order by id desc limit 1 ");
// ECHO LES DATAS;
while ($row = mysqli_fetch_assoc($rq)){
$texte=$row['name'];
?>
<br>
<?php

echo "$texte";
}

"></script>
<script src="script.js"></script>
</body>
</html>

PAGE D’EXEXUTION .php

<?php

  session_start();

if(!isset($_SESSION['unique_id'])){

    header("location: index.php");

  }

$conn= new mysqli('localhost','root','','media')or die("Could not connect to mysql".mysqli_error($conn));

// Vérifier si le formulaire est soumis

$texte=addslashes($_POST['texte']);

$texte=htmlspecialchars($texte);

// Liste des balises HTML autorisées

   // allowed_tags = '<h1><h2><h3><h4><h5><b><i><u><strong><em><mark><p><br><span><blockquote><hr><pre><ul><ol><li><dl><dt><dd><table><tr><td><th><a><img>';

    // Utiliser strip_tags() pour filtrer les balises HTML non autoriséestexte_securise = 

    strip_tags($texte);

 mysqli_query($conn,"insert into menu(name)values('$texte')");

    // Exécution de la requête

    if ($conn='$texte') {

      echo "Le texte a été ajouté avec succès à la base de données.";

   } else {

      echo "Une erreur est survenue lors de l'ajout du texte.";

  }

?>

0

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

Posez votre question
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 744
 

ouais... donc tu n'as pas lu ma réponse précédente visiblement...

tu as deux lignes en trop dans ton code d'

$texte=addslashes($_POST['texte']);

$texte=htmlspecialchars($texte);

tu dois enregistrer le contenu tel quel dans la base de données sans aucun traitement.. et j'insiste sur le mot aucun..


0
AgneauSincere36 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 

J'ai les zones d'ombres coach, si vous aimeriez m'expliquer via me codes sources. Ou à m'envoyant l'essentiel du code. Veuillez agréer svp coach 

0