Просмотр полной версии : вывод результатов из Php
Есть два куска кода:
1 кусок кода читает содержимое файлов
<?php
$filename = "/var/www/html/index.php";
$fp = fopen($filename, 'r');
$buf = fread($fp, filesize($filename));
fclose($fp);
echo $buf;
?>
Второй кусок кода выводит содержимое директории
<?php
$dir = '/var/www/';
$files = scandir($dir);
print_r($files);
?>
Как можно поместить их в один файл и методом post создавать запросы, чтобы был вывод на экран?
Например, если я хочу просмотреть директорию - я ввожу адрес. нажимаю готово и наблюдаю ответ
Тоже самое должн происходить и с выводом содержимого файла?
Могу предположить чисто теоретический, что запросы будут методом POST через разделение взаимосвязанности функции.
brasco2k
24.09.2008, 20:22
Во первых, не:
<?php
$filename = "/var/www/html/index.php";
$fp = fopen($filename, 'r');
$buf = fread($fp, filesize($filename));
fclose($fp);
echo $buf;
?>
а:
<?php
$buf = file_get_contents('/var/www/html/index.php');
echo $buf;
?>
а по теме, $_POST это массив:
<?php
foreach($_POST as $key)
{
echo $key.'<br>';
}
file_put_contents('post.txt',$_POST);
?>
если чесна не понял вопроса
Во первых, не:
PHP код:
<?php
$filename = "/var/www/html/index.php";
$fp = fopen($filename, 'r');
$buf = fread($fp, filesize($filename));
fclose($fp);
echo $buf;
?>
а:
PHP код:
<?php
$buf = file_get_contents('/var/www/html/index.php');
echo $buf;
?>
А если файл весит 500 мб?
Спасибо.
Нужно эти 2 куска кода запихать в один файл.
Что-то типа веб-шелла на php но лишь с двумя возможностями:
1) вывод список файлов и папок в данной директории, например "/var/www/html/'"
2) вывод исходного текста, например из index.php
brasco2k
24.09.2008, 20:37
А если файл весит 500 мб?
1. PHP не позволит
2. Кто такие файлы грузит?
Что то типа того... о безопасности позаботься сам...
<form action="" method="post">
Позырить файл <input type="text" name="fail"> <input type="submit" name="ok1"></form>
<form action="" method="post">
Глянуть директорию <input type="text" name="dir"> <input type="submit" name="ok2"></form>
<?php
if($_POST['fail'] and $_POST['ok1']){
$filename = $_POST['fail'];
$fp = fopen($filename, 'r');
$buf = fread($fp, filesize($filename));
fclose($fp);
echo "<textarea rows=20 cols=100>" . $buf . "</textarea>";
}
if($_POST['dir'] and $_POST['ok2']){
$dir = $_POST['dir'];
$files = scandir($dir);
echo "<textarea rows=20 cols=100>";
foreach($files as $file){
echo $file . "\r\n";
}
echo "</textarea>";
}
?>
Работает :) Только когда просишь показать внутренности файла "index.php " - идет исполнение за рамками поля) ну да ладно)
поменяй
echo "<textarea rows=20 cols=100>" . $buf . "</textarea>";
на
echo "<textarea rows=20 cols=100>" . htmlspecialchars($buf) . "</textarea>";
а так я на скорую руку набросал.. добавь еще проверку на существование файлов и директорий ..
Доработал чуть-чуть скрипт, и возникли вопросы.
1) Когда я выбираю несуществующий файл, отображаются ошибки и пустое поле.
Как это можно пофиксить?
2) как можно сохранить строку директории? когда я перемещаюсь по серверу, мне приходится вручную вбивать каталоги:
etc, /etc/home/, /etc/home/pornostar/index.php/
Как можно сохранить строку директории?
3) В коде есть ненужный кусок
if (file_exists($_POST['fail']))
{
}
else
{
echo '<div align="center"><h1>файл не найден</h1></div>';
}
Если файл найден- он ничего не пишет. Если же файл отсуствует, выводится сообщение об ошибке.
Как можно переписать код, чтобы он выводится в "поле" и только при значении, что файл не найдет?
Я впервые сегодня написал простейшее выражение, не пугайтесь, что коряво написал.
Впервой мне :rolleyes:
Сам скрипт
<form action="" method="post">
Позырить файл <input type="text" name="fail"> <input type="submit" name="ok1"></form>
<form action="" method="post">
Глянуть директорию <input type="text" name="dir"> <input type="submit" name="ok2"></form>
<form action="" method="post">
Удалить файл <input type="text" name="del"> <input type="submit" name="ok3"></form>
<?php
if($_POST['fail'] and $_POST['ok1']){
$filename = $_POST['fail'];
$fp = fopen($filename, 'r');
if (file_exists($_POST['fail']))
{
}
else
{
echo '<div align="center"><h1>файл не найден</h1></div>';
}
$file_exists = $buf;
$buf = fread($fp, filesize($filename));
fclose($fp);
echo "<textarea rows=20 cols=100>" . htmlspecialchars($buf) . "</textarea>";
}
if($_POST['dir'] and $_POST['ok2']){
$dir = $_POST['dir'];
$files = scandir($dir);
echo "<textarea rows=20 cols=100>";
foreach($files as $file){
echo $file . "\r\n";
}
echo "</textarea>";
}
if($_POST['del'] and $_POST['ok3']){
$del = $_POST['del'];
$uplink = unlink($_POST['del']);
}
?>
<br>
<br>
<script language="javascript">
var name = navigator.appName;
var vers = navigator.appVersion;
var code = navigator.appCodeName;
var where = document.referrer;
var platform = navigator.platform;
document.write(
'Броузер: ' + name +
'<br>Версия броузера: ' + vers +
'<br>Кодовое название броузера: ' + code +
'<br>Вы зашли из: ' + where +
'<br>Платформа: ' + platform
);
</script>
<?php
if(!empty($_POST['fail'])) $fail = $_POST['fail'];
else $fail = false;
if(!empty($_POST['dir'])) $dir = $_POST['dir'];
else $dir = false;
?>
<form action="" method="post">
Позырить файл <input type="text" name="fail" value="<?php echo $fail ?>"> <input type="submit" name="ok1"></form>
<form action="" method="post">
Глянуть директорию <input type="text" name="dir" value="<?php echo $dir ?>"> <input type="submit" name="ok2"></form>
<form action="" method="post">
Удалить файл <input type="text" name="del"> <input type="submit" name="ok3"></form>
<?php
if($fail and $_POST['ok1']) {
$filename = $fail;
$fp = fopen($filename, 'r');
if (!@file_exists($fail)) echo '<div align="center"><h1>файл не найден</h1></div>';
$file_exists = $buf;
$buf = fread($fp, filesize($filename));
fclose($fp);
echo "<textarea rows=20 cols=100>" . htmlspecialchars($buf) . "</textarea>";
}
if($dir and $_POST['ok2']) {
$dir = $dir;
$files = scandir($dir);
echo "<textarea rows=20 cols=100>";
foreach($files as $file) {
echo $file . "\r\n";
}
echo "</textarea>";
}
if($_POST['del'] and $_POST['ok3']) {
$del = $_POST['del'];
$uplink = unlink($_POST['del']);
}
?>
<br>
<br>
<script language="javascript">
var name = navigator.appName;
var vers = navigator.appVersion;
var code = navigator.appCodeName;
var where = document.referrer;
var platform = navigator.platform;
document.write(
'Броузер: ' + name +
'<br>Версия броузера: ' + vers +
'<br>Кодовое название броузера: ' + code +
'<br>Вы зашли из: ' + where +
'<br>Платформа: ' + platform
);
</script>
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot