| version 1.15, 2002/02/16 20:27:36 |
version 1.16, 2002/02/21 09:03:54 |
| Line 31 include('url_utils.lib.php'); |
|
| Line 31 include('url_utils.lib.php'); |
|
| * Language file |
* Language file |
| */ |
*/ |
| if (file_exists("language/lang_$phpWebFileManager_LANGUAGE.php")) |
if (file_exists("language/lang_$phpWebFileManager_LANGUAGE.php")) |
| @include("language/lang_$phpWebFileManager_LANGUAGE.php"); |
@include("language/lang_$phpWebFileManager_LANGUAGE.php"); |
| else |
else |
| include("language/lang_english.php"); |
include("language/lang_english.php"); |
| |
|
| /* |
/* |
| * write_original_html() |
* write_original_html() |
| Line 46 function write_origvars_html($origvars) |
|
| Line 46 function write_origvars_html($origvars) |
|
| foreach (split("&", $origvars) as $param) { |
foreach (split("&", $origvars) as $param) { |
| if (strpos($param, '=') != false) |
if (strpos($param, '=') != false) |
| echo "<input type=hidden name=" |
echo "<input type=hidden name=" |
| . substr($param, 0, strpos($param, '=')) |
. substr($param, 0, strpos($param, '=')) |
| . " value=" . substr($param, strpos($param, '=')+1).">"; |
. " value=" . substr($param, strpos($param, '=')+1).">"; |
| } |
} |
| } |
} |
| |
|
| Line 63 function append_slash($string) |
|
| Line 63 function append_slash($string) |
|
| if (strlen($string) > 0) { |
if (strlen($string) > 0) { |
| if ($string[strlen($string)-1] != '/') |
if ($string[strlen($string)-1] != '/') |
| return $string . '/'; |
return $string . '/'; |
| |
|
| return $string; |
return $string; |
| } |
} |
| |
|
| Line 86 function echo_message($message) |
|
| Line 86 function echo_message($message) |
|
| */ |
*/ |
| |
|
| $phpWebFileManager_LINKS_PREFIX = |
$phpWebFileManager_LINKS_PREFIX = |
| append_slash($phpWebFileManager_LINKS_PREFIX); |
append_slash($phpWebFileManager_LINKS_PREFIX); |
| |
|
| $phpWebFileManager_ROOT_DIR = |
$phpWebFileManager_ROOT_DIR = |
| append_slash($phpWebFileManager_ROOT_DIR); |
append_slash($phpWebFileManager_ROOT_DIR); |
| |
|
| /* Striping slashes. */ |
/* Striping slashes. */ |
| $fm_dir = stripslashes($fm_dir); |
$fm_dir = stripslashes($fm_dir); |
| Line 114 if ($phpWebFileManager_DENY_DIR_FOLLOW_S |
|
| Line 114 if ($phpWebFileManager_DENY_DIR_FOLLOW_S |
|
| if (! isset($fm_dir) || $phpWebFileManager_DENY_DIR_ENTER) |
if (! isset($fm_dir) || $phpWebFileManager_DENY_DIR_ENTER) |
| $fm_dir = $phpWebFileManager_START_DIR; |
$fm_dir = $phpWebFileManager_START_DIR; |
| |
|
| /* Dirty & safe. */ |
/* Dirty & safe. */ |
| $fm_dir = preg_replace('/\/\/+/','/', $fm_dir . '/'); |
$fm_dir = preg_replace('/\/\/+/','/', $fm_dir . '/'); |
| $fm_dir = preg_replace("/^(|.*\/)\.\.\/([^\.\/][^\.\/]|[^\/][^\.\/]|[^\/][^\.\/]|[^\/]{3,})\/(.*)$/", "\\1\\3", $fm_dir); |
$fm_dir = preg_replace("/^(|.*\/)\.\.\/([^\.\/][^\.\/]|[^\/][^\.\/]|[^\/][^\.\/]|[^\/]{3,})\/(.*)$/", "\\1\\3", $fm_dir); |
| $fm_dir = preg_replace("/^(|.*\/)([^\/\.][^\.\/]|[^\/][^\.\/]|[^\/][^\.\/]|[^\/]{3,})\/\.\.\/(.*)$/", "\\1\\3", $fm_dir); |
$fm_dir = preg_replace("/^(|.*\/)([^\/\.][^\.\/]|[^\/][^\.\/]|[^\/][^\.\/]|[^\/]{3,})\/\.\.\/(.*)$/", "\\1\\3", $fm_dir); |
| |
|
| while (preg_match("/^(|.*\/)\.\.\/(.*)$/", $fm_dir)) |
while (preg_match("/^(|.*\/)\.\.\/(.*)$/", $fm_dir)) |
| $fm_dir = preg_replace("/^(|.*\/)\.\.\/(.*)$/", "\\1\\2", $fm_dir); |
$fm_dir = preg_replace("/^(|.*\/)\.\.\/(.*)$/", "\\1\\2", $fm_dir); |
| while ($fm_dir[0] == '/') |
while ($fm_dir[0] == '/') |
| $fm_dir = substr($fm_dir, 1, strlen($fm_dir)); |
$fm_dir = substr($fm_dir, 1, strlen($fm_dir)); |
| |
|
| /* Hidden parameters */ |
/* Hidden parameters */ |
| $origvars = $phpWebFileManager_ORIGINAL_VARIABLES; |
$origvars = $phpWebFileManager_ORIGINAL_VARIABLES; |
| if (strlen($origvars) > 0 && $origvars[strlen($origvars)-1] != '&') |
if (strlen($origvars) > 0 && $origvars[strlen($origvars)-1] != '&') |
| $origvars .= '&'; |
$origvars .= '&'; |
| |
|
| /* Prepare HTML encode of some variables. */ |
/* Prepare HTML encode of some variables. */ |
| $fm_filename_he = htmlentities($fm_filename); |
$fm_filename_he = htmlentities($fm_filename); |
| $fm_dir_he = htmlentities($fm_dir); |
$fm_dir_he = htmlentities($fm_dir); |
| |
|
| /* Prepare URL & HTML encode of some variables. */ |
/* Prepare URL & HTML encode of some variables. */ |
| //$fm_filename_ue = htmlentities(rawurlencode($fm_filename)); |
//$fm_filename_ue = htmlentities(rawurlencode($fm_filename)); |
| $fm_dir_ue = htmlentities(rawurlencode($fm_dir)); |
$fm_dir_ue = htmlentities(rawurlencode($fm_dir)); |
| $PHP_SELF_origvars_ue = htmlentities("$PHP_SELF?" . rawurlencode($origvars)); |
$PHP_SELF_origvars_ue = htmlentities("$PHP_SELF?".rawurlencode($origvars)); |
| |
|
| /* |
/* |
| * Form |
* Form |
| */ |
*/ |
| echo '<form enctype="multipart/form-data" method=post' |
echo '<form enctype="multipart/form-data" method=post' |
| . ' action="' . htmlentities($PHP_SELF) . '">'; |
. ' action="' . htmlentities($PHP_SELF) . '">'; |
| |
|
| write_origvars_html($origvars); |
write_origvars_html($origvars); |
| |
|
| echo '<input type=hidden value="'.$fm_filename_he.'" name=fm_filename>'; |
echo '<input type=hidden value="'.$fm_filename_he.'" name=fm_filename>'; |
| echo '<input type=hidden value="'.$fm_dir_he.'" name=fm_dir>'; |
echo '<input type=hidden value="'.$fm_dir_he.'" name=fm_dir>'; |
| |
|
| /* Store the starting working directory. */ |
/* Store the starting working directory. */ |
| $orig_dir = getcwd(); |
$orig_dir = getcwd(); |
| |
|
| /* Change to root directory. */ |
/* Change to root directory. */ |
| if (@is_dir($phpWebFileManager_ROOT_DIR)) |
if (@is_dir($phpWebFileManager_ROOT_DIR)) |
| chdir($phpWebFileManager_ROOT_DIR); |
chdir($phpWebFileManager_ROOT_DIR); |
| $root_dir = getcwd(); |
$root_dir = getcwd(); |
| |
|
| if (@is_dir($fm_dir)) { |
if (@is_dir($fm_dir)) { |
| chdir($fm_dir); |
chdir($fm_dir); |
| |
|
| /* On some *BSD systems with PHP version <= 4.0.6 |
/* On some *BSD systems with PHP version <= 4.0.6 |
| function chdir() is removing last '/' character |
function chdir() is removing last '/' character |
| in $fm_dir variable, so we must improve it. */ |
in $fm_dir variable, so we must improve it. */ |
| $fm_dir = append_slash($fm_dir); |
$fm_dir = append_slash($fm_dir); |
| } |
} |
| else |
else |
| $fm_dir = ''; |
$fm_dir = ''; |
| |
|
| /* Write current working direcotry information. */ |
/* Write current working direcotry information. */ |
| echo "<big><b>$fm_dir</b></big><br><br>"; |
echo "<big><b>$fm_dir</b></big><br><br>"; |
|
|
| /* |
/* |
| * remove direcotry |
* remove direcotry |
| */ |
*/ |
| if ($fm_action == "remove_directory" && ! $phpWebFileManager_DENY_DIR_REMOVE) { |
if ($fm_action == "remove_directory" |
| |
&& ! $phpWebFileManager_DENY_DIR_REMOVE) { |
| if ($submit == $phpWebFileManager_LANG['dir_remove']) { |
if ($submit == $phpWebFileManager_LANG['dir_remove']) { |
| if (@rmdir($fm_filename) == 0) |
if (@rmdir($fm_filename) == 0) |
| echo_message($phpWebFileManager_LANG['dir_remove_err']); |
echo_message($phpWebFileManager_LANG['dir_remove_err']); |
|
|
| /* |
/* |
| * rename action |
* rename action |
| */ |
*/ |
| if (($fm_action == "rename_directory" && ! $phpWebFileManager_DENY_DIR_RENAME) |
if (($fm_action == "rename_directory" |
| || ($fm_action == "rename_file" && ! $phpWebFileManager_DENY_FILE_RENAME)) { |
&& ! $phpWebFileManager_DENY_DIR_RENAME) |
| |
|| ($fm_action == "rename_file" |
| |
&& ! $phpWebFileManager_DENY_FILE_RENAME)) { |
| if ($fm_new_filename != "" && |
if ($fm_new_filename != "" && |
| (($submit == $phpWebFileManager_LANG['dir_rename'] |
(($submit == $phpWebFileManager_LANG['dir_rename'] |
| && $fm_action == "rename_directory") |
&& $fm_action == "rename_directory") |
|
|
| /* |
/* |
| * create directory and create file actions |
* create directory and create file actions |
| */ |
*/ |
| if (($fm_action == "create_directory" && ! $phpWebFileManager_DENY_DIR_CREATE) |
if (($fm_action == "create_directory" |
| || ($fm_action == "create_file" && ! $phpWebFileManager_DENY_FILE_CREATE)) { |
&& ! $phpWebFileManager_DENY_DIR_CREATE) |
| |
|| ($fm_action == "create_file |
| |
&& ! $phpWebFileManager_DENY_FILE_CREATE)) { |
| if ($fm_new_filename != "" && |
if ($fm_new_filename != "" && |
| (($submit == $phpWebFileManager_LANG['dir_create'] |
(($submit == $phpWebFileManager_LANG['dir_create'] |
| && $fm_action == "create_directory") |
&& $fm_action == "create_directory") |
|
|
| && $fm_action == "create_file") |
&& $fm_action == "create_file") |
| )) { |
)) { |
| if ($fm_action == "create_directory") { |
if ($fm_action == "create_directory") { |
| if (@mkdir($fm_new_filename, $phpWebFileManager_DIR_MODE) == false) |
if (@mkdir($fm_new_filename, $phpWebFileManager_DIR_MODE) |
| |
== false) |
| echo_message($phpWebFileManager_LANG['dir_create_err']); |
echo_message($phpWebFileManager_LANG['dir_create_err']); |
| else |
else |
| echo_message($phpWebFileManager_LANG['dir_create_ok']); |
echo_message($phpWebFileManager_LANG['dir_create_ok']); |
|
|
| if ($phpWebFileManager_FILE_MODE != 0) { |
if ($phpWebFileManager_FILE_MODE != 0) { |
| if (@chmod($fm_new_filename, |
if (@chmod($fm_new_filename, |
| $phpWebFileManager_FILE_MODE) == false) |
$phpWebFileManager_FILE_MODE) == false) |
| echo_message(' '.$phpWebFileManager_LANG['chmod_err']); |
echo_message(' '. |
| |
$phpWebFileManager_LANG['chmod_err']); |
| else |
else |
| echo_message(' '.$phpWebFileManager_LANG['chmod_ok']); |
echo_message(' '. |
| |
$phpWebFileManager_LANG['chmod_ok']); |
| } |
} |
| } |
} |
| } |
} |
|
|
| * file upload action |
* file upload action |
| */ |
*/ |
| if ($fm_action == "upload_file" && ! $phpWebFileManager_DENY_FILE_UPLOAD) { |
if ($fm_action == "upload_file" && ! $phpWebFileManager_DENY_FILE_UPLOAD) { |
| if ($submit == $phpWebFileManager_LANG['file_upload'] && $fm_userfile_name != "") { |
if ($submit == $phpWebFileManager_LANG['file_upload'] |
| |
&& $fm_userfile_name != "") { |
| |
|
| $tmp_target_filename = $target_filename = $fm_userfile_name; |
$tmp_target_filename = $target_filename = $fm_userfile_name; |
| |
|
|
|
| echo "<tr valign=middle>"; |
echo "<tr valign=middle>"; |
| |
|
| echo "<td align=center>" |
echo "<td align=center>" |
| . "<a href=\"$PHP_SELF_origvars_ue" . "fm_dir=$fm_dir_ue..\">" |
. "<a href=\"$PHP_SELF_origvars_ue" . "fm_dir=$fm_dir_ue..\">" |
| . "<img alt=\"" . $phpWebFileManager_LANG['back'] |
. "<img alt=\"" . $phpWebFileManager_LANG['back'] |
| . "\" border=0 src=\"icons/back.gif\"></a>" . "</td>"; |
. "\" border=0 src=\"icons/back.gif\"></a>" . "</td>"; |
| |
|
| echo "<td width=\"100%\" colspan=\"4\">" |
echo "<td width=\"100%\" colspan=\"4\">" |
| . "<a href=\"$PHP_SELF_origvars_ue" . "fm_dir=$fm_dir_ue..\">" |
. "<a href=\"$PHP_SELF_origvars_ue" . "fm_dir=$fm_dir_ue..\">" |
| . "(" . $phpWebFileManager_LANG['parent_dir'] . ")</a>" |
. "(" . $phpWebFileManager_LANG['parent_dir'] . ")</a>" |
| . "</td>"; |
. "</td>"; |
| |
|
| echo "</tr>\n"; |
echo "</tr>\n"; |
| |
|
|
|
| */ |
*/ |
| |
|
| $rename_column = ! $phpWebFileManager_DENY_DIR_RENAME |
$rename_column = ! $phpWebFileManager_DENY_DIR_RENAME |
| || ! $phpWebFileManager_DENY_FILE_RENAME; |
|| ! $phpWebFileManager_DENY_FILE_RENAME; |
| $delete_column = ! $phpWebFileManager_DENY_DIR_REMOVE |
$delete_column = ! $phpWebFileManager_DENY_DIR_REMOVE |
| || ! $phpWebFileManager_DENY_FILE_DELETE; |
|| ! $phpWebFileManager_DENY_FILE_DELETE; |
| $view_column = ! $phpWebFileManager_DENY_DIR_ENTER |
$view_column = ! $phpWebFileManager_DENY_DIR_ENTER |
| || ! $phpWebFileManager_DENY_FILE_VIEW; |
|| ! $phpWebFileManager_DENY_FILE_VIEW; |
| $last_row = ! $phpWebFileManager_DENY_DIR_CREATE |
$last_row = ! $phpWebFileManager_DENY_DIR_CREATE |
| || ! $phpWebFileManager_DENY_FILE_CREATE |
|| ! $phpWebFileManager_DENY_FILE_CREATE |
| || ! $phpWebFileManager_DENY_FILE_UPLOAD; |
|| ! $phpWebFileManager_DENY_FILE_UPLOAD; |
| |
|
| /* Two steps for() cyclus. */ |
/* Two steps for() cyclus. */ |
| /* One for directories and one for files. */ |
/* One for directories and one for files. */ |
|
|
| $entry_he = htmlentities($entry); |
$entry_he = htmlentities($entry); |
| $entry_ue = htmlentities(rawurlencode($entry)); |
$entry_ue = htmlentities(rawurlencode($entry)); |
| if ($entry != '.' && $entry != '..' && |
if ($entry != '.' && $entry != '..' && |
| (($k == 0 && is_dir($entry))||($k == 1 && ! is_dir($entry)))) { |
(($k == 0 && is_dir($entry))||($k == 1 && ! is_dir($entry)))) { |
| |
|
| echo "<tr valign=middle"; |
echo "<tr valign=middle"; |
| $line++; |
$line++; |
|
|
| echo "<td><small>"; |
echo "<td><small>"; |
| if (! $phpWebFileManager_DENY_FILE_RENAME) |
if (! $phpWebFileManager_DENY_FILE_RENAME) |
| echo "[<a href=\"$PHP_SELF_origvars_ue" |
echo "[<a href=\"$PHP_SELF_origvars_ue" |
| . "fm_dir=$fm_dir_ue&fm_action=confirm_rename_file" |
. "fm_dir=$fm_dir_ue&" |
| |
. "fm_action=confirm_rename_file" |
| . "&fm_filename=$entry_ue\">" |
. "&fm_filename=$entry_ue\">" |
| . $phpWebFileManager_LANG['file_rename'] |
. $phpWebFileManager_LANG['file_rename'] |
| . "</a>]"; |
. "</a>]"; |
|
|
| echo "<td><small>"; |
echo "<td><small>"; |
| if (! $phpWebFileManager_DENY_FILE_DELETE) |
if (! $phpWebFileManager_DENY_FILE_DELETE) |
| echo "[<a href=\"$PHP_SELF_origvars_ue" |
echo "[<a href=\"$PHP_SELF_origvars_ue" |
| ."fm_dir=$fm_dir_ue&fm_action=confirm_delete_file" |
. "fm_dir=$fm_dir_ue" |
| |
. "&fm_action=confirm_delete_file" |
| . "&fm_filename=$entry_ue\">" |
. "&fm_filename=$entry_ue\">" |
| . $phpWebFileManager_LANG['file_delete'] |
. $phpWebFileManager_LANG['file_delete'] |
| . "</a>]"; |
. "</a>]"; |
|
|
| $url = parse_url("http://${HTTP_HOST}${REQUEST_URI}"); |
$url = parse_url("http://${HTTP_HOST}${REQUEST_URI}"); |
| $url['path'] = get_path_without_scriptname($url) |
$url['path'] = get_path_without_scriptname($url) |
| . (strlen($phpWebFileManager_LINKS_PREFIX) > 0 |
. (strlen($phpWebFileManager_LINKS_PREFIX) > 0 |
| ? $phpWebFileManager_LINKS_PREFIX |
? $phpWebFileManager_LINKS_PREFIX |
| : $phpWebFileManager_ROOT_DIR) |
: $phpWebFileManager_ROOT_DIR) |
| . $fm_dir_he . $entry_he; |
. $fm_dir_he . $entry_he; |
| unset($url['query']); |
unset($url['query']); |
| unset($url['fragment']); |
unset($url['fragment']); |
|
|
| echo "<td><small>"; |
echo "<td><small>"; |
| if (! $phpWebFileManager_DENY_FILE_VIEW) |
if (! $phpWebFileManager_DENY_FILE_VIEW) |
| echo "[<a target=_blank href=\"" |
echo "[<a target=_blank href=\"" |
| . glue_url($url) . "\">" |
. glue_url($url) . "\">" |
| . $phpWebFileManager_LANG['file_view'] |
. $phpWebFileManager_LANG['file_view'] |
| . "</a>]"; |
. "</a>]"; |
| echo "</small></td>"; |
echo "</small></td>"; |
| } |
} |
| } |
} |
|
|
| echo "<td><small>"; |
echo "<td><small>"; |
| if (! $phpWebFileManager_DENY_DIR_RENAME) |
if (! $phpWebFileManager_DENY_DIR_RENAME) |
| echo "[<a href=\"$PHP_SELF_origvars_ue" |
echo "[<a href=\"$PHP_SELF_origvars_ue" |
| . "fm_dir=$fm_dir_ue" |
. "fm_dir=$fm_dir_ue" |
| . "&fm_action=confirm_rename_directory" |
. "&fm_action=confirm_rename_directory" |
| . "&fm_filename=$entry_ue\">" |
. "&fm_filename=$entry_ue\">" |
| . $phpWebFileManager_LANG['dir_rename'] |
. $phpWebFileManager_LANG['dir_rename'] |
| . "</a>]"; |
. "</a>]"; |
| echo "</small></td>"; |
echo "</small></td>"; |
| } |
} |
| |
|
|
|
| echo "<td><small>"; |
echo "<td><small>"; |
| if (! $phpWebFileManager_DENY_DIR_REMOVE) |
if (! $phpWebFileManager_DENY_DIR_REMOVE) |
| echo "[<a href=\"$PHP_SELF_origvars_ue" |
echo "[<a href=\"$PHP_SELF_origvars_ue" |
| . "fm_dir=$fm_dir_ue" |
. "fm_dir=$fm_dir_ue" |
| . "&fm_action=confirm_remove_directory" |
. "&fm_action=confirm_remove_directory" |
| . "&fm_filename=$entry_ue\">" |
. "&fm_filename=$entry_ue\">" |
| . $phpWebFileManager_LANG['dir_remove'] |
. $phpWebFileManager_LANG['dir_remove'] |
| ."</a>]"; |
."</a>]"; |
| echo "</small></td>"; |
echo "</small></td>"; |
| } |
} |
| |
|
| if ($view_column) { |
if ($view_column) { |
| echo "<td><small>"; |
echo "<td><small>"; |
| if (! $phpWebFileManager_DENY_DIR_ENTER |
if (! $phpWebFileManager_DENY_DIR_ENTER |
| && ! ($phpWebFileManager_DENY_DIR_FOLLOW_SYMLINKS |
&& !($phpWebFileManager_DENY_DIR_FOLLOW_SYMLINKS |
| && is_link($entry))) |
&& is_link($entry))) |
| echo "[<a href=\"$PHP_SELF_origvars_ue" |
echo "[<a href=\"$PHP_SELF_origvars_ue" |
| . "fm_dir=$fm_dir_ue$entry_ue\">" |
. "fm_dir=$fm_dir_ue$entry_ue\">" |
|
|
| |
|
| if (! $phpWebFileManager_DENY_DIR_CREATE) |
if (! $phpWebFileManager_DENY_DIR_CREATE) |
| echo "<br>[<a href=$PHP_SELF_origvars_ue" |
echo "<br>[<a href=$PHP_SELF_origvars_ue" |
| . "fm_dir=$fm_dir_ue" |
. "fm_dir=$fm_dir_ue" |
| . "&fm_action=confirm_create_directory>" |
. "&fm_action=confirm_create_directory>" |
| . $phpWebFileManager_LANG['dir_create'] |
. $phpWebFileManager_LANG['dir_create'] |
| . "</a>]"; |
. "</a>]"; |
| |
|
| if (! $phpWebFileManager_DENY_FILE_CREATE) |
if (! $phpWebFileManager_DENY_FILE_CREATE) |
| echo " [<a href=$PHP_SELF_origvars_ue" |
echo " [<a href=$PHP_SELF_origvars_ue" |
| . "fm_dir=$fm_dir_ue" |
. "fm_dir=$fm_dir_ue" |
| . "&fm_action=confirm_create_file>" |
. "&fm_action=confirm_create_file>" |
| . $phpWebFileManager_LANG['file_create'] |
. $phpWebFileManager_LANG['file_create'] |
| . "</a>]"; |
. "</a>]"; |
| |
|
| if (! $phpWebFileManager_DENY_FILE_UPLOAD) |
if (! $phpWebFileManager_DENY_FILE_UPLOAD) |
| echo " [<a href=$PHP_SELF_origvars_ue" |
echo " [<a href=$PHP_SELF_origvars_ue" |
| . "fm_dir=$fm_dir_ue" |
. "fm_dir=$fm_dir_ue" |
| . "&fm_action=confirm_upload_file>" |
. "&fm_action=confirm_upload_file>" |
| . $phpWebFileManager_LANG['file_upload'] |
. $phpWebFileManager_LANG['file_upload'] |
| . "</a>]"; |
. "</a>]"; |
| |
|
| echo "</small></td></tr>"; |
echo "</small></td></tr>"; |
| } |
} |