Version: 1.02

Type: Full Script

Category: File Management

License: GNU General Public License

Description: Creates and edits files and directories. Useful for maintaining pages via web. Simple interface. To use, drop the script into your web site's root.



#!/usr/bin/php -q
<?php
if ($path == null)
$path=".";

if ($file == "undefined")
$file = null;

$path = urldecode($path);
$file = urldecode($file);


?>
<html>
<head>
<META HTTP-EQUIV="Expires" CONTENT="-1">
<title>File Browser <?php if ($file == null) echo $path; else echo $file; ?></title>
</head>
<body>

<?php

function displaydir()
{
global $path, $pw;

$dir = opendir ($path);
while ($file = readdir($dir)):
if (is_dir($file)):
if ($file == "."):
echo ('<b><A HREF="javascript:go(\''. urlencode($path) .'\');">'.$file.'/</a></b><br>');
elseif ($file == ".."):
echo ('<b><A HREF="javascript:go(\'' . urlencode(dirname($path)) .'\');">'.$file.'/</a></b><br>');
else:
echo ('<b><A HREF="javascript:go(\'' . urlencode($path . '/'. $file) .'\');">'.$file.'/</a></b><br>');
endif;
else:
echo ('<A HREF="javascript:go(\'' . urlencode($path) . '\',\''. urlencode($path . '/'. $file) .'\');">'.$file.'</a><br>');
endif;
endwhile;
closedir($dir);
echo ('<input type="radio" name="action" value="view" checked>View<input type="radio" name="action" value="edit">Edit<input type="radio" name="action" value="delete">Delete<input type="radio" name="action" value="rename">Rename<input type="radio" name="action" value="copy">Copy<br>');
echo ('<input type="text" name="text1"><input type="submit" name="new" value="New File"><input type="submit" name="new" value="New Dir"><br>');
echo ('Upload:<br>');
echo ('<input type="file" name="userfile">');
echo ('<input type="submit" name="action" value="upload">');
}

function displayfile()
{
global $file, $action, $area, $path,$pw;

echo ('<b><A HREF="javascript:go(\''. urlencode($path) .'\');">'.$path.'</a></b><br>');

if ($action != "view")
{
echo ('<textarea cols=80 rows=25 name="area" wrap=off>'.htmlentities(join( '', file( $file))) .'</textarea>');
echo ('<input type="submit" value="save" name="action">');
}
else
{
echo ('<pre>');
$fcontents = file( $file );
while ( list( $line_num, $line ) = each( $fcontents ) ) {
echo "<b>$line_num</b>\t" . htmlspecialchars( $line );
}
echo ('</pre>');
echo ('<input type="submit" value="edit" name="action">');
}


}

if ($pw != "password")
{
echo ('<form action="'.getenv("SCRIPT_URL").'" method="POST">');
echo('Password (try "password"):<INPUT type="text" name="pw">' );
echo('<INPUT type="submit">');
echo('</form></body></html>');
exit;
}

echo ('<script language="javascript">function go(p,f){ document.forms[0].path.value=p; document.forms[0].file.value=f;document.forms[0].submit();}</script>');
echo ('<form ENCTYPE="multipart/form-data" action="'.getenv("SCRIPT_URL").'" method="POST">');
echo ('<input type="hidden" name="file" value="'.$file.'">');
echo ('<input type="hidden" name="path" value="'.$path.'">');
echo ('<input type="hidden" name="pw" value="'.$pw.'">');

if ($action == "upload")
{
if ($userfile != null)
copy($userfile, $path.'/'.basename(str_replace('\\','/',stripslashes($userfile_name))));
}
else
if ($new == "New File")
{
if(!fopen($path . '/'. $text1, "w")) echo ("Couldn't create $text1<br>");
}
else if ($new == "New Dir")
{
if(!mkdir($path . '/' .$text1, 0777)) echo ("Couldn't create $text1<br>");
}
else
if ($action == "save")
{
$f = fopen($file, "w");
fputs($f, stripslashes($area));
fclose($f);
}

if ($action == "delete")
{
if ($file != null)
{
if(!unlink($file)) echo "Could not delete $file<br>";
}
else
{
if(!rmdir($path)) echo "Could not delete $path<br>";
$path = dirname($path);
}
}
else
if ($action == "copy")
{
if ($file != null)
{
if(!copy($file, $path .'/'.$text1)) echo("Could not copy $file to $text1<br>");
}
else
{
if (!copy($path, $path .'/'.$text1)) echo("Could not copy $path to $text1<br>");
}
}
else
if ($action == "rename")
{
if ($file != null)
{
if(!rename($file, $path .'/'.$text1)) echo("Could not rename $file to $text1<br>");
}
else
{
if(!rename($path, $path .'/'.$text1)) echo("Could not rename $path to $text1<br>");
}
}

if ($file != null && ($action =="view" || $action == "edit" || $action == "save"))
{
displayfile();
}
else
displaydir();
?>
</form>
</body>
</html>