--- docman.php 2000/08/04 10:07:04 1.6 +++ docman.php 2000/08/04 10:20:22 1.8 @@ -1070,6 +1070,23 @@ ////////////////////////////////////////////////////////////////// +function redir_to_url($url) { + $url=urlencode(StripSlashes("$url")); + $url=str_replace("%2F","/",$url); + $url=str_replace("+","%20",$url); + Header("Location: $url"); +} + +////////////////////////////////////////////////////////////////// + +function safe_rename($from,$to) { + if (file_exists($from) && is_writable(dirname($to))) { + rename($from,$to); + } +} + +////////////////////////////////////////////////////////////////// + // MAIN PROGRAM // ============ // query parameters: capital letters @@ -1267,10 +1284,10 @@ if ( $CONFIRM != "on" ) break ; Logit("$fsDir/$FN","renamed $FN to $NEWNAME"); - rename("$fsDir/$FN","$fsDir/$NEWNAME"); - rename("$fsDir/.log/$FN","$fsDir/.log/$NEWNAME"); - rename("$fsDir/.note/$FN","$fsDir/.note/$NEWNAME"); - rename("$fsDir/.lock/$FN","$fsDir/.lock/$NEWNAME"); + safe_rename("$fsDir/$FN","$fsDir/$NEWNAME"); + safe_rename("$fsDir/.log/$FN","$fsDir/.log/$NEWNAME"); + safe_rename("$fsDir/.note/$FN","$fsDir/.note/$NEWNAME"); + safe_rename("$fsDir/.lock/$FN","$fsDir/.lock/$NEWNAME"); break ; @@ -1325,8 +1342,7 @@ case "Co" : // checkout Lock("$gblFsRoot/$relDir/$F"); - $url="$relDir/$F"; $url=str_replace(" ","%20",$url); - Header("Location: $url"); + redir_to_url("$relDir/$F"); exit; case "Ci" : // upload && update to $relDir @@ -1341,8 +1357,7 @@ case "V" : // view Log("viewed"); - $url="$relDir/$F"; $url=str_replace(" ","%20",$url); - Header("Location: $url"); + redir_to_url("$relDir/$F"); exit; }