Avatar billede martinbk Nybegynder
04. maj 2003 - 01:43 Der er 6 kommentarer og
1 løsning

chmod og rename function i PHP

hejsa, sidder og har en lille kattepine med at chmodde og rename dirs får permission denied på min unix server, har så regnet ud der er fordi filerne ikke er ejet at den bruger/gruppe php kører under, mit Q er så hvem skal eje mapperne for at php kan chmodde og rename dirs ??
Avatar billede jakoba Nybegynder
04. maj 2003 - 01:46 #1
for at rename er det mappen der skal write-enables. ikke filen.
Avatar billede martinbk Nybegynder
04. maj 2003 - 01:48 #2
2 sek jacoba finder lige lidt kode som du evt. kan forklarer ud fra
Avatar billede martinbk Nybegynder
04. maj 2003 - 01:52 #3
$decperms = fileperms("$config[fullpath]"."$_POST[filepath]");
          $octalperms = substr(sprintf("%o",$decperms),2);

          if($octalperms < 777) {
            $dir = "$config[fullpath]"."$_POST[filepath]";
            chmod ("$dir", 0777);
            echo "Changed Dir Permissions";
            }
$config[fullpath] er jo så unix pathen til mine dirs, men ved at exekvere det script der får jeg:
Warning: chmod failed: Operation not permitted in /usr/home/holybull/public_html/photoalbum/db_input.php on line 116
Avatar billede martinbk Nybegynder
04. maj 2003 - 01:54 #4
dir'et skal chmoddes så jeg kan bruge GD-lib til at generere billeder med i det dir
Avatar billede jakoba Nybegynder
04. maj 2003 - 01:58 #5
$dir = "/usr/home/holybull/public_html/photoalbum"
      chmod ("$dir", 0777);                  // chmod en mappe
      $gammeltnavn = "/usr/home/holybull/public_html/photoalbum/db_input.php";
      $nytnavn = "/usr/home/holybull/public_html/photoalbum/db_input_renamed.php";
      rename( $gammeltnavn, $nytnavn );    // og rename så filer i den mappe
Avatar billede martinbk Nybegynder
04. maj 2003 - 02:03 #6
tror vi snakker forbi hinanden du får lige hele den function

          if(!$_POST[filepath]){
            echo "<html><head><link rel=\"stylesheet\" href=\"style.css\"><title>Inserting directory</title></head><body>\n";
            echo "Filepath and/or webfilepath missing!<br>\n";
            echo "<a href=\"javascript.history.back()\">back</a></body></html>";
            exit;
          }
          if(substr($_POST[filepath], -1) != "/"){
            echo "<html><head><link rel=\"stylesheet\" href=\"style.css\"><title>Inserting directory</title></head><body>\n";
            echo "You must add a slash (/) to the end of the filepath!<br>\n";
            echo "<a href=\"java script:history.back()\">back</a></body></html>";
            exit;
          }   
          if(!is_dir("$config[fullpath]"."$_POST[filepath]")){
            echo "<html><head><link rel=\"stylesheet\" href=\"style.css\"><title>Inserting directory</title></head><body>\n";
            echo "This is not a dir<br>\n";
            echo "<a href=\"java script:history.back()\">back</a></body></html>";
            exit;
          }

          echo "<html><head><link rel=\"stylesheet\" href=\"style.css\"><title>Inserting directory</title></head>\n";
          echo "<body bgcolor=\"#FFFFFF\">";
          echo "<h3>Inserting files into album $_POST[album] &gt;&gt;</h3>";

          // Makes sure the dir has got the right permissions
          $decperms = fileperms("$config[fullpath]"."$_POST[filepath]");
          $octalperms = substr(sprintf("%o",$decperms),2);

          if($octalperms < 777) {
            $dir = "$config[fullpath]"."$_POST[filepath]";
            chmod ("$dir", 0777);
            echo "Changed Dir Permissions";
            }
          $dir = opendir("$config[fullpath]"."$_POST[filepath]");
          $num=0;  $antfiler=0;
          $connection = db_connect(); // Connect to database before loop
          while($filename = readdir($dir)) {
            set_time_limit(10);
            if($num > 1 && okfiletype($filename) && !ereg("thumb_",$filename) && !ereg("normal_",$filename))
                {
                  $filesize = filesize("$config[fullpath]"."$_POST[filepath]"."$filename");
                  $imagesize = getimagesize("$config[fullpath]"."$_POST[filepath]"."$filename");
                  $query = "INSERT INTO $config[TABLE_PICTURES] (pid, aid, filepath, filename, filesize, pwidth, pheight) VALUES ('', '$_POST[album]', '$_POST[filepath]', '$filename', '$filesize', '$imagesize[0]', '$imagesize[1]')";
                  $insert = mysql_query($query);
                  echo "$config[albumdir]"."$_POST[filepath]"."$filename";
                  $thb = album_resizeImage("$config[fullpath]"."$_POST[filepath]"."$filename", "$config[fullpath]"."$_POST[filepath]"."thumb_"."$filename", $config['thumb_width']);
                  if($imagesize[0] > $config[picture_width])
                      $norm = album_resizeImage("$config[fullpath]"."$_POST[filepath]"."$filename", "$config[fullpath]"."$_POST[filepath]"."normal_"."$filename", $config['picture_width']);
                  echo "<br>\n";
                  $antfiler++;
                  flush();
                }       
          $num++;
          }
         
          $num_files = $antfiler;
          echo "<hr>Total: $num_files files.<br>";
          echo "<a href=\"index.php\">back</a>";
          closedir($dir);

meningen er dir'et skal chmoddes hvis det ikke allerede er 777 så GD-lib efterfølgende kan skrive thumbnails i det, håber du er med nu.
Avatar billede martinbk Nybegynder
06. maj 2003 - 18:43 #7
intet brugbart, mit problem blev ikke løst
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