2011-08-18 112 views
0

我試圖使用PHP創建這個工程的目錄:MKDIR無法創建目錄PHP

<?php 
$uid = "user_615"; 
$thisdir = getcwd(); 

if(mkdir($thisdir ."/userpics/" . $uid , 0777)) 
{ 
    echo "Directory has been created successfully..."; 
} 
else 
{ 
    echo "Failed to create directory..."; 
} 
?> 

但這不起作用

<?php 
session_start(); 
$uid = $_SESSION['username']; 
$thisdir = getcwd(); 

if(mkdir($thisdir ."/userpics/" . $uid , 0777)) 
{ 
    echo "Directory has been created successfully..."; 
} 
else 
{ 
    echo "Failed to create directory..."; 
} 
?> 

是會話變量填充了同樣的事情如上面'user_615'那麼爲什麼第二個失敗?

編輯:

所以我把@stefgosselin和建議重新設計的代碼是

<?php 
session_start(); 
$uid = $_SESSION['username']; 
$thisdir = getcwd() . "/userpics" . $uid; 

if(mkdir($thisdir , 0777)) 
{ 
    echo "Directory has been created successfully..."; 
} 
else 
{ 
    echo "Failed to create directory..."; 
    echo "Your thisdir Variable is:'" . $thisdir . "'" ; 
} 
?> 

,輸出是

創建目錄失敗。 ..您的thisdir變量爲:'/ unified/b/bis/www.mysite.com/jou/userpics/user_615

關於什麼會導致Session變量不能用於創建目錄的任何其他想法?

+1

我*想*史蒂夫斯珊林試圖說的是你應該將整個路徑存儲在一個變量中,並檢查它的值作爲調試方法。你* suuuure *會話數據是否正確?沒有其他解釋我能想到。 –

+0

是的。這是我試圖做的簡單的一點。對不起,我的英語不好。在發帖之前我必須閱讀3次,甚至有時候措辭很有趣。 :o/ – stefgosselin

+0

「你的thisdir變量是:'/ unified/b/bis/www.mysite.com/jou/userpics'」似乎不是應該有的結尾。 –

回答

2

作爲一個小提示,我只是簡單地將$thisdir的全部放在一個變量中,並檢查它的輸出是否與您期望的結果相加。

IE:在變量中定義了$thisdir ."/userpics/" . $uid可以讓您輕鬆輸出並驗證您傳遞給mkdir的參數值。

編輯:調整較小的措詞,以獲得更好的英語翻譯。對不起,上面還不清楚,韋斯利明白我笨拙地想要做的簡單點。

+1

我無法理解這個答案,''是什麼,你在說什麼? –

+0

我的想法確切。不過,我以前見過@stef gosselin的回答,他們通常都很好,所以我保留了判斷力。 –

+0

@韋斯利謝謝你們。我編輯了我製作的帖子。公平的說,我一直說這是一個*小技巧*。如果我要調試這些代碼,我會做的第一件事就是我在答案中寫的內容。 – stefgosselin