我已經開始一個試圖製作在線文本編輯器的小型項目,直到系統開始覆蓋文件和不必要地添加空格爲止。我有一個名爲editor.php的文件,所有的文件加載,保存和編輯完成。用PHP開發一個文本編輯器
因此,這是打開/關閉的文件:
<?php
if(isset($_POST['new'])){
$filer = substr(md5(microtime()),rand(0,26),6);
$file_create = $filer.".txt";
$handle = fopen("files/".$file_create,"w");
fclose($handle);
header("Location: editor.php?e=".$filer);
}
$file = $_GET['e'];
$file = basename($file);
$filename = "files/".$file.".txt";
$file_get = file_get_contents($filename);
if(isset($_POST['save'])){
file_put_contents($filename, $_POST['text']);
}
?>
進一步下跌的頁面我有這樣的一個<textarea>
標籤:
<?php
echo $file_content;
?>
這使用來自file_get_contents();
但是當我保存時,沒有任何反應,實際上它會擦除文件,當我加載一個文件時,有八個空格,但沒有其他的東西。
我知道還有另一種方法可以做到這一點fopen()
,如果有人可以給我一個方法來使用它,它將不勝感激。
如果此實驗將要在線託管,請務必清理'$ file'。否則,遠程攻擊者可能會打開甚至編輯服務器上的隨機文件......如果我自己打開PHP腳本並在其中插入一些惡意代碼會怎麼樣? –