2012-05-07 58 views
1

我在我的php网页中创建了一个mkdir函数,但它似乎没有工作。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'); 
     } 
    } 

它是正确运行这些查询到数据库中,但它也没有创造这些目录。

你能帮忙吗?

+2

在PHP错误日志中的任何错误?这可能是一个许可问题...... –

+1

'mkdir()'如果失败将返回'false'。可以?你有文件权限在该位置创建目录吗? – Wiseguy

+0

是的,它有被创建的权限,它似乎不会返回错误或真实。 – user1380580

回答

0

检查当前目录:

echo __FILE__;

echo getcwd();

和你的路径相对于此参考建。

你可以使用CHDIR(“/”)设置根目录为当前目录,然后尝试创建自己的路径。

+0

这似乎并没有帮助我。我已经做到了,但没有给我任何进展。 – user1380580

+0

你做了什么? –

+0

哦,BTW你的根目录不是“/”,它是“/ Idk”。在mkdir之前写入'chdir(“/ Idk”);'然后再试一次。 –

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)); 
+0

我得到'目录未创建'。 – user1380580

+0

你可以从命令行运行相同的php,看看会发生什么吗?它至少会让你知道你正在运行的命令是否有问题,或者是否有PHP的权限。 – andrewsi

+0

命令行?对不起,我不知道那是什么,我对PHP比较陌生。 – user1380580

0

你知道PHP执行在哪里?你有一个相对系统路径(以Game开头)。机会是,你的目录创建(如果权限允许),但在相对于工作目录的位置,这不一定是你的PHP脚本所在的地方。

+0

它使用xampp从本地主机执行。该文件的路径是:C:\ xampp \ htdocs \ Idk – user1380580