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 ?
<!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).'&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>
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.