Volledige versie bekijken : verschillende mappen aanmaken



Lenny'tje
24 August 2011, 22:58
Hallo,

Ik heb een probleempje met mkdir().

Als ik nu een paar mappen opgeef die mkdir moet aanmaken dan geeft hij een error.

dus ik geef een hele nieuwe map structuur op zoals dit: map1/map2/map3/
Deze mappen bestaan nog niet, mkdir() zou die dan moeten aanmaken mr die doet het niet.

mkdir('./map1/map2/map3/')

Weet iemand hier een oplossing voor?

compuchrisje
24 August 2011, 23:08
Een spatie na het commando?

Zelf ff geprobeerd bij de opdrachtprompt:

mkdir map1;map2;map3


werkt perfect!

Jelle
24 August 2011, 23:10
Probeer

mkdir('./map1/map2/map3/', 0, true);
Je moet de recursive parameter op true zetten om zo'n structuur te kunnen aanmaken.

Zie http://php.net/manual/en/function.mkdir.php

compuchrisje
24 August 2011, 23:17
Oeps sorry, ik zat nog in DOS te denken, thx Jelle (y)

Lenny'tje
25 August 2011, 18:48
Ik krijg nog steeds een Werning:

Warning: mkdir(): Permission denied in /customers/c/6/e/rudy-r.nl/httpd.www/mkdir.php on line 5



<?php

$dir = './map1/map2/map3/';

if (!mkdir($dir, 0, true)){
echo 'Kan de mappen niet aanmaken';
}else{
echo 'Mappen zijn aangemaakt <a href="'.$dir.'">Klik hier</a>';
}

?>

Jelle
25 August 2011, 20:36
De servermap naar waar je wil schrijven, moet schrijfbaar zijn. Je moet die map via je FTP-programma (of shell) chmodden naar 755. Dat doe je door op de map te rechtermuisklikken en dan voor iets als "file/folder properties/permissions" te kiezen, dat verschilt naargelang het gebruikte programma.

In dit geval is dat de rootmap, maar je maakt beter een specifieke submap aan die je schrijfbaar maakt.

Lenny'tje
27 August 2011, 19:09
Werkt nog steeds niet hoor, ik heb het script in een map gestopt, die map heeft deze rechten 755, script uitgevoerd maar geeft nog steeds dezelfde waarschuwing.

Lenny'tje
7 September 2011, 12:49
Is intussen al wel gelukt ^^

heb het in een functie gezet:



function makedir($dir){
if (is_dir($dir)){
return true;
}elseif (mkdir($dir, 0755, true)){
return true;
}else{
return false;
}
}


Nu heb ik nog 1 probleempje, in het begin heeft die een map aangemaakt en die map heeft deze rechten xxx en is in de mainroot aangemaakt :P
Nu als ik die rechten wil geven mislukt dit altijd dus kan ik die map niet verwijderen, ipv ik 0755 als rechten in de mkdir() heb gezet had ik er o gezet. Hoe krijg ik dit nog opgelost? gewoon map rechten geven en verwijderen lukt niet met filezilla.