PDA

Просмотр полной версии : php shell


lomerok
21.05.2008, 13:29
Как подкоректировать этот скрипт чтобы он открывал папки ?


<?php
$o=opendir('./');
$op=$_GET['name'];
print "<center><table border=3><tr><td><h1>Select File</h1>";
while ($r=readdir($o))
{
print "<a href=\"?name=";
print $r;
print "\">$r</a>";
print "<br>";
}
print "</td>";
if (isset($op))
{
print "<td><h1>File Edit</h1> <form method=\"POST\">";
print "<br><br><textarea cols=\"50\" rows=\"20\" name=\"text\">";
print htmlspecialchars(file_get_contents($op));
print "</textarea>";
print "<input type=\"submit\" value=\"OK\"></form></td></tr></table></center>";
$ft=$_POST['text'];
if(isset($ft))
{
$fo=fopen($op,"w");
fputs ($fo,$ft);
die ("ok");

}
}
?>

Naydav
21.05.2008, 18:04
function getFileInDir($path)
{
$handle = opendir($path);
if($path!='./')$path .= "/";
while (false !== ($file = readdir($handle)))
$out .= '<a href="?name=' . $path . $file . '">' . $file . '</a></br>' . "\n";
return $out;
}

$object = isset($_GET['name']) ? $_GET['name'] : './';

if(is_dir($object))
{
echo getFileInDir($object);
}
else
{
echo htmlspecialchars(file_get_contents($object));
}

Просто выводит контент, ареа и таблицы добавь сам

Naydav
21.05.2008, 18:28
function getFileInDir($path)
{
$handle = opendir($path);
if($path!='./')$path .= "/";
while (false !== ($file = readdir($handle)))
$out .= '<a href="?name=' . $path . $file . '">' . $file . '</a></br>' . "\n";
return $out;
}

echo "<center>
<table border=3 width=\"100%\">
<tr>";

$object = isset($_GET['name']) ? $_GET['name'] : './';
if(is_dir($object))
echo '<td width="200"><h1>Select Edit</h1>' . getFileInDir($object) . '</td><td>&nbsp;</td>';

else
echo '
<td width="200"><a href="javascript:history.go(-1);">Cancel</a></td>
<td><h1>File Edit</h1>
<form method="POST">
<textarea cols="50" rows="20" name="text">' . htmlspecialchars(file_get_contents($object)) . '</textarea>
<input type="submit" value="OK">
</form>
</td>';

echo '</tr>
</table>
</center>';

lomerok
21.05.2008, 20:41
что означает знак вопроса в php ???

Naydav
21.05.2008, 21:10
1) Пожалуйста :)
2) "?" в случае $object = isset($_GET['name']) ? $_GET['name'] : './';
Это сокращенно от

if(isset($_GET['name']))
$object = $_GET['name'] ;
else
$object = './';

Не будешь спрашивать, почему нет фигурных скобок? :)