Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Recursive CHMOD function
#1
I wrote this a while back for something (i cant remember why now) but figured that I would share. use at your own discretion, but it does work. It can probably be better written and account for trying 0777 when 0755 fails, etc. But here it is...
- Chris
Thanks for using GetSimple! - Download

Please do not email me directly for help regarding GetSimple. Please post all your questions/problems in the forum!
Reply
#2
but where it is inserted to check?
Reply
#3
sorry, put it in the {root}
- Chris
Thanks for using GetSimple! - Download

Please do not email me directly for help regarding GetSimple. Please post all your questions/problems in the forum!
Reply
#4
(2010-11-12, 13:09:28)ccagle8 Wrote: I wrote this a while back for something (i cant remember why now) but figured that I would share. use at your own discretion, but it does work. It can probably be better written and account for trying 0777 when 0755 fails, etc. But here it is...

Where the script get lost?.... we still need it......
Reply
#5
interesting, I didn't know this existed, i was planning on making one.
NEW: SA Admin Toolbar Plugin | View All My Plugins
- Shawn A aka Tablatronix
Reply
#6
I found this in the archives

PHP Code:
<?php




$chmod_mode 
0755#no quotes around this number


/**
 * Recursive CHMOD
 *
 * @since 2.04
 * @author ccagle8
 *
 * @param string $path
 * @param string $filemode
 * @return bool
 */
function chmodr($path$filemode){
    if (!
is_dir($path)) {
        return 
chmod($path$filemode);
         }
    
$dh opendir($path);
    while ((
$file readdir($dh)) !== false)    {
        if (
$file != '.' && $file != '..')        {
            
$fullpath $path.'/'.$file;
            if(
is_link($fullpath)) {
                return 
FALSE;
            } elseif(!
is_dir($fullpath) && !chmod($fullpath$filemode)) {
                return 
FALSE;
            } elseif(!
chmodr($fullpath$filemode)) {
                return 
FALSE;
            }
        }
    }
 
    
closedir($dh);
 
    if(
chmod($path$filemode)) {
        return 
TRUE;
    } else {
        return 
FALSE;
    }
}




if (!isset(
$_GET['attemptfix'])) {
    echo 
"<html><head><title>Attempt to Fix</title></head><body>";
    echo 
'<a href="fix.php?attemptfix">Attempt to Fix</a>';
    echo 
"</body></html>";
} else {
    
$data_folder_status chmodr('data'$chmod_mode);
    
$backup_folder_status chmodr('backups'$chmod_mode);
    
    
$htaccess_folder_status chmod('temp.htaccess'$chmod_mode);
    
$gsconfig_folder_status chmod('temp.gsconfig.php'$chmod_mode);
    
    if (
$data_folder_status) {
        
$fix_status .= "Data path successfully chmod'd. <br />";
    } else {
        
$fix_status .= "Cannot chmod data path - Please do it manually. <br />";
    }
    
    if (
$data_folder_status) {    
        
$fix_status .= "Backup path successfully chmod'd. <br />";
    } else {
        
$fix_status .= "Cannot chmod backup path - Please do it manually. <br />";
    }
    
    if (
$htaccess_folder_status) {    
        
$fix_status .= ".htaccess successfully chmod'd. <br />";
        
copy('temp.htaccess''.htaccess');
        
chmod('.htaccess'$chmod_mode);
    } else {
        
$fix_status .= "Cannot chmod .htaccess - Please do it manually. <br />";
    }
    
    if (
$gsconfig_folder_status) {    
        
$fix_status .= "gsconfig.php successfully chmod'd. <br />";
        
copy('temp.gsconfig.php''gsconfig.php');
        
chmod('gsconfig.php'$chmod_mode);
    } else {
        
$fix_status .= "Cannot chmod gsconfig.php - Please do it manually. <br />";
    }    

    echo 
$fix_status;
}



?>
NEW: SA Admin Toolbar Plugin | View All My Plugins
- Shawn A aka Tablatronix
Reply
#7
wow. perfect. Thanks!
Reply
#8
not tested of course
NEW: SA Admin Toolbar Plugin | View All My Plugins
- Shawn A aka Tablatronix
Reply




Users browsing this thread: 1 Guest(s)