[PHP/HTML] file to textarea / textarea 2 file

Résolu
wolfy -  
 wolfy -
Bonjour à tous,

j'aimerais éditer des fichiers html à l'aide d'une page web, mon principale problème se situe à l'écriture du fichier, mon scritp en PHP n'écrit pas correctement les balises HTML, en fait :

<p class=\"titre_grand\">BRIS DE GLAGE lol</p>
devient:
& lt; p class=\ & quot;titre_grand \& quot; & gt;BRIS DE GLAGE lol & lt;/p & gt;

voici mon code:
file_to_text.php:
<?php
header("Content-Type: text/plain");
$file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
echo html_entity_decode(file_get_contents($file));
?>

text_to_file.php:
<?php
header("Content-Type: text/plain");
$file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
$content = (isset($_GET["content"])) ? $_GET["content"] : NULL;
$content = htmlentities($content);
$fh = fopen($file, 'w') or die("can't open file");
fwrite($fh, $content);
fclose($fh);
echo 1;
?>

morceau utile de la page web:
<script type="text/javascript" src="../script/oXHR.js"></script>
<script type="text/javascript">
function readFile(fileTemp)
{
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
document.getElementById("textArea").value = xhr.responseText;
}
};
xhr.open("GET", "../script/file_to_text.php?file=" + fileTemp, true);
xhr.send(null);
}

function changeFile(file)
{
var xhr = getXMLHttpRequest();
var content = document.getElementById("textArea").value;
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
if(xhr.responseText == 1)
{
document.getElementById("textArea").value = "";
file = '';
return;
}
else
{
alert('erreur');
return;
}
}
};
xhr.open("GET", "../script/text_to_file.php?file=" + file + "&content=" + content, true);
xhr.send(null);
}
</script>
Charger la page :
<select id="mymenu">
<option value="index.html">Accueil</option>
<option value="bris_de_glace.html">Bris de glace</option>
<option value="changement_de_serrure.html">Changement de serrure</option>
<option value="depannage.html">Dépannage</option>
<option value="norme_A2P.html">Norme A2P</option>
<option value="tarif.html">Tarif</option>
<option value="vitrerie.html">Vitrerie</option>
</select>

<script type="text/javascript">
var selectmenu=document.getElementById("mymenu")
selectmenu.onchange=function(){ //run some code when "onchange" event fires
var chosenoption=this.options[this.selectedIndex] //this refers to "selectmenu"
if (chosenoption.value!="nothing")
{
file = "../data/" + chosenoption.value;
readFile("../data/" + chosenoption.value); //open target site (based on option's value attr) in new window
}
}
</script>

<hr align="center" width="50%" color="midnightblue" size="4">
<textarea style=" WIDTH: 700px; height:400px;" id="textArea">
Polices, Couleurs ...
</textarea>
<br>
<button type="button" onclick="JavaScript: changeFile(file);">Changer</button>
<button type="button" onclick="JavaScript: document.getElementById('textArea').value =''; file='';">Reset</button>

2 réponses

  1. Nxl Messages postés 1257 Statut Membre 133
     
    Déjà tu ne devrait pas utiliser des ternaires...
    donc :
    $file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
    $file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
    $content = (isset($_GET["content"])) ? $_GET["content"] : NULL;

    j'en oublie mais il faut déjà coder tout ça avec des conditions "normal" if et else.
    sinon je comprend pas ton début de message :
    <p class=\"titre_grand\">BRIS DE GLAGE lol</p>
    devient:
    <p class=\"titre_grand\">BRIS DE GLAGE lol</p>
    => elle sont identiques !
    0
    1. wolfy
       
      j'ai modifié, il y avait une erreur dans l'affichage
      0
  2. wolfy
     
    J'ai trouvé la solution sur un autre forum.

    voila le code modifié si quelqu'un cherche:

    text_to_file.php
    <?php
    header("Content-Type: text/plain");
    $file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
    $content = (isset($_GET["content"])) ? $_GET["content"] : NULL;
    $content = html_entity_decode($content);
    $content = str_replace('\"', '"', $content);
    $fh = fopen($file, 'w') or die("can't open file");
    fwrite($fh, $content);
    fclose($fh);
    echo 1;
    ?>

    file_to_text.php
    <?php
    header("Content-Type: text/plain");
    $file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
    $content = html_entity_decode(file_get_contents($file));
    $content = utf8_encode($content);
    echo $content;
    ?>
    0