Hallo ,

ik zit met een probleem . ik heb een map op mijn seurver waar de foto's van mijn fotoboekscript inkomen maar nu dat fotoboek weg gaat wil ik die map verwijderen en dit gaat niet :(

Hoe komt dit ?
en hoe kan ik die map verwijderen ?

de url waar je het script kan vinden :

http://www.phphulp.nl/php/scripts/9/668/



Joren
daar heb ik ook vaak last van ;)

[edit]
Chmod heeft dan ook geen zin
[/edit]
Je kan de map alleen met php verwijderen, omdat hij ook door php is aangemaakt...
oke tnx, ga ik proberen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Test</title>

<style type="text/css">
html, body {
    font: 12px verdana,arial,sans-serif;
    height: 100%;
    text-align: justify;
}

img.centreren {
    vertical-align:middle;
    margin: 5px;
    border: 0px;
}

img.thumbs {
    vertical-align:middle;
    border: 0px;
    margin: 10px;
    border: 1px solid black;
}

img.groot {
    vertical-align:middle;
    border: 0px;
}
</style>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">

</head>
<body>

<?php
echo '<h1>Admin</h1>';

//We maken 2 array's, eentje voor de bestanden en een voor de mappen. We geven ook aan in welke map we de afbeeldingen kunnen vinden.
$directories             = array();
$bestanden                = array();
$beginmap                = 'fotoalbum';

//Een aantal variabelen die je naar eigen behoefte kunt aanpassen.
$hoogte_klein             = 150;
$breedte_klein             = 100;

$hoogte_groot             = 600;
$breedte_groot             = 380;

$afbeeldingenperpagina    = 15;

//functie, voor het opruimen van een array.
function arraySchoonmaken($array) {
   foreach ($array as $index => $value) {
       if (empty($value)) unset($array[$index]);
   }
   return $array;
}

//functie, voor het maken van een afbeelding.
function thumbnail($map,$thumblocatie,$bestandsnaam,$breedte,$hoogte)
{
    list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($map.$bestandsnaam);

    //We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
    
    if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) {
        $breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
    }else{
        $hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
    }
    
    //Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
    $afbeelding = imagecreatetruecolor($breedte, $hoogte);
    
    switch ($type) 
    {
        case 1:
            //gif
            $afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
            imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
            imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
            break;
        case 2:
            //jpg
            $afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
            imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
            imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
            break;
        case 3:
            //png
            $afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
            imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
            imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
            break;
    }   
}

function remove_directory($dir)
{
    if(@$handle = opendir($dir))
    {
        while(false !== ($item = readdir($handle)))
        {
            if ($item != "." && $item != "..")
            {
                if(is_dir($dir.'/'.$item))
                {
                     remove_directory($dir.'/'.$item);
                   }else{
                     unlink($dir.'/'.$item); 
                   }
            }
        }
        closedir($handle);
        rmdir($dir);
    }
}

//Als er een map opgegeven is in de $_GET parameters kijken we of die leeg is en zorgen ervoor dat er geen misbruik van ons script gemaakt kan worden.
if(isset($_GET['map']) && !empty($_GET['map']))
{
    $map = str_replace(array(".", "\\", ":"), " ", $_GET['map']).'/'; 
}else{
    $map = $beginmap.'/';
}

//Die get variabele halen we uit elkaar zodat we alle losse mappen hebben in een array.
$mappen = arraySchoonmaken(explode('/', $map));
$aantal = count($mappen)+1;

if($mappen[0] != $beginmap)
{
    echo 'Ey kappen nou! Je maakt hem kapot!';
    exit();
}

//Dit gedeelte snap ikzelf niet eens meer... vraag mij niet wat ik hier doe en hoe en waarom ik dat doe. Het doet iets en het werkt. Ik denk dat we het daar maar bij moeten laten.
for($z = 1; $z < $aantal; $z++)
{
    $temp = NULL;
    for($y = 0; $y < $z; $y++)
    {
        if($mappen[$y] == $beginmap)
        {
            $temp .= $mappen[$y];
        }else{
            $temp .= '/'.$mappen[$y];
        }
    }
    echo ' >> <a href="?map='.$temp.'">'.ucfirst($mappen[$z-1]).'</a>';
}
echo '<hr>';

if(@$dir = opendir($map))
{
    while (false !== ($file = readdir($dir)))
    {
        //Standaard krijgen we een . en een .. te zien, die willen we niet hebben.
        if ($file != "." && $file != "..")
        {
            //Als $file een bestand is is...
            if(is_file($map.$file))
            {
                //... halen we de extensie eruit en checken of dat een jpeg is. 
                $bestandsgegevens     = getimagesize($map.$file);
                $extensie             = $bestandsgegevens['mime'];
            
                if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png')
                {
                    //Toevoegen aan de bestanden array!
                    $bestanden[] = $file;
                }                        
            }
                
            //Als $file een map is...    
            if(is_dir($map.$file))
            {
                //... kijken we eerst of het niet onze thumbs of thumbsgroot map is.
                if($file != 'thumbs' && $file != 'thumbsgroot')
                {
                    //Toevoegen aan de directories array!
                    $directories[] = $file;
                }                
            }
        } 
    }
    closedir($dir);
}else{
    //Wat doe je! Je maakt hem kapot! Bel 112!!!!1111oneoneoneone
    echo '<p>Sorry, er gaat iets mis met het uitlezen van de directory!</p>';
}

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if(isset($_POST['verwijderenfoto']))
    {
        foreach($_POST['verwijderenfoto'] as $fotonr)
        {
            if(file_exists($map.$bestanden[$fotonr]))
            {
                unlink($map.$bestanden[$fotonr]);
                
                if(file_exists($map.'thumbs/'.$bestanden[$fotonr]))
                {
                    unlink($map.'thumbs/'.$bestanden[$fotonr]);
                }
                
                if(file_exists($map.'thumbsgroot/'.$bestanden[$fotonr]))
                {
                    unlink($map.'thumbsgroot/'.$bestanden[$fotonr]);
                }
                
                unset($bestanden[$fotonr]);
            }
        }
    }
    
    if(isset($_POST['verwijderendirectory']))
    {
        foreach($_POST['verwijderendirectory'] as $dirnr)
        {
            if(file_exists($map.$directories[$dirnr].'/thumbs/'))
            {
                remove_directory($map.$directories[$dirnr].'/thumbs/');
            }
            
            if(file_exists($map.$directories[$dirnr].'/thumbsgroot/'))
            {
                remove_directory($map.$directories[$dirnr].'/thumbsgroot/');
            }
            
            remove_directory($map.$directories[$dirnr]);
            unset($directories[$dirnr]);
            
            echo '<p>Verwijderd!</p>';
        }
    }
}

//Als de directories array niet leeg is gaan we die eerst laten zien zodat mensen verder kunnen.
if(!empty($directories))
{
    echo '<form action="" method="post">';
    foreach($directories as $key => $directory)
    {
        echo '<input type="checkbox" name="verwijderendirectory[]" value="'.$key.'"><img src="afbeeldingen/folder.gif" class="centreren"><a href="?map='.$map.$directory.'">'.ucfirst($directory).'</a><br>';
    }
    
    echo '<br><input type="submit" name="Wissen" value="Wissen"></form>';
    echo '<hr>';
}


if(!empty($bestanden))
{
    echo '<form action="" method="post">';
    foreach($bestanden as $fotonr => $key)
    {
        //Okay.. wat als er geen thumbsmap is?
        if(!is_dir($map.'thumbs/'))
        {
            //Dan maak je die natuurlijk!
            mkdir($map.'thumbs/',0777);
        }
        
        //Okay... wat als er geen thumbnail is?
        if(!file_exists($map.'thumbs/'.$bestanden[$fotonr]))
        {
            //Dan maak je die natuurlijk!
            thumbnail($map,'thumbs/', $bestanden[$fotonr],$breedte_klein,$hoogte_klein);
        }
        
        //De thumbnail bestaat... wat moet ik doen?
        if(file_exists($map.'thumbs/'.$bestanden[$fotonr]))
        {
            //Jeetje man, kan je helemaal niks zelf? Laat die foto dan zien mafkees!
            echo '<input type="checkbox" name="verwijderenfoto[]" value="'.$fotonr.'"><a href="?map='.substr_replace($map,"",-1).'&amp;foto='.($fotonr+1).'" style="border: 0px;"><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs"></a><br>';
        }
    }    
    echo '<br><input type="submit" name="Wissen" value="Wissen"></form>';
}

?>
</body>
</html>
ik probeer het
in het script zetten dat de chmodd meteen naar 775 of 777 gaat. kan je hem wel verwijderen.

chmodd met php wil misschien nog wel
@ arjan kapitein

nu is de map waar de foto's instaan weg maar die map stond in de map fotoalbum en de map fotalbum in de map fotoboek

in de map fotoalbum staan nu nog 2 mappen :
- thumps
- thumpsgroot

en die moet ik weg krijgen en de gele map fotoboek
@ killerpupy

met welk script ???
heb je er zo eentje ?
mkdir($map.'thumbs/',0777); schijnt niet overal te werken, sommigen zetten er een normale chmod() onder en dat werkt het meestal wel. Windows servers heb je er verder helemaal geen last van.

de owners zijn ongelijk dus moet je de map met php verwijderen -> rmdir()

Reageren