× 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
159 €Ecran HP 32 pouces 32 (FullHD, 75 Hz) à 159 €
Valable jusqu'au 04 Décembre

Amazon propose actuellement l'écran HP 32 pouces à 159 € livré gratuitement alors qu'on le trouve ailleurs à partir de 200 €. Cet énorme écran de 32 pouces offre une résolution FHD de 1920x1080 pixels sur une dalle VA à 75 Hz.


> Voir l'offre
143 €SSD externe portable Samsung T7 1 To à 143 €
Valable jusqu'au 04 Décembre

Amazon fait une promotion sur le SSD externe portable Samsung T7 1 To qui passe à 143 € livré gratuitement alors qu'on trouve le SSD à partir de 189 € ailleurs. Son format compact vous permettra de le transporter facilement avec vous. De quoi stocker parfaitement vos fichiers et de les emporter dans vos déplacements en toute sérénité. Grâce à la technologie PCIe NVMe intégrée et au connecteur USB 3.1 Type C, bénéficiez de vitesses supérieures pouvant atteindre 1050 Mo /s ! Compatible PC, Mac et Android, il se montrera rapidement indispensable. Le disque Samsung T7 se pare d'un boîtier robuste en aluminium qui résistera aux chutes. Il embarque également un cryptage avancé avec mot de passe. La version 500 Go est également en promotion à 81 € livrée au lieu de 100 €.


> Voir l'offre
79,99 €Casque sans fil Sony WH-CH700N Bluetooth avec réduction de bruit active à 79,99 €
Valable jusqu'au 04 Décembre

Cdiscount fait une belle vente flash sur le casque sans fil Sony WH-CH700N Bluetooth qui passe à 79,99 € livré gratuitement alors qu'on le trouve ailleurs à plus de 120 €. Ce casque sans fil rechargeable (via micro USB) offre jusqu'à 35h d'autonomie. L'AINC (Artificial Intelligence Noise Cancelling) s'adapte à votre environnement, ce qui vous permet d'éliminer les bruits indésirables lors de vos voyages ou si vous êtes avec d'autres personnes dans une même pièce. Une très bonne affaire.


> 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