%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,mail,shell_exec,system,proc_open,popen,ini_alter,dl,proc_close,curl_exec,curl_multi_exec,readfile,parse_ini_file,escapeshellarg,escapeshellcmd,show_source,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,mail,php_uname,phpinfo MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/smf/ |
Upload File : |
#!/usr/bin/perl # chooser.cgi # Outputs HTML for a frame-based path chooser require './smf-lib.pl'; &init_config(); &ReadParse(); if (defined($in{'path'})) { $path = $in{'path'}; # +'s get converted to spaces, convert back $path =~ s/\s/+/g; if ($path =~ /^(\/.*)$/) { # path entered is valid $path=$1; } } else { $path="/"; } $add = int($in{'add'}); $frame = $in{'frame'}; if ($frame eq "" ) { $frame = 0; } if ($in{'frame'} == 0) { # base frame &PrintHeader(); print "<title>$text{'path_chooser_title'}</title>\n"; print "<frameset rows='*,50'>\n"; print "<frame marginwidth=10 marginheight=10 name=topframe ", "src=\"path_chooser.cgi?frame=1&path=$path&add=$add\">\n"; print "<frame marginwidth=10 marginheight=10 name=bottomframe ", "src=\"path_chooser.cgi?frame=2&add=$add&path=$path\"", "scrolling=no>\n"; print "</frameset>\n"; } elsif ($in{'frame'} == 1) { # List of svcs &header(); print <<EOF; <script> function pathclick(path, expand) { top.bottomframe.document.forms[0].path.value = path; if (expand == 1) { location ="path_chooser.cgi?frame=1&add=$add&path="+path; } } </script> EOF print "<b>", &text('path_chooser_path', $path),"</b>\n"; print "<table>\n"; # get file/dir list if (opendir(CURRDIR, $path)) { # remove extra trailing "/" if there. $fixed_filepath = $path; $fixed_filepath =~ s/(.*)\/$/$1/; foreach $f (readdir(CURRDIR)) { if ($f eq ".") { # skip } elsif ($f eq "..") { $uplevel = "$fixed_filepath"; if ($uplevel =~ /^((\/[^\/]*)*)\/[^\/]*$/) { $uplevel = $1; } if ($uplevel eq "") { $uplevel = "/"; } $uplevel = &urlize($uplevel); push(@pathlist, "<td><a href='javascript:pathclick(\"$uplevel\",1)'><img border=0 width=30 height=30 src=\"images/uplevel.gif\"></a></td><td><a href='javascript:pathclick(\"$uplevel\",1)'>..</a></td>"); } else { $expand = 0; $img = "images/file.gif"; # is this a file or a dir? if (opendir(DISCARD, "$fixed_filepath/$f")) { close(DISCARD); $expand = 1; $img = "images/dir.gif"; } $newpath = &urlize("$fixed_filepath/$f"); push(@pathlist, "<td><a href='javascript:pathclick(\"$newpath\",$expand)'><img border=0 width=30 height=30 src=$img></a></td><td><a href='javascript:pathclick(\"$newpath\",$expand)'>$f</a></td>"); } } closedir(CURRDIR); } foreach $p (@pathlist) { print "<tr>\n"; print "$p"; print "</tr>\n"; } print "</table>\n"; &footer(); } elsif ($in{'frame'} == 2) { # Current path and OK/cancel buttons &header(); print <<EOF; <script> function pathchosen() { if ($add == 0) { top.opener.ifield.value = "file://localhost"+document.forms[0].path.value; } else { if (top.opener.ifield.value != "") { top.opener.ifield.value += " "; } top.opener.ifield.value += "file://localhost"+document.forms[0].path.value; } top.close(); } </script> EOF print "<table width=100%><tr><td>\n"; print "<form onSubmit='pathchosen(); return false'>\n"; print "<input name=path size=45 value=\"\">\n"; print "<input type=\"submit\" value=\"$text{'path_chooser_ok'}\">\n"; print "</form>\n"; print "</td><td>\n"; print "<form>"; print "<input type=\"button\" onClick='top.close()' value=\"$text{'path_chooser_cancel'}\">"; print "</form>"; print "</td></tr></table></form>\n"; &footer(); }