我正在做一個註冊表單,但似乎無法寫入文本文件。在這段代碼中,我將一個人的真實姓名放在acc/pplid/[name] .txt文件中。該文件根本不寫 - echo不輸出任何內容。我正在使用我的電腦上的Microsoft Webmatrix。提前致謝!PHP沒有寫入文件
$irlname = $_POST["irlname"];
$name = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$name = htmlentities($name);
echo $name;
file_put_contents("acc/pplid/".name.".txt", $irlname);
echo file_get_contents("acc/pplid/".$name.".txt");
僅供參考,這允許你把在名稱中NUL字節,使用''../目錄樹中的要上去覆蓋任意文件。 HTML轉義文件名也沒有意義。無法寫入的文件可以被讀取 - 所以代碼是雙重的。 – ThiefMaster
對不起,我的代碼是雙重錯誤的。我逃過了文件名,因爲它是另一端的文本框,沒有任何檢查。如果你想告訴我如何防止NUL字節,這將是有益的。我最關心的是讓它工作。 :P謝謝,雖然。我會研究它。 – Andrey
對於這種情況(除了使用數據庫而不是平面文件),唯一安全的方法是使用嚴格的白名單來驗證字符串 – ThiefMaster