1

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

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

你能帮我吗?

4

3 回答 3

0

检查当前目录:

echo __FILE__;

或者

echo getcwd();

并建立相对于该参考的路径。

或者

您可以使用 chdir("/") 将根目录设置为当前目录,然后尝试创建您的路径。

于 2012-05-07T20:00:40.697 回答
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));
于 2012-05-07T20:02:27.407 回答
0

你知道 PHP 在哪里执行吗?你有一个相对的系统路径(从游戏开始)。很有可能,您的目录正在创建(如果权限允许),但位于相对于工作目录的位置,该位置不一定与您的 PHP 脚本所在的位置相同。

于 2012-05-07T20:02:57.520 回答