mkdir(): 使用 PHP 创建目录时权限被拒绝

mkdir(): Permission denied when making directories using PHP

我到处找了找,但还是能找到解决这个问题的方法。 我正在尝试在包含一些图像等的专用目录中生成 XML 文件。 但由于警告,我无法创建目录:警告:mkdir(): Permission denied in C:\wamp64\www\motor\cpanel.php on line 52

/** create XML file */ 
function generisanje(){
$mysqli = OpenCon2();
$mysqli->query("SET NAMES 'utf8'");
$query = "SELECT CONCAT(Ime , Prezime) as Ime, Adresa, broj_Telefona, Drzava, Email, potrosac.id_Potrosaca, Mesto, postanski_Broj, vreme_Narucivanja, proizvodi.Boja, proizvodi.Naziv, proizvodi.Cena, proizvodi.Velicina, proizvodi.Priprema, proizvodi.Primer, proizvodi.Tip, proizvodi.Kolicina FROM potrosac JOIN proizvodi ON potrosac.id_Potrosaca=proizvodi.id_Potrosaca WHERE (SELECT DATE_FORMAT(potrosac.vreme_Narucivanja ,'%d-%m-%y'))=(SELECT DATE_FORMAT(SYSDATE(),'%d-%m-%y')) ";
$narudzbina = array();
//CONCAT(Ime , " ", Prezime)as Ime
if ($result = $mysqli->query($query)) {
  
    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
       array_push($narudzbina, $row);
    }
    if(count($narudzbina)){
         createXMLfile($narudzbina);
     }
    /* free result set */
    $result->free();
}
/* close connection */
$mysqli->close();
}
function createXMLfile($narudzbina){
   $id="strasilo";
   foreach ($narudzbina as $komad) {
    $ime        =  strval($komad['Ime']);
    mkdir("naruzbine ". date("d-m-Y")."/".$ime."", true);
   }
   }

在上面,您可以看到部分代码从 MySQL 和 returns 行获取查询,并根据行中的名称 (Ime) 创建目录。 我在 Windows 笔记本电脑上使用 WAMP。 这真的很奇怪,因为每当我使用数据库中的单个名称时它都会起作用。我需要将名称和姓氏显示为目录名称,因此我需要 CONCAT 或将两个字符串放在一起,但每当我尝试类似的警告时,就会弹出警告,最终我没有目录。

编辑:我确信 $ime 使这一切发生了。如果我改变 $ime = strval($komad['Ime']);到 $ime= "一些字符串"; 一切都按预期运行,但这不符合我的用例。

感谢您的帮助!

您缺少 mkdir() 的参数。 $recursive参数是第三个参数,需要把权限放在前面。

mkdir("naruzbine ". date("d-m-Y")."/".$ime, 0777, true);

true 被视为 $permissions = 0001,因此它正在创建没有写入权限的目录。

我失去了耐心,做事轻而易举。因此,我通过在字符串进入数据库之前联系字符串来解决这个问题。所以我现在只从查询中提取一个变量,一切正常。