Unlink permission denied
ik krijg deze error als ik bestanden uit een map wil verwijderen:
Warning: unlink(../../Images/Portfolio/123454/Groot) [function.unlink]: Permission denied in C:\wamp\www\Dennis\Classes\Admin\ClsVerwijderProject.php on line 36
dit stukje code hoort erbij:
Heb al een chmod functie aangeroepen... maar werkt niet
Weet iemand een oplossing?
Warning: unlink(../../Images/Portfolio/123454/Groot) [function.unlink]: Permission denied in C:\wamp\www\Dennis\Classes\Admin\ClsVerwijderProject.php on line 36
dit stukje code hoort erbij:
Code (php)
Heb al een chmod functie aangeroepen... maar werkt niet
Weet iemand een oplossing?
Gewijzigd op 22/06/2011 16:56:27 door Dennis meijer
Chmod op Windows :P? Is dat nieuw...?
Echo eens: $Dir.$Entry
Echo eens: $Dir.$Entry
Dan krijg ik dit:
Code (php)
1
2
2
Warning: unlink(../../Images/Portfolio/DMDEVELOPMENT/Groot) [function.unlink]: Permission denied in C:\wamp\www\Dennis\Classes\Admin\ClsVerwijderProject.php on line 36
../../Images/Portfolio/DMDEVELOPMENT/Groot../../Images/Portfolio/DMDEVELOPMENT/klein_portfolio.png../../Images/Portfolio/DMDEVELOPMENT/klein_Visitekaartje-achterkant.png../../Images/Portfolio/DMDEVELOPMENT/ontwerp.png../../Images/Portfolio/DMDEVELOPMENT/Preview.png../../Images/Portfolio/DMDEVELOPMENT/preview_Visitekaartje-voorkant.png../../Images/Portfolio/DMDEVELOPMENT/preview_Webdesign.png../../Images/Portfolio/DMDEVELOPMENT/random_preview_Visitekaartje-voorkant.png../../Images/Portfolio/DMDEVELOPMENT/random_preview_Webdesign.png../../Images/Portfolio/DMDEVELOPMENT/rudolfbloeme123ndal.png../../Images/Portfolio/DMDEVELOPMENT/Website JustinGraphics 2.png../../Images/Portfolio/DMDEVELOPMENT/Website JustinGraphics copy.png../../Images/Portfolio/DMDEVELOPMENT/Website-Fishalicious.png
../../Images/Portfolio/DMDEVELOPMENT/Groot../../Images/Portfolio/DMDEVELOPMENT/klein_portfolio.png../../Images/Portfolio/DMDEVELOPMENT/klein_Visitekaartje-achterkant.png../../Images/Portfolio/DMDEVELOPMENT/ontwerp.png../../Images/Portfolio/DMDEVELOPMENT/Preview.png../../Images/Portfolio/DMDEVELOPMENT/preview_Visitekaartje-voorkant.png../../Images/Portfolio/DMDEVELOPMENT/preview_Webdesign.png../../Images/Portfolio/DMDEVELOPMENT/random_preview_Visitekaartje-voorkant.png../../Images/Portfolio/DMDEVELOPMENT/random_preview_Webdesign.png../../Images/Portfolio/DMDEVELOPMENT/rudolfbloeme123ndal.png../../Images/Portfolio/DMDEVELOPMENT/Website JustinGraphics 2.png../../Images/Portfolio/DMDEVELOPMENT/Website JustinGraphics copy.png../../Images/Portfolio/DMDEVELOPMENT/Website-Fishalicious.png
Dat lijkt niet een geweldig goed pad ;-)
Nou ik heb een map waar alle foto's van het project in staan.
Die fotos worden allemaal verwijderd.
Alleen binnen die map is een map genaamd Groot.
En de fotos in die map worden niet verwijderd omdat hij daar geen rechten voor heeft.
Hoe is dit op te lossen?
Die fotos worden allemaal verwijderd.
Alleen binnen die map is een map genaamd Groot.
En de fotos in die map worden niet verwijderd omdat hij daar geen rechten voor heeft.
Hoe is dit op te lossen?
Rechten geven?
Je kunt heel veel, maar als je geen rechten hebt kan het niet.
Je kunt heel veel, maar als je geen rechten hebt kan het niet.
Ja dat snap ik maar aar zegt dat dat niet kan op windows ofzo?
Kun je mij zeggen hoe het dan wel moet?
Kun je mij zeggen hoe het dan wel moet?
Windows kent geen chmod.
Maar windows kent wel rechten, rechtermuisknop op de map, eigenschappen en daar ergens staan rechten.
Maar windows kent wel rechten, rechtermuisknop op de map, eigenschappen en daar ergens staan rechten.
Ok maa rals ik dat nou op de webserver zet? dan kamp ik toch met hetzelfde probleem?
Op je webserver zet je 1 keer de rechten goed. Dat is onderdeel van het instellen van je website.
De rechten op Windows staan haast altijd wel goed.
Het lag niet aan de rechten.
Het lag eraan dat ik alleen zocht in de images map en daar alle bestanden verwijderde.
Maarja hij zag de map groot ook als een bestand en die kan niet verwijderd worden.
Nu heb ik eerst een controle gedaan dat hij de map groot alle bestanden erin moet verwijderen en daarna die map mag weggooien.
Daarna doet die de rest van de bestanden en nu werkt het.
Bedankt
Het lag eraan dat ik alleen zocht in de images map en daar alle bestanden verwijderde.
Maarja hij zag de map groot ook als een bestand en die kan niet verwijderd worden.
Nu heb ik eerst een controle gedaan dat hij de map groot alle bestanden erin moet verwijderen en daarna die map mag weggooien.
Daarna doet die de rest van de bestanden en nu werkt het.
Bedankt
Heb je daar een recursieve functie voor gemaakt? Of gaat het dan fout als er in groot weer een map staat?
In groot komt geen map te staan dus dat is geen probleem.
Wat is een recursieve functie als ik vragen mag?
Toevoeging op 23/06/2011 11:56:09:
Dit gebruik ik nu btw:
Wat is een recursieve functie als ik vragen mag?
Toevoeging op 23/06/2011 11:56:09:
Dit gebruik ik nu btw:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
$Dir1 = '../../Images/Portfolio/'.$Foto->Titel.'/Groot/';
$Delete1 = dir($Dir1);
while($Entry1 = $Delete1->read())
{
if ($Entry1!= "." && $Entry1!= "..")
{
unlink($Dir1.$Entry1);
}
}
$Delete1->close();
rmdir($Dir1);
$Dir = '../../Images/Portfolio/'.$Foto->Titel.'/';
$Delete = dir($Dir);
while($Entry = $Delete->read())
{
if ($Entry!= "." && $Entry!= "..")
{
unlink($Dir.$Entry);
}
}
$Delete->close();
rmdir($Dir);?>
$Dir1 = '../../Images/Portfolio/'.$Foto->Titel.'/Groot/';
$Delete1 = dir($Dir1);
while($Entry1 = $Delete1->read())
{
if ($Entry1!= "." && $Entry1!= "..")
{
unlink($Dir1.$Entry1);
}
}
$Delete1->close();
rmdir($Dir1);
$Dir = '../../Images/Portfolio/'.$Foto->Titel.'/';
$Delete = dir($Dir);
while($Entry = $Delete->read())
{
if ($Entry!= "." && $Entry!= "..")
{
unlink($Dir.$Entry);
}
}
$Delete->close();
rmdir($Dir);?>
Een functie die zichzelf aanroept om alles te verwijderen.
Op phptuts.nl is wel een artikel te vinden.
Op phptuts.nl is wel een artikel te vinden.
Ok ga ik even kijken
Nogmaals bedankt
Nogmaals bedankt
Een recursieve functie is een functie die zichzelf aanroept. Dit kan dus oneindig door gaan. (Daarom moet je wel een situatie hebben dat die er uit gaat anders heb je een oneindige loop)
bijvoorbeeld
bijvoorbeeld
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
function cleardir($path)
{
$handler = opendir($path);
if($handler)
{
while($file = readdir($handler))
{
if($file =='.' || $file == '..')
{
//we doen niks
}
else
{
if(is_dir($path.DIRECTORY_SEPARATOR.$file))
{
//dit is het recursieve gedeelte, het roept zichzelf aan. Dit gebeurt alleen als het een map is
cleardir($path.DIRECTORY_SEPARATOR.$file);
}
unlink($path.DIRECTORY_SEPARATOR.$file);
}
}
}
}
?>
function cleardir($path)
{
$handler = opendir($path);
if($handler)
{
while($file = readdir($handler))
{
if($file =='.' || $file == '..')
{
//we doen niks
}
else
{
if(is_dir($path.DIRECTORY_SEPARATOR.$file))
{
//dit is het recursieve gedeelte, het roept zichzelf aan. Dit gebeurt alleen als het een map is
cleardir($path.DIRECTORY_SEPARATOR.$file);
}
unlink($path.DIRECTORY_SEPARATOR.$file);
}
}
}
}
?>
En gebruik absolute paden om problemen als deze te voorkpmen. Zet in een config bestand het absolute pad van je root en gebruik deze variabele om bestanden aan te spreken.




