我在我的php网页上创建了一个mkdir函数,但它似乎没有工作。
这是:
mkdir("Game/" . $user . "/" . $name . ".actibuild", 0777, true);
用户和名称在上面定义。这是代码片段:
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');
}
}
它正确地将这些查询运行到数据库中,但它没有创建这些目录。
你能帮忙吗?
答案 0 :(得分:0)
检查当前目录:
echo __FILE__;
或
echo getcwd();
并构建相对于此引用的路径。
或
您可以使用chdir(“/”)将根目录设置为当前目录,然后尝试创建路径。
答案 1 :(得分:0)
您使用相对路径,可能不是您认为创建目录的地方,而是当前目录/ web-root / etc。
尝试:
$path = "Game/" . $user . "/" . $name . ".actibuild";
is_writable('.') || die(realpath('.') . ' is not writable');
mkdir($path, 0777, true) || die(realpath($path).' directory not created');
print_r(realpath($path));
答案 2 :(得分:0)
你知道PHP在哪里执行吗?您有一个相对系统路径(从Game开始)。有可能,您的目录 正在创建(如果权限允许),但是在相对于工作目录的位置,该位置不一定与PHP脚本所在的位置相同。