我試圖使用mkdir文件夾,但沒有成功,我可以看到路徑是正確的,但$ _post沒有從窗體輸入獲取文件夾的名稱($ _post [ '文件夾名'是空的)不知道有什麼問題。 (我有所有的權限,以使該文件夾safe_mode設置爲關閉PHP mkdir與表單輸入和安全
-5
A
回答
1
您需要使用$_POST
得到文件名。
正如在評論中發佈的那樣,您還需要使用$_POST['filename']
執行某些操作,以確保用戶不會嘗試向您的腳本發佈相對路徑,並嘗試在您不打算的位置創建文件夾。至少要確保該變量不包含'..'因爲你預先設置了一個路徑,所以我認爲你不必擔心直接路徑到'/',但是你也可能想要使輸入無效在裏面有一個'/'。
-4
變化
if (!file_exists($path)) {
mkdir("$path/$filename", 0777);
echo "The directory was successfully created.";
}
到
if (!is_dir($path)) {
mkdir("$path/$filename", 0777);
echo "The directory was successfully created.";
}
0
你總是可以試試這個:
<?php
include("models/db-settings.php");
include("models/config.php");
$foldername = $_POST["foldername"];
$filename = $foldername;
$path = __DIR__ . "/uploads/" . $loggedInUser->username;
$fullPath = $path . "/" . $filename;
if (!file_exists($fullPath)){
mkdir($fullPath, 0777);
echo "The directory was successfully created.";
}
echo $fullPath;
?>
<form action="mkdir.php" method="post">
<input type="text" name="foldername" id="foldername" value="FolderName">
<input type="submit" value="submit">
</form>
相關問題
- 1. PHP註冊表單 - 安全和安全?
- 2. 表單安全性和PHP?
- 3. PHP和安全表單
- 4. 用戶輸入,PHP,Javascript和安全
- 5. PHP安全表單
- 6. CodeIgniter表單輸入安全性
- 7. 安全表單插入數據庫php
- 8. PHP和HTML表單輸入
- 9. PHP表單驗證和XSS安全
- 10. 安全模式..的mkdir
- 11. php表單安全性
- 12. 安全與PHP和HTML
- 13. mkdir -p awk輸入
- 14. PHP用戶輸入數據安全
- 15. PHP安全地接收用戶輸入
- 16. PHP初學者安全輸入
- 17. 在使用安全組件和jQuery的CakePHP表單中禁用輸入元素
- 18. php常規表單和輸入
- 19. 安全和php
- 20. PHP的mkdir()chmod和
- 21. Authorize.net表單安全
- 22. php安全與Joomla
- 23. 表單和輸入
- 24. XSS表單安全
- 25. 輸入的安全性:: get和口才
- 26. UIKeyboardWillShowNotification,iOS8和安全文本輸入
- 27. 表單輸入類型php
- 28. PHP:獲取表單輸入
- 29. PHP數組 - 表單輸入
- 30. php表單輸入驗證
嘗試使用$ _POST(大小寫) – Schleis
PHP中的變量名稱區分大小寫。另外,a)使用用戶輸入來影響像文件系統實體這樣的東西是一個非常糟糕的主意,並且b)你沒有檢查mkdir調用的成功或其他方面,只是假設它起作用。永遠不要假設可能失敗的操作已經成功。 – GordonM
男孩,我希望你的用戶名不允許包含諸如'../ anotherUserName'或'../../../ etc'這樣的字符。 – DarkDust