2014-08-27, 00:42:56
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;
}
?>