PHP mkdir具有表单输入和安全性

时间:2014-02-27 14:33:43

标签: php html mkdir

我正在尝试使用mkdir创建文件夹但没有成功,我可以看到路径是正确的但$ _post没有从表单输入获取文件夹的名称($ _post ['foldername'为空)don不知道是什么问题。 (我拥有使文件夹safe_mode关闭的所有权限

3 个答案:

答案 0 :(得分:1)

您需要使用$_POST来获取文件名。

正如评论中所发布的那样,您还需要对$_POST['filename']执行某些操作,以确保用户不会尝试发布脚本的相对路径并尝试在您不在的位置创建文件夹打算。至少要确保变量不包含'..'因为你在前面添加一个路径,我不认为你必须担心'/'的直接路径,但你可能也想让输入无效其中带有'/'。

答案 1 :(得分: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>

答案 2 :(得分:-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.";  
  }