× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum des Webmasters
 Modification d'un texte enregistré en y mettant des option (gras......)
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
t14
  Posté le 21/10/2020 @ 18:36 
Aller en bas de la page 
Petit astucien

Bonjour,

J'ai un formulaire en php, où on peut écrire du texte, des remarques ............, et qui est enregistré ensuite dans un fichier. Style forum !

Ce formulaire comporte des options pour mettre le texte en gras, souligné .... qui fonctionnent à la création du texte.

<html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset">
<head>
<style type="text/css">
a {color:black; text-decoration:underline;}
a:hover {color:red; text-decoration:underline;}
</style>
<script language="javascript">
function storeCaret(ftext) {
if (ftext.createTextRange) {
ftext.caretPos = document.selection.createRange().duplicate();
}
}

function OpenPreview()
{
document.getElementById('resultat').innerHTML = "<u>APERCU DU MESSAGE :</u><p>" + document.getElementById('Message').value;
return true
}


function TAinsert(text1,text2) {
var ta = document.getElementById('Message');
var ta2= document.getElementById('Message2');

if (document.selection) {
var str = document.selection.createRange().text;
ta.focus();
var sel = document.selection.createRange();
if (text2!="") {
if (str=="") {
var instances = countInstances(text1,text2);
if (instances%2 != 0) sel.text = sel.text + text2;
else sel.text = sel.text + text1;
} else sel.text = text1 + sel.text + text2;
} else sel.text = sel.text + text1;
} else if (ta.selectionStart || ta.selectionStart == 0) {
if (ta.selectionEnd > ta.value.length) ta.selectionEnd = ta.value.length;
var firstPos = ta.selectionStart;
var secondPos = ta.selectionEnd+text1.length;
var contenuScrollTop = ta.scrollTop;

ta.value=ta.value.slice(0,firstPos)+text1+ta.value.slice(firstPos);
ta.value=ta.value.slice(0,secondPos)+text2+ta.value.slice(secondPos);

ta.selectionStart = firstPos+text1.length;
ta.selectionEnd = secondPos;
ta.focus();
ta.scrollTop = contenuScrollTop;
} else { // Opera
var sel = document.PostTopic.Message;
var instances = countInstances(text1,text2);
if (instances%2 != 0 && text2 != "") sel.value = sel.value + text2;
else sel.value = sel.value + text1;
}
}
</script>
</head>
<body bgcolor="#FFCCFF"><center><p>
<font color="green"><div class="apercu" name="resultat" id="resultat" value= "resultat" style="width: 894; height: 41">
</div></font>
Surligner le champs, puis sélectionner le format :<p>
<a href="#" onclick="TAinsert('<b>','</b>');OpenPreview();" style="text-decoration: none"><b>Gras </b></a> -
<a href="#" onclick="TAinsert('<i>','</i>');OpenPreview();" style="text-decoration: none"><i>Italique </i></a> - 
<a href="#" onclick="TAinsert('<u>','</U>');OpenPreview();"><u>Souligné</u></a>
<br>
<form method="POST" action="add.php" value="envoyer" name="soumettre">
<textarea cols="65" name="message" id="Message" rows="8" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" ></textarea><p>
<input type="button" value="Aperçu" onclick="TAinsert;OpenPreview();" style="text-decoration: none">
<input type="submit" name="preview" value="Valider">
<input type="reset" value="Effacer"><p>
<a href="aff-depouil.php"><img src="aff-depouil.JPG" border="0"></a></form></div>
</center>
</body></html>

Mais si après avoir enregistré le message je veux le modifier en utilsant les options de gras, souligné .... cela ne fonctionne pas !

<html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset">
<head>
<style type="text/css">
a {color:black; text-decoration:underline;}
a:hover {color:red; text-decoration:underline;}
</style>
<script language="javascript">
function storeCaret(ftext) {
if (ftext.createTextRange) {
ftext.caretPos = document.selection.createRange().duplicate();
}
}

function OpenPreview()
{
document.getElementById('resultat').innerHTML = "<u>APERCU DU MESSAGE :</u><p>" + document.getElementById('Message').value;
return true
}


function TAinsert(text1,text2) {
var ta = document.getElementById('Message');
var ta2= document.getElementById('Message2');

if (document.selection) {
var str = document.selection.createRange().text;
ta.focus();
var sel = document.selection.createRange();
if (text2!="") {
if (str=="") {
var instances = countInstances(text1,text2);
if (instances%2 != 0) sel.text = sel.text + text2;
else sel.text = sel.text + text1;
} else sel.text = text1 + sel.text + text2;
} else sel.text = sel.text + text1;
} else if (ta.selectionStart || ta.selectionStart == 0) {
if (ta.selectionEnd > ta.value.length) ta.selectionEnd = ta.value.length;
var firstPos = ta.selectionStart;
var secondPos = ta.selectionEnd+text1.length;
var contenuScrollTop = ta.scrollTop;

ta.value=ta.value.slice(0,firstPos)+text1+ta.value.slice(firstPos);
ta.value=ta.value.slice(0,secondPos)+text2+ta.value.slice(secondPos);

ta.selectionStart = firstPos+text1.length;
ta.selectionEnd = secondPos;
ta.focus();
ta.scrollTop = contenuScrollTop;
} else { // Opera
var sel = document.PostTopic.Message;
var instances = countInstances(text1,text2);
if (instances%2 != 0 && text2 != "") sel.value = sel.value + text2;
else sel.value = sel.value + text1;
}
}
</script>
<body bgcolor="#FFCCFF"><center><p>
<font color="green"><div class="apercu" name="resultat" id="resultat" value= "resultat" style="width: 894; height: 41">
</div></font>
Surligner le champs, puis sélectionner le format :<p>
<a href="#" onclick="TAinsert('<b>','</b>');OpenPreview();" style="text-decoration: none"><b>Gras </b></a> -
<a href="#" onclick="TAinsert('<i>','</i>');OpenPreview();" style="text-decoration: none"><i>Italique </i></a> - 
<a href="#" onclick="TAinsert('<u>','</U>');OpenPreview();"><u>Souligné</u></a>
<br>

<?php include ('../../connexion/connexion.php'); 

$id = $_GET["id"];

$result=mysql_query("SELECT date, message FROM depouillement WHERE id='$id'");

if ($row=mysql_fetch_array($result)) {
   echo "<form action=\"maj_bd.php\">";
   echo "<input type=hidden name=\"id\" value=$id>";
   echo '<textarea name="date" cols="20" rows="1">'.$row['date'] .'</textarea><br> ';
   echo '<textarea name="message" cols="65" rows="8">'.$row['message'].'</textarea><br> ';
   echo '<input type="button" value="Aperçu" onclick="TAinsert;OpenPreview();" style="text-decoration: none">';
   echo '<input type=submit value="Modifier">';
   echo '<input type="reset" value="Annuler"><br>';
   echo '<a href="aff-depouil.php"><img src="retour.JPG" border="0"></a>';
   echo "</form>";
} else {
   echo "Cet enregistrement est inconnu<br>";
  mysql_close();
}
exit;
?>
</body></html>

Merci de m'aider à rendre opérationnel le modification du texte (2° script)

Publicité
zoulouman
 Posté le 21/10/2020 à 19:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

J'ai pas compris la question.

Par contre, il semblerait que ton truc soit vulnérable aux injections SQL.

Jean-Pierre
 Posté le 21/10/2020 à 21:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Mais si, tonton Zouzou : tout est Ok sauf s'il ressort un message et l'édite avec par exemple du bold, etc.

Moi j'ai regardé le code source de ses pages et

Doit y avoir un mix d'includes... ça donne par exemples plusieurs <body> entre autre.

Je ne parle pas du DocType datant de l'âge de Pierre et Paul.

Pas mal de choses à reprendre ! (Hein ? moi aussi ? oui je sais )

Licette et JP

midnightblue
 Posté le 22/10/2020 à 14:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Pourquoi pas des BBcodes...

*µ*

t14
 Posté le 22/10/2020 à 15:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour midnightblue. C'est ce que je fais avec le BBcodes. Je pensais trouver une autre solution !



Modifié par t14 le 22/10/2020 15:52
Jean-Pierre
 Posté le 24/10/2020 à 12:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Tiens, Bébert la Carpe qui rapplique

.

t14, sans plus de précisions de ta part, ton souci n'est pas prêt d'être raie aux lues !

Si tu nous disais :

Ta mise en forme s'applique t'elle bien à l'édition mais pas après avoir enregistré ?

Auparavant tout fonctionnait impec ?

Et si tu plaçais au moins un DocType UTF-8 correct et encodais ces pages en UTF-8 sans BOOM, ça donnerait quoi ensuite ?

Licette et JP

t14
 Posté le 24/10/2020 à 16:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Jean-Pierre a écrit :

Tiens, Bébert la Carpe qui rapplique

.

t14, sans plus de précisions de ta part, ton souci n'est pas prêt d'être raie aux lues !

Si tu nous disais :

Ta mise en forme s'applique t'elle bien à l'édition mais pas après avoir enregistré ?

Auparavant tout fonctionnait impec ?

Et si tu plaçais au moins un DocType UTF-8 correct et encodais ces pages en UTF-8 sans BOOM, ça donnerait quoi ensuite ?

Licette et JP

Merci ! La mise en forme s'applique très bien à la saisie. Mais si on veut modifier le texte, pas moyen d'apporter des modifications tels que gras ou souligné !

Jean-Pierre
 Posté le 24/10/2020 à 17:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Donc cela est en rapport avec l'enregistrement en moulinette MySQL !

En ce domaine je n'y connais rien, mais cibler la faille est déjà un pas appréciable.

De plus tu as oublié une chose...

Tu ne vas pas me dire que toi aussi, tout comme Bébert la Carpe ; tu es constipé du clavier ?

Licette et JP

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
99,98 €Kit 2.1 THX Logitech Z623 à 99,98 €
Valable jusqu'au 01 Décembre

Amazon propose le Kit 2.1 THX Logitech Z623 à 99,98 € alors qu'on le trouve ailleurs autour de 140 €. Ce très bon kit d'enceintes supporte une puissance de 200W, est accompagné d'un caisson de basses en bois et est certifié THX qui vous garantit un rendu sonore idéal pour vos films, vos jeux, ou vos séances d'écoute musicale.


> Voir l'offre
89,99 €Disque dur externe portable Seagate Backup 4 To USB 3.0 à 89,99 €
Valable jusqu'au 30 Novembre

Boulanger propose actuellement le disque dur externe portable 2.5 pouces Seagate 4 To Backup USB 3.0 à 89,99 €. On le trouve habituellement autour de 105 €. Grâce à la connectique USB 3.0 (compatible USB 2.0), ce disque dur vous offrira d'excellents débits pour vos transferts et vos sauvegardes. Notez que le disque à l'intérieur n'est pas soudé (vous pouvez le récupérer pour le mettre dans un portable) et qu'il est compatible PS4. 


> Voir l'offre
54,99 €Liseuse Amazon Kindle avec éclairage frontal à 54,99 €
Valable jusqu'au 01 Décembre

Amazon fait une promotion sur sa nouvelle liseuse Kindle qui passe à 54,99 € livrée gratuitement. Cette version est équipée d'un écran tactile à encre électronique qui a l'apparence du papier et se lit comme un livre papier. Elle possède maintenant un éclairage frontal réglable vous permet de lire confortablement pendant des heures, à l'intérieur et à l'extérieur, de jour comme de nuit. Elle possède le WiFi ainsi qu'un port MicroUSB. Cette version peut afficher des publicités discrètes pendant sa mise en veille. Pour ne pas les avoir, vous devez vous tourner vers la version Sans offres spéciales qui coûte 64,99 €. Elle peut lire les fichiers ePub en suivant cette astuce.


> Voir l'offre

Sujets relatifs
Dreamweaver CS3, annuler le texte en gras
Sortir un texte en gras dans une boite de dialogue
Ecrire en gras des titres sur site
modification de http en https sur tout un site simultanément
Site (en) français qui vend des forums ?
Aligner des titre et du texte horizontalement
Etude sur les salaires des dev PHP en France
Gestion des condition en php
Je reçois des courriers bizarres en retour .. A l'
respecter les espaces dans un texte en php
Plus de sujets relatifs à Modification d''un texte enregistré en y mettant des option (gras......)
 > Tous les forums > Forum Forum des Webmasters