1

PHP Webページで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 が実行される場所を知っていますか? 相対システム パスがあります (Game から始まります)。ディレクトリ作成される可能性がありますが (パーミッションが許可されている場合)、作業ディレクトリからの相対的な場所にあり、PHP スクリプトが存在する場所と必ずしも同じであるとは限りません。

于 2012-05-07T20:02:57.520 に答える