mkdir函数,似乎没有工作

时间:2012-05-07 19:58:32

标签: php mysql mkdir

我在我的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');
        }
    }

它正确地将这些查询运行到数据库中,但它没有创建这些目录。

你能帮忙吗?

3 个答案:

答案 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脚本所在的位置相同。