Avatar billede s0mmer Nybegynder
06. september 2006 - 17:35 Der er 5 kommentarer og
1 løsning

Slette mappe med indhold

Hejsa,
Skal slette en mappe + indholdet af mappen.
har flg kode:

if($_POST["slet"])
{
$db->ExecSQL("DELETE FROM snm_gallerioverskrift WHERE galleri='".$_GET["id"]."'");
$db->ExecSQL("DELETE FROM snm_galleri WHERE galleri='".$_GET["id"]."'");
$file = "fotos/".$visgalleri[0][3]."";
function delete($file) {
chmod($file,0777);
if (is_dir($file)) {
  $handle = opendir($file);
  while($filename = readdir($handle)) {
  if ($filename != "." && $filename != "..")
{
    delete($file."/".$filename);
  }
  }
  closedir($handle);
  rmdir($file);
} else {
  unlink($file);
}
}

delete("test");
echo "<script language='Javascript'>
alert ('Ændringerne er blevet foretaget!')
</script>";
echo "<script> location = 'admin_start.php' </script>";

}

Men den sletter hverken mappen eller indholdet, hva gør jeg galt?
Avatar billede yHec Novice
06. september 2006 - 17:46 #1
Nu ved jeg ikke hvilken version af PHP du bruger, men i de senste er delete udgået og blevet erstattet af unlink! Du bruger både unlink og delete, prøv at bruge unlink alle tre steder!

/y
Avatar billede shooka Nybegynder
06. september 2006 - 17:46 #2
Prøv at tage et kig på dette spørgsmål: http://www.eksperten.dk/spm/645603
Avatar billede s0mmer Nybegynder
06. september 2006 - 17:53 #3
y :
Så gør jeg sådan her, men jeg får bare hvid skærm, den hopper aldrig til admin_start og sletter ej mappen+indhold:
if($_POST["slet"])
{
$db->ExecSQL("DELETE FROM snm_gallerioverskrift WHERE galleri='".$_GET["id"]."'");
$db->ExecSQL("DELETE FROM snm_galleri WHERE galleri='".$_GET["id"]."'");
$file = "fotos/".$visgalleri[0][3]."";
function unlink($file) {
chmod($file,0777);
if (is_dir($file)) {
  $handle = opendir($file);
  while($filename = readdir($handle)) {
  if ($filename != "." && $filename != "..")
{
    unlink($file."/".$filename);
  }
  }
  closedir($handle);
  rmdir($file);
} else {
  unlink($file);
}
}

unlink("test");
echo "<script language='Javascript'>
alert ('Ændringerne er blevet foretaget!')
</script>";
echo "<script> location = 'admin_start.php' </script>";

}

shooka: har tjekket, men det virke uoverskueligt, så miks det venligst sammen med min kode
Avatar billede shooka Nybegynder
06. september 2006 - 18:19 #4
Hvis du har tænkt dig at bruge:

if($_POST["slet"])
{
$db->ExecSQL("DELETE FROM snm_gallerioverskrift WHERE galleri='".$_GET["id"]."'");
$db->ExecSQL("DELETE FROM snm_galleri WHERE galleri='".$_GET["id"]."'");
$file = "fotos/".$visgalleri[0][3]."";

Så kan du ligeså godt gøre:

if($_POST["slet"])
{
$db->ExecSQL("DELETE FROM snm_gallerioverskrift WHERE galleri='".$_GET["id"]."'");
$db->ExecSQL("DELETE FROM snm_galleri WHERE galleri='".$_GET["id"]."'");
$file = "fotos/".$visgalleri[0][3];
rmdir($file);
}
Avatar billede s0mmer Nybegynder
06. september 2006 - 18:50 #5
shooka: kan fint slette mappen så hvis den er tom, så snart der er indhold i den vil den ikke slette den. og det skal den kunne
Avatar billede s0mmer Nybegynder
06. september 2006 - 20:58 #6
opretter ny udfra den nye kode med flere points. er under tidspres, og ingen aktivitet her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester