【发布时间】:2012-05-07 19:58:32
【问题描述】:
我在我的 php 网页中创建了一个 mkdir 函数,但它似乎不起作用。
这里是:
mkdir("Game/" . $user . "/" . $name . ".actibuild", 0777, true);
用户和名称在上面定义。这是代码的sn-p:
if (isset($_POST['name'])){
if (isset($_POST['desc'])){
$name = mysql_real_escape_string($_POST['name']);
$desc = mysql_real_escape_string($_POST['desc']);
$user = $check_user['Username'];
mkdir("Game/" . $user . "/" . $name . ".actibuild", 0777, true);
mysql_query("INSERT INTO `games`(`creator`, `name`, `desc`) VALUES ('$user', '$name', '$desc')");
header('Location: Games.php');
}
}
它正在正确地将这些查询运行到数据库中,但它没有创建这些目录。
你能帮忙吗?
【问题讨论】:
-
php 错误日志中有错误吗?这可能是权限问题...
-
mkdir()如果失败,将返回false。可以?您是否具有在该位置创建目录的文件权限? -
是的,有权限可以创建,而且好像没有返回false或者true。
-
注意,使用用户提供的 POST 值来修改文件系统是非常危险的。您必须验证它们不包含路径中毒字符,例如
../或 NULL 字节,以防止写入您的 FS 的意外区域。 -
@MrSlayer OP 已经将递归选项设置为 true。