Fwrite не записывает файл, когда пробелы или <> находятся в строке данных - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть contenteditable таблица в HTML, которую я записываю в файл через ajax и PHP fwrite.Это работает, за исключением случаев, когда есть пробел, <или> (&nbsp; или &lt; или &gt;) в одном из содержимого, запись не происходит, коды ошибок не отображаются.Весь код находится в одном файле .php.

var table = $('.table-editable')[0].outerHTML;
var data = 'data='+table+'?filename='+filename;
//var dataencoded = encodeURI(data);

$.ajax({
    url: "index.php",
    type: "post",
    dataType:"html",
    data: data ,
    success: function (response) {
       // you will get response from your php page (what you echo or print)                         

    },
    error: function(jqXHR, textStatus, errorThrown) {
       console.log(textStatus, errorThrown);
    }


});
response.innerHTML='created';
}
<?php
error_reporting(E_ALL);
var_dump($_SERVER);
$post_data = $_POST['data'];

$datas = explode("?filename=", $post_data);

if (!empty($datas[0])) {
$filename = $datas[1].'.php';
$towrite = htmlspecialchars_decode($datas[0]);
$handle = fopen($filename, "w");
fwrite($handle, $towrite);
fclose($handle);
echo $filename;
}
?>
...