120 |
$gblImages = array( ".jpg",".jpeg",".gif",".png",".ico", |
$gblImages = array( ".jpg",".jpeg",".gif",".png",".ico", |
121 |
".bmp",".xbm") ; |
".bmp",".xbm") ; |
122 |
|
|
123 |
|
// Where are users? (by default in .htusers file) |
124 |
|
$gblUsers = "htusers_file"; |
125 |
|
|
126 |
////////////////////////////////////////////////////////////////// |
////////////////////////////////////////////////////////////////// |
127 |
|
|
128 |
function StartHTML($title,$text="") { |
function StartHTML($title,$text="") { |
697 |
<?php |
<?php |
698 |
} |
} |
699 |
|
|
700 |
|
function plural($name,$count) { |
701 |
|
$out="$count $name"; |
702 |
|
if ($count > 1) { |
703 |
|
$out.="s"; |
704 |
|
} |
705 |
|
return $out; |
706 |
|
} |
707 |
|
|
708 |
// output subdirs |
// output subdirs |
709 |
if (sizeof($dirList) > 0) { |
if (sizeof($dirList) > 0) { |
710 |
sort($dirList) ; |
sort($dirList) ; |
711 |
?> |
?> |
712 |
|
|
713 |
<TR><TD></TD><TD COLSPAN=2 CLASS=TOP>DIRECTORY NAME</TD><TD COLSPAN=3 CLASS=TOP>DIRECTORY NOTE</TR> |
<TR><TD></TD><TD COLSPAN=2 CLASS=TOP>DIRECTORY NAME (<?= plural("dir",sizeof($dirList)) ?>)</TD><TD COLSPAN=3 CLASS=TOP>DIRECTORY NOTE</TR> |
714 |
|
|
715 |
<?php |
<?php |
716 |
while (list($key,$dir) = each($dirList)) { |
while (list($key,$dir) = each($dirList)) { |
735 |
|
|
736 |
<TR><TD></TD><TD COLSPAN=5><HR><B><?= $webRoot . $relDir ?> |
<TR><TD></TD><TD COLSPAN=5><HR><B><?= $webRoot . $relDir ?> |
737 |
</B></TD></TR> |
</B></TD></TR> |
738 |
<TR><TD></TD><TD CLASS=TOP>DOCUMENT NAME</TD> |
<TR><TD></TD><TD CLASS=TOP>DOCUMENT NAME (<?= plural("file",sizeof($fileList)) ?>)</TD> |
739 |
<TD><?= $gblIcon("blank").$gblIcon("blank") ?></TD> |
<TD><?= $gblIcon("blank").$gblIcon("blank") ?></TD> |
740 |
<TD CLASS=TOP>NOTE</TD> |
<TD CLASS=TOP>NOTE</TD> |
741 |
<TD CLASS=TOP>LAST UPDATE</TD><TD CLASS=TOP>FILE SIZE</TD></TR> |
<TD CLASS=TOP>LAST UPDATE</TD><TD CLASS=TOP>FILE SIZE</TD></TR> |
867 |
<NOBR>NAME <INPUT TYPE="TEXT" NAME="FN" SIZE=14> |
<NOBR>NAME <INPUT TYPE="TEXT" NAME="FN" SIZE=14> |
868 |
<INPUT TYPE="HIDDEN" NAME="POSTACTION" VALUE="CREATE"> |
<INPUT TYPE="HIDDEN" NAME="POSTACTION" VALUE="CREATE"> |
869 |
<INPUT TYPE="HIDDEN" NAME="DIR" VALUE="<?= $relDir ?>"> |
<INPUT TYPE="HIDDEN" NAME="DIR" VALUE="<?= $relDir ?>"> |
870 |
<INPUT TYPE="SUBMIT" VALUE="CREATE"></NOBR> |
<INPUT TYPE="SUBMIT" VALUE="CREATE" NAME="CREATE"> |
871 |
|
</NOBR> |
872 |
<NOBR>OR <A HREF="<?= $self ?>?A=U&D=<?= urlencode($relDir) ?>">UPLOAD</A> A FILE |
<NOBR>OR <A HREF="<?= $self ?>?A=U&D=<?= urlencode($relDir) ?>">UPLOAD</A> A FILE |
873 |
</NOBR> |
</NOBR> |
874 |
</TD></TR> |
</TD></TR> |
988 |
$msg=fgets($note,4096); |
$msg=fgets($note,4096); |
989 |
fclose($note); |
fclose($note); |
990 |
} |
} |
991 |
return StripSlashes($msg); |
return HtmlSpecialChars(StripSlashes($msg)); |
992 |
|
|
993 |
} |
} |
994 |
|
|
1071 |
|
|
1072 |
function safe_rename($fromdir,$fromfile,$tofile) { |
function safe_rename($fromdir,$fromfile,$tofile) { |
1073 |
function try_rename($from,$to) { |
function try_rename($from,$to) { |
1074 |
print "$from -> $to\n"; |
# print "$from -> $to\n"; |
1075 |
if (file_exists($from) && is_writeable(dirname($to))) { |
if (file_exists($from) && is_writeable(dirname($to))) { |
1076 |
rename($from,$to); |
rename($from,$to); |
1077 |
} |
} |
1087 |
$todir=dirname($to); |
$todir=dirname($to); |
1088 |
$tofile=basename($to); |
$tofile=basename($to); |
1089 |
|
|
1090 |
print "<pre>$fromdir / $fromfile -> $todir / $tofile\n\n"; |
# print "<pre>$fromdir / $fromfile -> $todir / $tofile\n\n"; |
1091 |
|
|
1092 |
try_rename("$fromdir/$fromfile","$todir/$tofile"); |
try_rename("$fromdir/$fromfile","$todir/$tofile"); |
1093 |
try_dir("$todir/.log"); |
try_dir("$todir/.log"); |
1178 |
// creation if password not yet set. |
// creation if password not yet set. |
1179 |
if ($STYLE == "get") { CSS() ; exit ; } |
if ($STYLE == "get") { CSS() ; exit ; } |
1180 |
|
|
1181 |
$htusers_file=dirname($SCRIPT_FILENAME)."/.htusers"; |
$fsScriptDir = dirname($SCRIPT_FILENAME) ; |
1182 |
if (! file_exists($htusers_file)) { |
// i.e. /home/httpd/html/docman |
1183 |
if (is_writeable(dirname($SCRIPT_FILENAME))) { |
|
1184 |
$htusers=fopen($htusers_file,"a+"); |
// read user-defined configuration |
1185 |
fputs($htusers,"# Change owner of $htusers_file to root !!\n"); |
if (file_exists("$fsScriptDir/.docman.conf")) { |
1186 |
fputs($htusers,"demo:full name:[md5_hash|auth_*]:e-mail\n"); |
include("$fsScriptDir/.docman.conf"); |
|
fclose($htusers); |
|
|
Error("Proto user file created!","Please edit <tt>$htusers_file</tt> and set it correct permissions (<B>not writable by web server as it is now!</b>). You can add users using <tt>adduser.pl</tt> script!"); |
|
|
exit; |
|
|
} else { |
|
|
Error("Can't create proto user file!","Please make directory <tt>".dirname($htusers_file)."</tt> writable or create <tt>.htusers</tt> file by hand using <tt>adduser.pl</tt> script!"); |
|
|
exit; |
|
|
} |
|
1187 |
} |
} |
1188 |
$htusers=fopen($htusers_file,"r"); |
|
1189 |
while($user = fgetcsv($htusers,255,":")) { |
// where do we get users from? |
1190 |
if ($user[0] == $GLOBALS["PHP_AUTH_USER"]) { |
if (file_exists("$gblIncDir/$gblUsers.php")) { |
1191 |
$gblUserName=$user[1]; |
include("$gblIncDir/$gblUsers.php"); |
1192 |
$gblPw=$user[2]; |
} else { |
1193 |
if (substr($gblPw,0,5) == "auth_" && file_exists("$gblIncDir/$gblPw.php")) { |
Error("Configuration error","Can't find user handling module at <tt>$gblIncDir/$gblUsers.php</tt> ! Please fix <tt>$fsScriptDir/.docman.conf</tt>"); |
|
require("$gblIncDir/$gblPw.php"); |
|
|
if ($gblPw($user)) { |
|
|
$gblPw=md5($PHP_AUTH_USER.$PHP_AUTH_PW); |
|
|
} else { |
|
|
$gblPw="error".md5($PHP_AUTH_USER.$PHP_AUTH_PW); |
|
|
} |
|
|
} |
|
|
$gblEmail=$user[3]; |
|
|
continue ; |
|
|
} |
|
1194 |
} |
} |
|
fclose($htusers); |
|
1195 |
|
|
1196 |
// authentication failure |
// authentication failure |
1197 |
if ( md5($PHP_AUTH_USER.$PHP_AUTH_PW) != $gblPw || |
if ( md5($PHP_AUTH_USER.$PHP_AUTH_PW) != $gblPw || |
1223 |
$relScriptDir = dirname($SCRIPT_NAME) ; |
$relScriptDir = dirname($SCRIPT_NAME) ; |
1224 |
// i.e. /docman |
// i.e. /docman |
1225 |
|
|
|
$fsScriptDir = dirname($SCRIPT_FILENAME) ; |
|
|
// i.e. /home/httpd/html/docman |
|
|
|
|
1226 |
// start on server root |
// start on server root |
1227 |
// $gblFsRoot = substr($fsScriptDir,0, strlen($fsScriptDir)-strlen($relScriptDir)) ; |
// $gblFsRoot = substr($fsScriptDir,0, strlen($fsScriptDir)-strlen($relScriptDir)) ; |
1228 |
// or on script root |
// or on script root |
1241 |
|
|
1242 |
$FN=stripSlashes($FN); |
$FN=stripSlashes($FN); |
1243 |
|
|
|
if (file_exists("$fsScriptDir/.docman.conf")) { |
|
|
include("$fsScriptDir/.docman.conf"); |
|
|
} |
|
1244 |
|
|
1245 |
switch ($POSTACTION) { |
switch ($POSTACTION) { |
1246 |
case "UPLOAD" : |
case "UPLOAD" : |