2012-05-07 56 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