Avatar billede grise_bassen Nybegynder
16. september 2005 - 14:15 Der er 16 kommentarer og
1 løsning

fil sytem hjælp

jeg har det her script hvor jeg kan bladre mapper igennem som jeg fandt på php.net

jeg har lavet det sådan at jeg kan slette en mapper men det virker ikke fordi den skriver at mappensnavn er "./minmappe" i stedet for bare at skrive "minmappe"

koden til at se mapper:

<?php
  echo "<table width='85%' align='center'>";
  $path = $_GET['path'];
  if(!isset($path))
  {
      $path = "./mapper-filer";
  }

  if ($handle = opendir($path))
  {
      $curDir = substr($path, (strrpos(dirname($path."/mapper-filer/."),"/")+1));
      echo "<tr>";
      echo"<td width='100%'>current directory: ".$curDir."<br>************************</td>";
      echo"</tr>";   
      echo "<td width='100%'>Path: ".dirname($path."/mapper-filer/..")."<br>************************<br><td>";
      echo"</tr>"; 

      while (false !== ($file = readdir($handle)))
      {
          if ($file != "." && $file != "..")
          {
              $fName = $file;
              $file = $path.'/'.$file;
              if(is_file($file))
              {


                    echo "<tr>";
                    echo "<td width='50%'>[F]&nbsp;&nbsp;<a href='".$file."'>".$fName."</a>&nbsp;&nbsp;&nbsp; ".filesize($file)." bytes</td>";
                    echo "<td width='50%' align='right'><a href='funks.php?sletfil=ja&filnavn=".$file."'>slet</a></td>";
                    echo "</tr>";
              }
              if(is_dir($file))

              {
                    echo "<tr>";
                    echo "<td width='50%'>[M]&nbsp;&nbsp;<a href='slet_mappe&filer.php?path=$file'>$fName</a></td>";
                    echo "<td width='50%' align='right'><a href='funks.php?sletmappe=".$fName."'>slet</a></td>";
                    echo "</tr>";
              }
          }
      }


      $up = substr($path, 0, (strrpos(dirname($path."/mapper-filer/."),"/")));
                    echo "<tr>";
                    echo "<td height='50' valign='bottom'>[^]&nbsp;&nbsp;<a href='slet_mappe&filer.php?path=$up'>up one level</a></td>";
                    echo "</tr>";
      closedir($handle);
  }
                    echo"</table>";
?>


koden til at slette mapper:

<?
if ($_GET[sletmappe]){
echo"<table align='center'>";
echo"<tr>";
echo"<td>";

$foldername = "$_SERVER[DOCUMENT_ROOT]cms/opret_mappe&filer/$_GET[sletmappe]";

function RecurseDelete($foldername) {
    if (file_exists($foldername)) {
        chmod($foldername, 0777);
        chdir($foldername);
        $dirhandle = opendir('.');
        while ($file = readdir($dirhandle)) {
            if ($file != "." && $file != "..") {
                if (is_dir($file)) {
                    RecurseDelete($file);
                }
                else {
                    if (unlink($file)) echo "<font color='red'>Filen \"$file\" er blevet slettet!</font><br>";
                    else echo "<font color='red'>Problemer med at slette filen \"$file\"!</font><br>";
                }
            }
        }
        closedir($dirhandle);
        chdir('..');
        if (rmdir($foldername)) echo "<br><br><font color='red'>Biblioteket \"$foldername\" er blevet slettet!</font><br>";
        else echo "<font color='red'>Problemer med at slette biblioteket \"$foldername\"!</font><br>";
    }
    else {
        echo "<font color='red'>Filen/mappen <br>$foldername eksisterer ikke!</font>";
    }
}


$folder = "./$_GET[sletmappe]";
RecurseDelete($folder);
Avatar billede jakobdo Ekspert
16. september 2005 - 14:29 #1
./minmappe er faktisk det samme som minmappe
Så tror ikke det er problemet.
Avatar billede grise_bassen Nybegynder
16. september 2005 - 14:34 #2
kom til at tænke på om det ikke e fordi slette scriptet
sletter mapper fra den mappe som scriptet selv ligger i..?

for det skal den ikke den skal slettte fra mappen mapper-filer
Avatar billede grise_bassen Nybegynder
16. september 2005 - 14:37 #3
for fejlen

Warning: rmdir(./mapper-filer/plingling): No such file or directory in /usr/export/www/hosting/4boys/cms/opret_mappe&filer/funks.php on line 59
Problemer med at slette biblioteket "./mapper-filer/plingling"!
Avatar billede jakobdo Ekspert
16. september 2005 - 14:40 #4
Den vil have en fuld sti: /usr/export/www/hosting/4boys/cms/./mapper-filer/plingling
Avatar billede grise_bassen Nybegynder
16. september 2005 - 14:42 #5
for fejlen

Filen/mappen
/usr/export/www/hosting/4boyscms/./mapper-filer/ggg eksisterer ikke!

her også prøvet at skrift /./ ud med mappe navn men virker ikk
Avatar billede jakobdo Ekspert
16. september 2005 - 14:50 #6
Hvor ligger mappen: plingling?
Avatar billede grise_bassen Nybegynder
16. september 2005 - 14:51 #7
i mappen  mapper-filer
Avatar billede jakobdo Ekspert
16. september 2005 - 14:55 #8
Hvad hvis du tester: rmdir("/usr/export/www/hosting/4boyscms/mapper-filer/plingling");
Avatar billede grise_bassen Nybegynder
16. september 2005 - 14:59 #9
for fejlen

Parse error: parse error, unexpected '/', expecting ')' in /usr/export/www/hosting/4boys/cms/opret_mappe&filer/funks.php on line 59


min kode:

<?
if ($_GET[sletmappe]){
echo"<table align='center'>";
echo"<tr>";
echo"<td>";

$foldername = "$_SERVER[DOCUMENT_ROOT]cms/./mapper-filer/$_GET[sletmappe]";

function RecurseDelete($foldername) {
    if (file_exists($foldername)) {
        chmod($foldername, 0777);
        chdir($foldername);
        $dirhandle = opendir('.');
        while ($file = readdir($dirhandle)) {
            if ($file != "." && $file != "..") {
                if (is_dir($file)) {
                    RecurseDelete($file);
                }
                else {
                    if (unlink($file)) echo "<font color='red'>Filen \"$file\" er blevet slettet!</font><br>";
                    else echo "<font color='red'>Problemer med at slette filen \"$file\"!</font><br>";
                }
            }
        }
        closedir($dirhandle);
        chdir('..');
        if (rmdir(/usr/export/www/hosting/4boyscms/mapper-filer/plingling)) echo "<br><br><font color='red'>Biblioteket \"$foldername\" er blevet slettet!</font><br>";
        else echo "<font color='red'>Problemer med at slette biblioteket \"$foldername\"!</font><br>";
    }
    else {
        echo "<font color='red'>Filen/mappen <br>$foldername eksisterer ikke!</font>";
    }
}


$folder = "$_SERVER[DOCUMENT_ROOT]cms/./mapper-filer/$_GET[sletmappe]";
RecurseDelete($folder);


echo"<META HTTP-EQUIV=Refresh CONTENT='5; URL= $side/opret_mappe&filer/slet_mappe&filer.php'> ";

echo"<br><br><br><br>du bliver nu automatisk sendt tilbage";

mysql_query("DELETE FROM cms_menu_links WHERE link_name =  '$_GET[sletmappe]'");
echo"</tr>";
echo"</td>";
echo"</table>";
}
?>
Avatar billede jakobdo Ekspert
16. september 2005 - 15:01 #10
Du skulle bare teste;
rmdir("/usr/export/www/hosting/4boyscms/mapper-filer/plingling");
i en fil, for at se om filen kunne slettes via php.
Avatar billede grise_bassen Nybegynder
16. september 2005 - 15:01 #11
i mit indlæg 16/09-2005 14:42:22

for jeg jo en fejl

men jeg tror fejlen skyldes at der mangler et / mellem 4boys og cms
Avatar billede grise_bassen Nybegynder
16. september 2005 - 15:03 #12
<?
rmdir("/usr/export/www/hosting/4boys/cms/opret_mappe&filer/mapper-filer/plingling");
?>

slettet mappen
Avatar billede grise_bassen Nybegynder
16. september 2005 - 15:12 #13
har fået det tilat virke

?
if ($_GET[sletmappe]){
echo"<table align='center'>";
echo"<tr>";
echo"<td>";

$foldername = "$_SERVER[DOCUMENT_ROOT]/cms/opret_mappe&filer/mapper-filer/$_GET[sletmappe]";

function RecurseDelete($foldername) {
    if (file_exists($foldername)) {
        chmod($foldername, 0777);
        chdir($foldername);
        $dirhandle = opendir('.');
        while ($file = readdir($dirhandle)) {
            if ($file != "." && $file != "..") {
                if (is_dir($file)) {
                    RecurseDelete($file);
                }
                else {
                    if (unlink($file)) echo "<font color='red'>Filen \"$file\" er blevet slettet!</font><br>";
                    else echo "<font color='red'>Problemer med at slette filen \"$file\"!</font><br>";
                }
            }
        }
        closedir($dirhandle);
        chdir('..');
        if  (rmdir($foldername))  echo "<br><br><font color='red'>Biblioteket \"$foldername\" er blevet slettet!</font><br>";
        else echo "<font color='red'>Problemer med at slette biblioteket \"$foldername\"!</font><br>";
    }
    else {
        echo "<font color='red'>Filen/mappen <br>$foldername eksisterer ikke!</font>";
    }
}


$folder = "$_SERVER[DOCUMENT_ROOT]/cms/opret_mappe&filer/mapper-filer/$_GET[sletmappe]";
RecurseDelete($folder);


echo"<META HTTP-EQUIV=Refresh CONTENT='5; URL= $side/opret_mappe&filer/slet_mappe&filer.php'> ";

echo"<br><br><br><br>du bliver nu automatisk sendt tilbage";

mysql_query("DELETE FROM cms_menu_links WHERE link_name =  '$_GET[sletmappe]'");
echo"</tr>";
echo"</td>";
echo"</table>";
}
?>
Avatar billede jakobdo Ekspert
16. september 2005 - 15:31 #14
Nice! :o)
Avatar billede grise_bassen Nybegynder
08. januar 2006 - 15:32 #15
skal du have points?
smid et svar så
Avatar billede jakobdo Ekspert
08. januar 2006 - 16:33 #16
Svar!
Avatar billede jakobdo Ekspert
22. januar 2006 - 09:19 #17
Takker for point!
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