2013-09-22 40 views
2

我正在使用mkdir()來創建一個新的目錄,它的工作原理。但是,當我試圖將文件(圖像)上傳到目錄,它給了我下面的錯誤:php mkdir設置錯誤的所有者

Warning: imagegif() [function.imagegif]: SAFE MODE Restriction in effect. The script whose uid is 878043 is not allowed to access (dir)/galleries/ny owned by uid 2001 in /www/.../formfunctions.php on line 208

我知道問題是什麼,但不知道如何解決它。當我使用mkdir()創建它被賦予所有者ID的目錄:2001和組ID:2001 所有者ID應該是:878043 (我能看到這個通過FileZilla中)

這裏是我的代碼創建新的目錄:

$albumName = $_POST['albumName']; 
$url = $_GET['url']; 

    if (!is_dir("galleries/".$albumName) && $albumName != "") { 
     // Hvis albumnavnet er ledigt laves albummet 
     mkdir("galleries/".$albumName); 
     uploadImagesToAlbum($albumName, $url); 
     chmod('galleries/'.$albumName, 0777); 

    } else { 
     // Hvis albumnavnet er optaget sendes man tilbage og faar en meddelelse 
     header('location: '.$url.'?mes=albumOccupied'); 
    } 

所以我的問題是:我可以通過我的PHP代碼設置所有者ID?

+0

mkdir和imagegif如何以不同的用戶身份執行?或者你的意思是你的提供者將不同的(和隨機的)uid分配給不同的線程? – amenadiel

+0

mkdir和imagegif不會執行不同的用戶..我不完全確定發生了什麼事..我只知道當我使用mkdir()時,uid是錯誤的(= 2001)。我只是嘗試使用chown()命令,但沒有效果 – Langkiller

回答

0

你可以使用chown來設置它,但是讓PHP用戶chown文件存在安全風險。

更好的解決方案是禁用安全模式。 Safe Mode

+0

我無法關閉安全模式,因爲這是託管網站。我沒有訪問php.ini – Langkiller

+0

我不認爲它會允許你在這種情況下設置所有者.. – Technobyte

+0

nope .. chown沒有工作..仍然是相同的所有者id(2001)。其他方案? :) – Langkiller