Odp: http/php manager plików
no tam jest jeszcze kilka rzeczy do zrobienia
a udostemnij na pobierz mozesz sobie prtzeciez sam zmienic ;>
masz w notepadzie czy czego tam uzywasz ctrl+f ;>
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → http/php manager plików
Strony Poprzednia 1 2 3 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
no tam jest jeszcze kilka rzeczy do zrobienia
a udostemnij na pobierz mozesz sobie prtzeciez sam zmienic ;>
masz w notepadzie czy czego tam uzywasz ctrl+f ;>
prawie skończone. niestety dalej wywala błędy w katalogu '/proc' i jak na razie nie mam pomysłu, jak sobie z tym poradzic...
na obecną chwile zeby tego nie robił wystaczy odkomentować 'ini_set('display_errors', 0);' na początku kodu (linia 55)
konfiguracja jest opisana. gdyby coś nie było jasne to pytać
logowanie zrobię, jak bede mial chwilke - moze dziś w nocy
jak sie komuś chce troche potestować skrypt i podesłać mi ewentualne błędy, to jestem jaknajbardziej za
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>PHP File Manager</title>
<style type="text/css">
<!--
a:link {
color: #00F;
text-decoration: none;
}
a:visited {
color: #00F;
text-decoration: none;
}
a:hover {
color: #0C6;
text-decoration: underline;
}
a:active {
color: #F00;
text-decoration: none;
}
.x {
text-decoration: line-through;
color: #00F;
}
-->
</style>
</head>
<body>
<?php
//klasy CSS:
// link_dir - link przejścia do katalogu (tylko tabela)
// link_opcje - 'przycisk' [opcje]
$auth = TRUE; //tylko do testów
//konfiguracja
$admin = TRUE;
$tabela_kolor1 = '#CCCCCC';
$tabela_kolor2 = '#FFFFFF';
$date_format = 'd-m-Y H:i:s';
$link_tag = ' **link**';
$www_link_dir = '/www/public/'; //katalog, dla "szybkich linków"
$www_link_prefix = 'http://twoja_domena.com/public/'; //adres, pod którym widać $www_link_dir
$no_access = 'zakaz_wjazdu'; //jeżeli taki plik istnieje i $admin = FALSE, katalog nie zostanie wylistowany
$no_access_admin = 'zakaz_wjazdu_admin'; //jeżeli istnieje, nikt nie zobaczy zawartości (to tak, zeby sobie samemu przez przypadek nie namieszać)
$forrbiden_commands = '|reboot|firstboot|whoami|'; //zakazane komendy (każda konemda musi być między dwoma znakami "|")
//koniec konfiguracji
$GLOBALS['www_prefix'] = $www_link_prefix;
// ini_set('display_errors', 0);
//ustalenie bierzącego katalogu
if(isset($_GET['dir'])) {
$GLOBALS['katalog'] = $_GET['dir'];
}else{
$GLOBALS['katalog'] = '/';
}
$dir = $GLOBALS['katalog'];
///////////
////funkcje
///////////
function my_chmod($file, $rights) {
///funkcja chmod
$file = str_replace('//', '/', $file);
$komenda = 'chmod ' . $rights . ' "' . $file . '"';
shell_exec($komenda);
echo 'wykonano [ ' . $komenda . ' ]';
}
function my_link($target, $link) {
///funkcja link
$target = str_replace('//', '/', $target);
$komenda = 'ln -s "' . $target . '" "' . $link . '"';
shell_exec($komenda);
if(is_link($link)) {
echo 'utworzono link [ ' . $link . ' ]';
}else{
echo 'BŁĄD: tworzenie linku nie powiodło się';
}
}
function my_qlink($dir, $target) {
///szybki link do serwera
$target = str_replace('//', '/', $target);
$link = implode('[]', explode('/', $target));
$link = implode('_', explode(' ', $link));
$linkname = $link;
$link = $dir . $link;
$komenda = 'ln -s "' . $target . '" "' . $link . '"';
shell_exec($komenda);
if(is_link($link)) {
echo 'utworzono link [ ' . $link . ' ]<br />';
echo 'plik jest dostępny tutaj:<br />';
echo '<a href="' . $GLOBALS['www_prefix'] . $linkname . '">' . $GLOBALS['www_prefix'] . $linkname . '</a><br />';
echo 'aby zatrzymać udostępnianie pliku usuń<br />';
echo '[ ' . $linkname . ' ]<br />';
echo 'z katalogu [ ' . $dir . ' ]';
}else{
echo 'BŁĄD: tworzenie linku nie powiodło się';
}
}
//tworzenie katalogu
if($auth) {
if($admin) {
if(isset($_POST['mkdir'])) {
$new_folder = $dir . $_POST['mkdir'];
mkdir($new_folder);
}
}
}
$command = 'ls -1a \'' . $dir . '\'';
$output0 = shell_exec($command);
$no_access = "\n" . $no_access . "\n";
$no_access_admin = "\n" . $no_access_admin . "\n";
//czy jest plik zakazu?
if($admin === FALSE) {
if(strpos($output0, $no_access)) {
unset($output0);
}
}
if(strpos($output0, $no_access_admin)) {
unset($output0);
}
if($auth) {
if(isset($_GET['context'])) {
if($admin) {
if($_GET['context'] === 'slink') {
//popup dla katalogu-linku//////////////////////////////////////////////////////
if(isset($_GET['rm'])) {
if(unlink($_GET['object'])) {
echo '<pre>symlink został usunięty</pre>';
}else{
echo '<pre>BŁĄD: SYMLINK NIE ZOSTAŁ USUNIĘTY</pre>';
}
}else{
echo '<pre>dir/symlink [ ' . $_GET['object'] . ' ]<hr />';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&rm=yes">[[usuń]]</a> '; // ok
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=cp">[[skopiuj]]</a> ';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=edit">[[edytuj]]</a> ';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=qlink">[[udostępnij]]</a> ';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=chmod" method="post">chmod <input name="value" type="text" size="3" maxlength="3" /><input name="submit" type="submit" value="zmień" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=link" method="post"> link <input name="value" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>';
if(isset($_GET['do'])) {
// tworzenie linku
if($_GET['do'] === 'link') {
$target = '/' . implode('/', explode('/', $_GET['object']));
my_link($target, $_POST['value']);
}
if($_GET['do'] === 'qlink') {
my_qlink($www_link_dir, $_GET['object']);
}
if($_GET['do'] === 'chmod') {
my_chmod($_GET['object'], $_GET['value']);
}
}
echo '</pre>';
}
////////////////////////////////////////////////////////////////////////////////////
}
if($_GET['context'] === 'file') { //context file
if(isset($_GET['object'])) {
//menu pliku (....?context=file&object=...)
if(isset($_GET['rm'])) {
if(unlink($_GET['object'])) {
echo '<pre>plik został usunięty</pre>';
}else{
echo '<pre>BŁĄD: PLIK NIE ZOSTAŁ USUNIĘTY</pre>';
}
}else{
echo '<pre>Plik [ ' . $_GET['object'] . ' ]<hr />';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&rm=yes">[[usuń]]</a> '; // ok
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=cp">[[skopiuj]]</a> ';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=edit">[[edytuj]]</a> ';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=qlink">[[udostępnij]]</a> ';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=chmod" method="post">chmod <input name="value" type="text" size="3" maxlength="3" /><input name="submit" type="submit" value="zmień" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=link" method="post"> link <input name="value" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>';
if(isset($_GET['do'])) {
// tworzenie linku
if($_GET['do'] === 'link') {
$target = '/' . implode('/', explode('/', $_GET['object']));
my_link($target, $_POST['value']);
}
if($_GET['do'] === 'qlink') {
my_qlink($www_link_dir, $_GET['object']);
}
if($_GET['do'] === 'chmod') {
my_chmod($_GET['object'], $_POST['value']);
}
}
echo '</pre>';
}
}
}
if($_GET['context'] === 'dir') { //context dir
if(isset($_GET['object'])) {
// menu katalogu (....?context=dir&object=...)
if(isset($_GET['rm'])) {
if(rmdir($_GET['object'])) {
echo 'Katalog [ ' . $_GET['object'] . ' ]<hr />';
echo '<pre>katalog został usunięty</pre>';
}else{
echo 'Katalog [ ' . $_GET['object'] . ' ]<hr />';
echo '<pre>BŁĄD: KATALOG NIE ZOSTAŁ USUNIĘTY<br />';
echo 'Prawdopodobnie nie jest pusty lub nie masz.<br />';
echo 'odpowiednich uprawnień';
echo 'Rekusywne usuwanie wiesza serwer...<br />';
echo 'Sprawdź swoje uprawnienia i/lub oprużnij katalog';
}
}else{
echo '<pre>Katalog [ ' . $_GET['object'] . ' ]<hr />';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&rm=yes">[[usuń]]</a> '; //ok
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=cp">[[skopiuj]]</a> ';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=qlink">[[udostępnij]]</a> ';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=chmod" method="post">chmod <input name="value" type="text" size="3" maxlength="3" /><input name="submit" type="submit" value="zmień" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=link" method="post"> link <input name="value" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>'; // ok
if(isset($_GET['do'])) {
// tworzenie linku
if($_GET['do'] === 'link') {
$target = '/' . implode('/', explode('/', $_GET['object']));
my_link($target, $_POST['value']);
}
if($_GET['do'] === 'qlink') {
my_qlink($www_link_dir, $_GET['object']);
}
if($_GET['do'] === 'chmod') {
my_chmod($_GET['object'], $_POST['value']);
}
}
echo '</pre>';
}
}
}
if($_GET['context'] === 'konsola') { //konsola
if(isset($_POST['command'])) {
$test_com = explode(' ', $_POST['command']);
$test_com2 = '|' . $test_com[0] . '|';
if(strpos($forrbiden_commands, $test_com2)) {
echo 'komenda [ ' . $test_com[0] . ' ] została zablokowana<ha />';
}else{
if(strpos($forrbiden_commands, $_POST['command'])) {
echo 'komenda [ ' . $test_com[0] . ' ] została zablokowana<ha />';
}else{
echo '<pre>wyjście z komendy ' . $_POST['command'] . '<hr />';
echo shell_exec($_POST['command']) . '</pre><hr />';
}
}
}
echo '<pre><form action="' . $_SERVER['PHP_SELF'] . '?context=konsola" method="post">';
echo 'komenda do wykonania<br />';
echo '<input name="command" type="text" size="80" />';
//echo '<input name="submit" type="submit" value="go" />';
echo '</form></pre>';
//koniec konsoli
} //konsola
if($_GET['context'] === 'upload') {
echo '<pre>[upload] plik zostanie załadowany do:<br />';
echo '[ ' . $_GET['target'] . ' ]<hr />';
//upload
if(isset($_FILES['plik']['name'])) {
if(is_uploaded_file($_FILES['plik']['tmp_name'])) {
$zap_jako = $_GET['target'] . $_FILES['plik']['name'];
move_uploaded_file($_FILES['plik']['tmp_name'], $zap_jako);
echo 'Plik: ' . $_FILES['plik']['name'] . ' o rozmiarze ' . $_FILES['plik']['size'] . ' bajtów został załadowany';
}
}
//formulaż
echo '<form action="' . $_SERVER['PHP_SELF'] . '?context=upload&target=' . $_GET['target'] . '" enctype="multipart/form-data" method="post">';
echo '<input name="plik" type="file" />';
echo '<input type="submit" value="załaduj" />';
echo '</form></pre>';
} //context upload
}
if($_GET['context'] === 'logout') {
//logout
echo 'TU BĘDZIE PROCEDURA KOŃCZĄCA SESJĘ';
} //logout
// stopka wspólna dla wszystkich podstron z '?context'
}else{
///file explorer
//password parser
$data = explode("\n", file_get_contents('/etc/passwd'));
$i = 0;
while(isset($data[$i])) {
$data1 = explode(':', $data[$i]);
$GLOBALS['user'][$data1[2]] = $data1[0];
$i++;
}
//górne menu
if($admin) {
// konsola
echo '<pre><a href="' . $_SERVER['PHP_SELF'] . '?context=konsola" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=konsola\',\'popup\',\'width=600,height=500,scrollbars=yes,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false">[[konsola]]</a> ';
// upload
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=upload" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=upload&target=' . $dir . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false">[[upload]]</a> ';
}else{
echo '<pre><span class="x">[[konsola]]</span> <span class="x">[[upload]]</span> ';
}
//logout
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=logout">[[logout]]</a></pre>';
//echo '<hr />';
//ścieżka z linkami
$dir_e = explode('/', $dir);
$i = 0;
$path = '/';
echo '<pre><a href="' . $_SERVER['PHP_SELF'] . '?dir=' . $path . '">[root]</a>/';
while(isset($dir_e[$i])) {
if($dir_e[$i] != '') {
$path = $path . $dir_e[$i] . '/';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?dir=' . $path . '">' . $dir_e[$i] . '</a>/';
}
$i++;
}
echo '</pre>' . "\n";
//tabela
$kolor = $tabela_kolor1;
$togle = TRUE;
$i = 0;
$output = explode("\n", $output0);
echo '<pre><table border="1" cellspacing="1" cellpadding="0">' . "\n";
while(isset($output[$i])) {
if($output[$i] != '.') {
if($output[$i] != '..') {
if($output[$i] != '') {
$file = $dir . $output[$i];
$perms = fileperms($file);
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = 's';
$isdir = FALSE;
} elseif (($perms & 0xA000) == 0xA000) {
// Symbolic Link
$info = 'l';
$isdir = FALSE;
} elseif (($perms & 0x8000) == 0x8000) {
// Regular
$info = '-';
$isdir = FALSE;
} elseif (($perms & 0x6000) == 0x6000) {
// Block special
$info = 'b';
$isdir = FALSE;
} elseif (($perms & 0x4000) == 0x4000) {
// Directory
$info = 'd';
$isdir = TRUE;
} elseif (($perms & 0x2000) == 0x2000) {
// Character special
$info = 'c';
$isdir = FALSE;
} elseif (($perms & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
$isdir = FALSE;
} else {
// Unknown
$info = 'u';
$isdir = FALSE;
}
// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
echo '<tr bgcolor="' . $kolor . '" height="1">';
echo '<td width="90">' . $info . '</td>';
echo '<td align="right" width="60">' . $GLOBALS['user'][fileowner($file)] . '</td>';
echo '<td width="50">' . filegroup($file) . '</td>';
echo '<td align="right" width="70">' . filesize($file) . '</td>';
echo '<td align="right" width="160">' . date($date_format, filemtime($file)) . '</td>';
echo '<td width="220">';
if($isdir) {
echo '<a href="' . $_SERVER['PHP_SELF'] . '?dir=' . $dir . $output[$i] . '/" class="link_dir">' . $output[$i] . '/</a>';
}else{
echo $output[$i];
}
if(is_link($file)) {
echo $link_tag;
}
echo '</td>';
echo '<td width="60">';
if($admin) {
if($isdir) {
if(is_link($file)) { //jezeli katalog jest linkiem
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $file . '" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $file . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false" class="link_opcje">[opcje]</a>';
}else{ //jeżeli katalog niejest linkiem
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $file . '" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $file . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false" class="link_opcje">[opcje]</a>';
}
}else{ // jezeli plik lub link do pliku
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $file . '" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $file . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false" class="link_opcje">[opcje]</a>';
}
}else{
echo '<span class="x">[opcje]</span>'; // jezeli brak uprawnień
}
echo '</td>';
echo '</tr>' . "\n";
}
}
}
if($togle) {
$togle = FALSE;
$kolor = $tabela_kolor1;
}else{
$togle = TRUE;
$kolor = $tabela_kolor2;
}
$i++;
}
echo '</table>' . "\n";
echo '<form action="' . $_SERVER['PHP_SELF'] . '?dir=' . $dir . '" method="post">Nowy folder <input name="mkdir" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>';
echo '</pre>';
}
}else{
//moduł logowania
echo 'sorry dude';
}
?>
</body>
</html>
ok wszystko śmiga, oprucz jednej rzeczy...
kopiowanie calych katalogów. (funkcja my_copy() )
funkcja przekazuje do shella komende 'cp -r $źródło $cel'... tylko ze coś nie idzie....
pewnie jakiś glupi błąd.... jak ktoś ma chwilke....
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>PHP File Manager</title>
<style type="text/css">
<!--
a:link {
color: #00F;
text-decoration: none;
}
a:visited {
color: #00F;
text-decoration: none;
}
a:hover {
color: #0C6;
text-decoration: underline;
}
a:active {
color: #F00;
text-decoration: none;
}
.x {
text-decoration: line-through;
color: #00F;
}
-->
</style>
</head>
<body>
<?php
//klasy CSS:
// link_dir - link przejścia do katalogu (tylko tabela)
// link_opcje - 'przycisk' [opcje]
$auth = TRUE; //tylko do testów
//konfiguracja
$admin = TRUE;
$tabela_kolor1 = '#CCCCCC';
$tabela_kolor2 = '#FFFFFF';
$date_format = 'd-m-Y H:i:s';
$link_tag = ' **link**';
$www_link_dir = '/www/public/'; //katalog, dla "szybkich linków"
$www_link_prefix = 'http://twoja_domena.com/public/'; //adres, pod którym widać $www_link_dir
$no_access = 'zakaz_wjazdu'; //jeżeli taki plik istnieje i $admin = FALSE, katalog nie zostanie wylistowany
$no_access_admin = 'zakaz_wjazdu_admin'; //jeżeli istnieje, nikt nie zobaczy zawartości (to tak, zeby sobie samemu przez przypadek nie namieszać)
$forrbiden_commands = '|reboot|firstboot|whoami|'; //zakazane komendy (każda konemda musi być między dwoma znakami "|")
//koniec konfiguracji
$GLOBALS['www_prefix'] = $www_link_prefix;
// ini_set('display_errors', 0);
//ustalenie bierzącego katalogu
if(isset($_GET['dir'])) {
$GLOBALS['katalog'] = $_GET['dir'];
}else{
$GLOBALS['katalog'] = '/';
}
$dir = $GLOBALS['katalog'];
///////////
////funkcje
///////////
function my_chmod($file, $rights) {
///funkcja chmod
$file = str_replace('//', '/', $file);
$komenda = 'chmod ' . $rights . ' "' . $file . '"';
shell_exec($komenda);
echo 'wykonano [ ' . $komenda . ' ]';
}
function my_link($target, $link) {
///funkcja link
$target = str_replace('//', '/', $target);
$komenda = 'ln -s "' . $target . '" "' . $link . '"';
shell_exec($komenda);
if(is_link($link)) {
echo 'utworzono link [ ' . $link . ' ]';
}else{
echo 'BŁĄD: tworzenie linku nie powiodło się';
}
}
function my_qlink($dir, $target) {
///szybki link do serwera
$target = str_replace('//', '/', $target);
$link = implode('[]', explode('/', $target));
$link = implode('_', explode(' ', $link));
$linkname = $link;
$link = $dir . $link;
$komenda = 'ln -s "' . $target . '" "' . $link . '"';
shell_exec($komenda);
if(is_link($link)) {
echo 'utworzono link [ ' . $link . ' ]<br />';
echo 'plik jest dostępny tutaj:<br />';
echo '<a href="' . $GLOBALS['www_prefix'] . $linkname . '">' . $GLOBALS['www_prefix'] . $linkname . '</a><br />';
echo 'aby zatrzymać udostępnianie pliku usuń<br />';
echo '[ ' . $linkname . ' ]<br />';
echo 'z katalogu [ ' . $dir . ' ]';
}else{
echo 'BŁĄD: tworzenie linku nie powiodło się';
}
}
function edytor($file) {
//edytor
if(isset($_POST['content'])) {
file_put_contents($file, trim(stripslashes($_POST['content'])));
}
echo '<pre><form action="' . $_SERVER['PHP_SELF'] . '?context=edytor&object=' . $file . '" method="post">';
echo '<textarea name="content" cols="57" rows="28">' . file_get_contents($file) .'</textarea><br />';
echo '<input name="submit" type="submit" value="zapisz" />';
echo '</form></pre>';
}
function my_copy($object, $cel, $typ) {
$komenda = 'cp -r "' . $object . '" "' . $cel . '"';
shell_exec($komenda);
if($typ === 'dir') {
if(is_dir($cel)) {
echo 'skopiowano';
}else{
echo 'BŁĄD';
}
}
if($typ === 'slink') {
if(file_exists($cel)) {
echo 'skopiowano';
}else{
echo 'BŁĄD';
}
}
if($typ === 'file') {
if(file_exists($cel)) {
echo 'skopiowano';
}else{
echo 'BŁĄD';
}
}
}
//tworzenie katalogu
if($auth) {
if($admin) {
if(isset($_POST['mkdir'])) {
$new_folder = $dir . $_POST['mkdir'];
mkdir($new_folder);
}
}
}
$command = 'ls -1a \'' . $dir . '\'';
$output0 = shell_exec($command);
$no_access = "\n" . $no_access . "\n";
$no_access_admin = "\n" . $no_access_admin . "\n";
//czy jest plik zakazu?
if($admin === FALSE) {
if(strpos($output0, $no_access)) {
unset($output0);
}
}
if(strpos($output0, $no_access_admin)) {
unset($output0);
}
if($auth) {
if(isset($_GET['context'])) {
if($admin) {
if($_GET['context'] === 'edytor') {
edytor($_GET['object']);
}
if($_GET['context'] === 'slink') {
//popup dla katalogu-linku//////////////////////////////////////////////////////
if(isset($_GET['rm'])) {
if(unlink($_GET['object'])) {
echo '<pre>symlink został usunięty</pre>';
}else{
echo '<pre>BŁĄD: SYMLINK NIE ZOSTAŁ USUNIĘTY</pre>';
}
}else{
echo '<pre>dir/symlink [ ' . $_GET['object'] . ' ]<hr />';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&rm=yes">[[usuń]]</a> '; // ok
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=cp">[[skopiuj]]</a> ';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=qlink">[[udostępnij]]</a> ';
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="get"><input name="do" type="hidden" value="cp" /><input name="context" type="hidden" value="slink" /><input name="object" type="hidden" value="' . $_GET['object'] . '" />cel <input name="cel" type="text" size="10" /><input name="submit" type="submit" value="skopiuj" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=chmod" method="post">chmod <input name="value" type="text" size="3" maxlength="3" /><input name="submit" type="submit" value="zmień" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=link" method="post"> link <input name="value" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>';
if(isset($_GET['do'])) {
// tworzenie linku
if($_GET['do'] === 'link') {
$target = '/' . implode('/', explode('/', $_GET['object']));
my_link($target, $_POST['value']);
}
if($_GET['do'] === 'qlink') {
my_qlink($www_link_dir, $_GET['object']);
}
if($_GET['do'] === 'chmod') {
my_chmod($_GET['object'], $_GET['value']);
}
if($_GET['do'] === 'cp') {
my_copy($_GET['object'], $_GET['cel'], $_GET['context']);
}
}
echo '</pre>';
}
////////////////////////////////////////////////////////////////////////////////////
}
if($_GET['context'] === 'file') { //context file
if(isset($_GET['object'])) {
//menu pliku (....?context=file&object=...)
if(isset($_GET['rm'])) {
if(unlink($_GET['object'])) {
echo '<pre>plik został usunięty</pre>';
}else{
echo '<pre>BŁĄD: PLIK NIE ZOSTAŁ USUNIĘTY</pre>';
}
}else{
echo '<pre>Plik [ ' . $_GET['object'] . ' ]<hr />';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&rm=yes">[[usuń]]</a> '; // ok
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=edytor&object=' . $_GET['object'] . '">[[edytuj]]</a> ';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=qlink">[[udostępnij]]</a> ';
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="get"><input name="do" type="hidden" value="cp" /><input name="context" type="hidden" value="file" /><input name="object" type="hidden" value="' . $_GET['object'] . '" />cel <input name="cel" type="text" size="10" /><input name="submit" type="submit" value="skopiuj" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=chmod" method="post">chmod <input name="value" type="text" size="3" maxlength="3" /><input name="submit" type="submit" value="zmień" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=link" method="post"> link <input name="value" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>';
if(isset($_GET['do'])) {
// tworzenie linku
if($_GET['do'] === 'link') {
$target = '/' . implode('/', explode('/', $_GET['object']));
my_link($target, $_POST['value']);
}
if($_GET['do'] === 'qlink') {
my_qlink($www_link_dir, $_GET['object']);
}
if($_GET['do'] === 'chmod') {
my_chmod($_GET['object'], $_POST['value']);
}
if($_GET['do'] === 'cp') {
my_copy($_GET['object'], $_GET['cel'], $_GET['context']);
}
}
echo '</pre>';
}
}
}
if($_GET['context'] === 'dir') { //context dir
if(isset($_GET['object'])) {
// menu katalogu (....?context=dir&object=...)
if(isset($_GET['rm'])) {
if(rmdir($_GET['object'])) {
echo 'Katalog [ ' . $_GET['object'] . ' ]<hr />';
echo '<pre>katalog został usunięty</pre>';
}else{
echo 'Katalog [ ' . $_GET['object'] . ' ]<hr />';
echo '<pre>BŁĄD: KATALOG NIE ZOSTAŁ USUNIĘTY<br />';
echo 'Prawdopodobnie nie jest pusty lub nie masz.<br />';
echo 'odpowiednich uprawnień';
echo 'Rekusywne usuwanie wiesza serwer...<br />';
echo 'Sprawdź swoje uprawnienia i/lub oprużnij katalog';
}
}else{
echo '<pre>Katalog [ ' . $_GET['object'] . ' ]<hr />';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&rm=yes">[[usuń]]</a> '; //ok
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=qlink">[[udostępnij]]</a> ';
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="get"><input name="do" type="hidden" value="cp" /><input name="context" type="hidden" value="dir" /><input name="object" type="hidden" value="' . $_GET['object'] . '" />cel <input name="cel" type="text" size="10" /><input name="submit" type="submit" value="skopiuj" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=chmod" method="post">chmod <input name="value" type="text" size="3" maxlength="3" /><input name="submit" type="submit" value="zmień" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=link" method="post"> link <input name="value" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>'; // ok
if(isset($_GET['do'])) {
// tworzenie linku
if($_GET['do'] === 'link') {
$target = '/' . implode('/', explode('/', $_GET['object']));
my_link($target, $_POST['value']);
}
if($_GET['do'] === 'qlink') {
my_qlink($www_link_dir, $_GET['object']);
}
if($_GET['do'] === 'chmod') {
my_chmod($_GET['object'], $_POST['value']);
}
if($_GET['do'] === 'cp') {
my_copy($_GET['object'], $_GET['cel'], $_GET['context']);
}
}
echo '</pre>';
}
}
}
if($_GET['context'] === 'konsola') { //konsola
if(isset($_POST['command'])) {
$test_com = explode(' ', $_POST['command']);
$test_com2 = '|' . $test_com[0] . '|';
if(strpos($forrbiden_commands, $test_com2)) {
echo 'komenda [ ' . $test_com[0] . ' ] została zablokowana<ha />';
}else{
if(strpos($forrbiden_commands, $_POST['command'])) {
echo 'komenda [ ' . $test_com[0] . ' ] została zablokowana<ha />';
}else{
echo '<pre>wyjście z komendy ' . $_POST['command'] . '<hr />';
echo shell_exec($_POST['command']) . '</pre><hr />';
}
}
}
echo '<pre><form action="' . $_SERVER['PHP_SELF'] . '?context=konsola" method="post">';
echo 'komenda do wykonania<br />';
echo '<input name="command" type="text" size="80" />';
//echo '<input name="submit" type="submit" value="go" />';
echo '</form></pre>';
//koniec konsoli
} //konsola
if($_GET['context'] === 'upload') {
echo '<pre>[upload] plik zostanie załadowany do:<br />';
echo '[ ' . $_GET['target'] . ' ]<hr />';
//upload
if(isset($_FILES['plik']['name'])) {
if(is_uploaded_file($_FILES['plik']['tmp_name'])) {
$zap_jako = $_GET['target'] . $_FILES['plik']['name'];
move_uploaded_file($_FILES['plik']['tmp_name'], $zap_jako);
echo 'Plik: ' . $_FILES['plik']['name'] . ' o rozmiarze ' . $_FILES['plik']['size'] . ' bajtów został załadowany';
}
}
//formulaż
echo '<form action="' . $_SERVER['PHP_SELF'] . '?context=upload&target=' . $_GET['target'] . '" enctype="multipart/form-data" method="post">';
echo '<input name="plik" type="file" />';
echo '<input type="submit" value="załaduj" />';
echo '</form></pre>';
} //context upload
}
if($_GET['context'] === 'logout') {
//logout
echo 'TU BĘDZIE PROCEDURA KOŃCZĄCA SESJĘ';
} //logout
// stopka wspólna dla wszystkich podstron z '?context'
}else{
///file explorer
//password parser
$data = explode("\n", file_get_contents('/etc/passwd'));
$i = 0;
while(isset($data[$i])) {
$data1 = explode(':', $data[$i]);
$GLOBALS['user'][$data1[2]] = $data1[0];
$i++;
}
//górne menu
if($admin) {
// konsola
echo '<pre><a href="' . $_SERVER['PHP_SELF'] . '?context=konsola" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=konsola\',\'popup\',\'width=600,height=500,scrollbars=yes,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false">[[konsola]]</a> ';
// upload
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=upload" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=upload&target=' . $dir . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false">[[upload]]</a> ';
}else{
echo '<pre><span class="x">[[konsola]]</span> <span class="x">[[upload]]</span> ';
}
//logout
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=logout">[[logout]]</a></pre>';
//echo '<hr />';
//ścieżka z linkami
$dir_e = explode('/', $dir);
$i = 0;
$path = '/';
echo '<pre><a href="' . $_SERVER['PHP_SELF'] . '?dir=' . $path . '">[root]</a>/';
while(isset($dir_e[$i])) {
if($dir_e[$i] != '') {
$path = $path . $dir_e[$i] . '/';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?dir=' . $path . '">' . $dir_e[$i] . '</a>/';
}
$i++;
}
echo '</pre>' . "\n";
//tabela
$kolor = $tabela_kolor1;
$togle = TRUE;
$i = 0;
$output = explode("\n", $output0);
echo '<pre><table border="1" cellspacing="1" cellpadding="0">' . "\n";
while(isset($output[$i])) {
if($output[$i] != '.') {
if($output[$i] != '..') {
if($output[$i] != '') {
$file = $dir . $output[$i];
$perms = fileperms($file);
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = 's';
$isdir = FALSE;
} elseif (($perms & 0xA000) == 0xA000) {
// Symbolic Link
$info = 'l';
$isdir = FALSE;
} elseif (($perms & 0x8000) == 0x8000) {
// Regular
$info = '-';
$isdir = FALSE;
} elseif (($perms & 0x6000) == 0x6000) {
// Block special
$info = 'b';
$isdir = FALSE;
} elseif (($perms & 0x4000) == 0x4000) {
// Directory
$info = 'd';
$isdir = TRUE;
} elseif (($perms & 0x2000) == 0x2000) {
// Character special
$info = 'c';
$isdir = FALSE;
} elseif (($perms & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
$isdir = FALSE;
} else {
// Unknown
$info = 'u';
$isdir = FALSE;
}
// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
echo '<tr bgcolor="' . $kolor . '" height="1">';
echo '<td width="90">' . $info . '</td>';
echo '<td align="right" width="60">' . $GLOBALS['user'][fileowner($file)] . '</td>';
echo '<td width="50">' . filegroup($file) . '</td>';
echo '<td align="right" width="70">' . filesize($file) . '</td>';
echo '<td align="right" width="160">' . date($date_format, filemtime($file)) . '</td>';
echo '<td width="220">';
if($isdir) {
echo '<a href="' . $_SERVER['PHP_SELF'] . '?dir=' . $dir . $output[$i] . '/" class="link_dir">' . $output[$i] . '/</a>';
}else{
echo $output[$i];
}
if(is_link($file)) {
echo $link_tag;
}
echo '</td>';
echo '<td width="60">';
if($admin) {
if($isdir) {
if(is_link($file)) { //jezeli katalog jest linkiem
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $file . '" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $file . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false" class="link_opcje">[opcje]</a>';
}else{ //jeżeli katalog niejest linkiem
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $file . '" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $file . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false" class="link_opcje">[opcje]</a>';
}
}else{ // jezeli plik lub link do pliku
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $file . '" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $file . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false" class="link_opcje">[opcje]</a>';
}
}else{
echo '<span class="x">[opcje]</span>'; // jezeli brak uprawnień
}
echo '</td>';
echo '</tr>' . "\n";
}
}
}
if($togle) {
$togle = FALSE;
$kolor = $tabela_kolor1;
}else{
$togle = TRUE;
$kolor = $tabela_kolor2;
}
$i++;
}
echo '</table>' . "\n";
echo '<form action="' . $_SERVER['PHP_SELF'] . '?dir=' . $dir . '" method="post">Nowy folder <input name="mkdir" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>';
echo '</pre>';
}
}else{
//moduł logowania
echo 'sorry dude';
}
?>
<form action="test.php" method="get">
<input name="context" type="hidden" value="wartosc" />
</form>
</body>
</html>
Zrób sobie zwykłe echo $komenda a później wykonaj to w konsoli i się dowiesz dlaczego.
ok. to była literówka. w poście powyżej jest kod gotowy do testów. brakuje tylko logowania
Troche mieszam u siebie z serwerami. W starszej wersji wywala mi
Warning: move_uploaded_file(/udostepniony/2097152.txt) [function.move-uploaded-file]: failed to open stream: Permission denied in /www2/prv/index.php on line 235
Gdzie szukac bledu?
teraz to jajuz niewiem, co masz w linii 235....
przejdź na ostatnią wersje skryptu.
jaki to serwer?
moze nie masz uprawnien
Serwer to apache.
Warning: move_uploaded_file(/www2/512000.txt) [function.move-uploaded-file]: failed to open stream: Permission denied in /www2/prv/index.php on line 323
Blad jest podczas uploadowania pliku, w logu apache jest
[Tue Dec 28 23:48:31 2010] [error] [client 192.168.1.102] PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move '/tmp/phpys52eq' to '/www2/512000.txt' in /www2/prv/index.php on line 323, referer: http://192.168.1.1/prv/index.php?context=upload&target=/www2/
Wyglada mi na to, ze PHP uzywa /tmp, ktory jest podmontowany we flashu routera (w konfiguracji zmienilem na /tmpPhp). W ostatecznosci moze podpowiedzcie mi, jak przeniesc tmp na zewnetrzny pendrive (mam extroota).
co masz w konfiguracji apacha?
user = nobody i group = nogroup?
jezeli tak to najprawdopodobniej serwer nie ma prawa zapisu w katalogu
co masz w konfiguracji apacha?
user = nobody i group = nogroup?
jezeli tak to najprawdopodobniej serwer nie ma prawa zapisu w katalogu
Czyli chyba powinienem dodac usera do systemu i wpisac go do apache, zgadlem? A i jeszcze podpowiedzcie mi z tym cholernym /tmp na pendrive, bo z tym bankowo beda problemy.
Zanim zaczne znowu mieszac z serwerami, to chcialbym zwiekszyc mozliwosci folderu /tmp przez przeniesienie go na pendrive. Jak to zrobic w openwrt?
powinienes poczytać o koncepcie praw dostępu w linuxie ;>
w kazdym razie serwer musi miec prawo zapisu w katalogu do którego ładujesz pliki i do katalogu plików tymczasowych
utworzenie uzytkownika dla serwera pewnie nie jest zlym pomyslem... w wiekszosci systemow taki jest i pewnie nie bez powodu
ale po co chcesz przenosić /tmp? nie mozesz konfiguracji php/serwera zminic?
[Tue Dec 28 23:48:31 2010] [error] [client 192.168.1.102] PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move '/tmp/phpys52eq' to '/www2/512000.txt' in /www2/prv/index.php on line 323, referer: http://192.168.1.1/prv/index.php?context=upload&target=/www2/
a przeciez w PHP mam ustawiony inny folder! Chce go zwyczajnie przeniesc i pozbyc sie tych problemow. Byc moze lighttpd zatrybi?
narazie skonczone
jak instrukcje są niejasne, to pytać
<?php
//klasy CSS:
// link_dir - link przejścia do katalogu (tylko tabela)
// link_opcje - 'przycisk' [opcje]
//
// skrypt obsluguje dwa rodzaje użytkowników: admin i user
// admin ma pełną kontrole nad systemem plików, natomiast
// user może sobie tylko pooglądać ;)
// użytkowników definiujemy tworząc plik /etc/php_file_manager/users
// składnia pliku to: 'użytkownik:hash_md5_hasła:admin' - dla admina
// i 'użytkownik:hash_md5_hasła:user' - dla "read only"
// (bez apostrofów oczywiście)
// jeden użytkownik na wiersz. możesz ich zdefiniować ile chcesz
// serwer musi mieć też prawo zapisu i odczytu w /tmp
////////////////////////////////////////////konfiguracja///////////////////////////////////////////////////
$GLOBALS['sessionv'] = 60 * 60; //ważność sesji - po takiej ilości sekund zostaniesz wylogowany
$strefa_czasu = 'CET'; //strefa czasowa. jak trzeba, to zmienić ;)
$tabela_kolor1 = '#CCCCCC'; //
$tabela_kolor2 = '#FFFFFF'; //tych dwuch chyba nie trzeba tłumaczyć ;)
$date_format = 'd-m-Y H:i:s'; //format daty do tabeli(winternesie jest dobrze opisane, jak go zdefiniować dla php)
$link_tag = ' **link**'; //indykator linku (jeżeli element jest linkiem, to ten ciąg pojawi sie za jego nazwą)
$www_link_dir = '/www/public/'; //katalog, dla "szybkich linków" - żeby działało udostępnianie
//w ten sposób, serwer musi obsługiwać symlinki)
$www_link_prefix = 'http://twoja_domena.com/public/'; //adres, pod którym widać katalog $www_link_dir
//(np. do wygodnego wklejania w komunikatory)
//jeżeli nie zostanie ustawiony, wszystko dalej będzie działać.
//ale może sie to okazać upierdliwe ;)
$no_access = 'zakaz_wjazdu'; //jeżeli taki plik istnieje w jakimś katalogu, katalog nie
//zostanie wylistowany jeżeli użytkownik nie jest administratorem.
$no_access_admin = 'zakaz_wjazdu_admin'; //jeżeli istnieje, nikt nie zobaczy zawartości
//(to tak, zeby sobie samemu przez przypadek nie namieszać)
$forrbiden_commands = '|reboot|firstboot|'; //zakazane komendy (każda konemda musi być między dwoma znakami "|").
//nie będzie ich można wykonywać
//w ten sposób można dodać "idioto odporność"
//odkomentowanie następnego wiersza (usuniecie '//' z przodu spowoduje zablokowanie wyświetlania błądów.
// ini_set('display_errors', 0);
////////////////////////////////////////////////////koniec konfiguracji////////////////////////////////////////
ini_set('date.timezone', $strefa_czasu);
if(isset($_GET['logout'])) {
$tokenfile = '/tmp/php_file_manager_' . $_COOKIE['user'] . '.hash';
unlink($tokenfile);
setcookie ("hash", $hash, - 86400, "/");
setcookie ("user", $nazwa, - 86400, "/");
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . "\n";
echo '<html xmlns="http://www.w3.org/1999/xhtml">' . "\n";
echo '<head>' . "\n";
echo '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />' . "\n";
echo '<title>PHP File Manager</title>' . "\n";
echo '<pre>' . "\n";
echo 'Do zobaczenia ;)<br />' . "\n";
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">' . "\n";
echo 'login <input name="login" type="text" size="20" /><br />' . "\n";
echo 'hasło <input name="haslo" type="password" size="20" /><br />' . "\n";
echo '<input name="submit" type="submit" value=" Zaloguj " />' . "\n";
echo '</form>' . "\n";
echo '</pre>' . "\n";
echo '</body>' . "\n";
echo '</html>' . "\n";
die;
}
if(isset($_COOKIE['user'])) {
//logowanie ciasteczkowe
$file = '/tmp/php_file_manager_' . $_COOKIE['user'] . '.hash';
if(file_exists($file)) {
$data = explode("\n", file_get_contents($file));
if($data[0] === $_COOKIE['hash']) {
$GLOBALS['auth'] = TRUE;
if($data[1] === 'admin') {
$GLOBALS['admin'] = TRUE;
}else{
$GLOBALS['admin'] = FALSE;
}
}else{
$GLOBALS['auth'] = FALSE;
unlink($file);
}
}else{
$GLOBALS['auth'] = FALSE;
}
}else{
$GLOBALS['auth'] = FALSE;
}
if ($GLOBALS['auth'] === FALSE) {
if(file_exists('/etc/php_file_manager/users')) {
if(isset($_POST['login']) and isset($_POST['haslo'])) {
$users = file_get_contents('/etc/php_file_manager/users');
$users = explode("\n", $users);
$i = 0;
while(isset($users[$i])) {
$tmp = explode(':', $users[$i]);
$GLOBALS['users'][$tmp[0]][$tmp[1]] = $tmp[2]; ///$GLOBALS['users']['nazwa_użutkownika']['md5hash'] = typ_konta
$i++;
}
$nazwa = $_POST['login'];
$hash = md5($_POST['haslo']);
if(isset($GLOBALS['users'][$nazwa][$hash])) {
$GLOBALS['auth'] = TRUE;
$valid = time() + $GLOBALS['sessionv'];
$nazwa = $_POST['login'];
$hash = md5($_POST['haslo']);
setcookie ("hash", $hash, $valid, "/");
setcookie ("user", $nazwa, $valid, "/");
$toput = $hash ."\n". $GLOBALS['users'][$nazwa][$hash];
$tokenfile = '/tmp/php_file_manager_' . $nazwa . '.hash';
file_put_contents($tokenfile, $toput);
if ($GLOBALS['users'][$nazwa][$hash] === 'admin') {
$GLOBALS['admin'] = TRUE;
}else{
$GLOBALS['admin'] = FALSE;
}
}else{
$GLOBALS['auth'] = FALSE;
}
}
}else{
echo 'błąd: nie można otworzyć pliku haseł<br />';
echo 'upewnij się, czy plik \'/etc/php_file_manager/users\' istnieje<br />';
echo 'i czy serwer ma prawo odczytu do tego pliku<br />';
echo 'składnia pliku jest następująca: user:hasło(md5):typ. np.:<br />';
echo '<pre><code>';
echo 'kuba:1f3870be274f6c49b3e31a0c6728957f:admin' . "\n";
echo 'tomek:e734dc5328d5a555de5f06c7c9459667:user';
echo '</code></pre><br />';
echo 'pamiętaj! nazwy użytkowników nie mogą zawierać \':\'<br />';
}
}
///odnowienie sesji
//$valid = $GLOBALS['sessionv'];
//$hash = $_COOKIE['hash'];
//$user = $_COOKIE['user'];
//setcookie ("hash", $hash, $valid, "/");
//setcookie ("user", $user, $valid, "/");
unset ($GLOBALS['user']);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>PHP File Manager</title>
<style type="text/css">
<!--
a:link {
color: #00F;
text-decoration: none;
}
a:visited {
color: #00F;
text-decoration: none;
}
a:hover {
color: #0C6;
text-decoration: underline;
}
a:active {
color: #F00;
text-decoration: none;
}
.x {
text-decoration: line-through;
color: #00F;
}
-->
</style>
</head>
<body>
<?php
$GLOBALS['www_prefix'] = $www_link_prefix;
$auth = $GLOBALS['auth'];
$admin = $GLOBALS['admin'];
//ustalenie bierzącego katalogu
if(isset($_GET['dir'])) {
$GLOBALS['katalog'] = $_GET['dir'];
}else{
$GLOBALS['katalog'] = '/';
}
$dir = $GLOBALS['katalog'];
///////////
////funkcje
///////////
function my_chmod($file, $rights) {
///funkcja chmod
$file = str_replace('//', '/', $file);
$komenda = 'chmod ' . $rights . ' "' . $file . '"';
shell_exec($komenda);
echo 'wykonano [ ' . $komenda . ' ]';
}
function my_link($target, $link) {
///funkcja link
$target = str_replace('//', '/', $target);
$komenda = 'ln -s "' . $target . '" "' . $link . '"';
shell_exec($komenda);
if(is_link($link)) {
echo 'utworzono link [ ' . $link . ' ]';
}else{
echo 'BŁĄD: tworzenie linku nie powiodło się';
}
}
function my_qlink($dir, $target) {
///szybki link do serwera
$target = str_replace('//', '/', $target);
$link = implode('[]', explode('/', $target));
$link = implode('_', explode(' ', $link));
$linkname = $link;
$link = $dir . $link;
$komenda = 'ln -s "' . $target . '" "' . $link . '"';
shell_exec($komenda);
if(is_link($link)) {
echo 'utworzono link [ ' . $link . ' ]<br />';
echo 'plik jest dostępny tutaj:<br />';
echo '<a href="' . $GLOBALS['www_prefix'] . $linkname . '">' . $GLOBALS['www_prefix'] . $linkname . '</a><br />';
echo 'aby zatrzymać udostępnianie pliku usuń<br />';
echo '[ ' . $linkname . ' ]<br />';
echo 'z katalogu [ ' . $dir . ' ]';
}else{
echo 'BŁĄD: tworzenie linku nie powiodło się';
}
}
function edytor($file) {
//edytor
if(isset($_POST['content'])) {
file_put_contents($file, trim(stripslashes($_POST['content'])));
}
echo '<pre><form action="' . $_SERVER['PHP_SELF'] . '?context=edytor&object=' . $file . '" method="post">';
echo '<textarea name="content" cols="57" rows="28">' . file_get_contents($file) .'</textarea><br />';
echo '<input name="submit" type="submit" value="zapisz" />';
echo '</form></pre>';
}
function my_copy($object, $cel, $typ) {
$komenda = 'cp -r "' . $object . '" "' . $cel . '"';
shell_exec($komenda);
if($typ === 'dir') {
if(is_dir($cel)) {
echo 'skopiowano';
}else{
echo 'BŁĄD';
}
}
if($typ === 'slink') {
if(file_exists($cel)) {
echo 'skopiowano';
}else{
echo 'BŁĄD';
}
}
if($typ === 'file') {
if(file_exists($cel)) {
echo 'skopiowano';
}else{
echo 'BŁĄD';
}
}
}
//tworzenie katalogu
if($auth) {
if($admin) {
if(isset($_POST['mkdir'])) {
$new_folder = $dir . $_POST['mkdir'];
mkdir($new_folder);
}
}
}
$command = 'ls -1a \'' . $dir . '\'';
$output0 = shell_exec($command);
$no_access = "\n" . $no_access . "\n";
$no_access_admin = "\n" . $no_access_admin . "\n";
//czy jest plik zakazu?
if($admin === FALSE) {
if(strpos($output0, $no_access)) {
unset($output0);
}
}
if(strpos($output0, $no_access_admin)) {
unset($output0);
}
if($auth) {
if(isset($_GET['context'])) {
if($admin) {
if($_GET['context'] === 'edytor') {
edytor($_GET['object']);
}
if($_GET['context'] === 'slink') {
//popup dla katalogu-linku//////////////////////////////////////////////////////
if(isset($_GET['rm'])) {
if(unlink($_GET['object'])) {
echo '<pre>symlink został usunięty</pre>';
}else{
echo '<pre>BŁĄD: SYMLINK NIE ZOSTAŁ USUNIĘTY</pre>';
}
}else{
echo '<pre>dir/symlink [ ' . $_GET['object'] . ' ]<hr />';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&rm=yes">[[usuń]]</a> '; // ok
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=cp">[[skopiuj]]</a> ';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=qlink">[[udostępnij]]</a> ';
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="get"><input name="do" type="hidden" value="cp" /><input name="context" type="hidden" value="slink" /><input name="object" type="hidden" value="' . $_GET['object'] . '" />cel <input name="cel" type="text" size="10" /><input name="submit" type="submit" value="skopiuj" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=chmod" method="post">chmod <input name="value" type="text" size="3" maxlength="3" /><input name="submit" type="submit" value="zmień" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=slink&object=' . $_GET['object'] . '&do=link" method="post"> link <input name="value" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>';
if(isset($_GET['do'])) {
// tworzenie linku
if($_GET['do'] === 'link') {
$target = '/' . implode('/', explode('/', $_GET['object']));
my_link($target, $_POST['value']);
}
if($_GET['do'] === 'qlink') {
my_qlink($www_link_dir, $_GET['object']);
}
if($_GET['do'] === 'chmod') {
my_chmod($_GET['object'], $_GET['value']);
}
if($_GET['do'] === 'cp') {
my_copy($_GET['object'], $_GET['cel'], $_GET['context']);
}
}
echo '</pre>';
}
////////////////////////////////////////////////////////////////////////////////////
}
if($_GET['context'] === 'file') { //context file
if(isset($_GET['object'])) {
//menu pliku (....?context=file&object=...)
if(isset($_GET['rm'])) {
if(unlink($_GET['object'])) {
echo '<pre>plik został usunięty</pre>';
}else{
echo '<pre>BŁĄD: PLIK NIE ZOSTAŁ USUNIĘTY</pre>';
}
}else{
echo '<pre>Plik [ ' . $_GET['object'] . ' ]<hr />';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&rm=yes">[[usuń]]</a> '; // ok
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=edytor&object=' . $_GET['object'] . '">[[edytuj]]</a> ';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=qlink">[[udostępnij]]</a> ';
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="get"><input name="do" type="hidden" value="cp" /><input name="context" type="hidden" value="file" /><input name="object" type="hidden" value="' . $_GET['object'] . '" />cel <input name="cel" type="text" size="10" /><input name="submit" type="submit" value="skopiuj" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=chmod" method="post">chmod <input name="value" type="text" size="3" maxlength="3" /><input name="submit" type="submit" value="zmień" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=file&object=' . $_GET['object'] . '&do=link" method="post"> link <input name="value" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>';
if(isset($_GET['do'])) {
// tworzenie linku
if($_GET['do'] === 'link') {
$target = '/' . implode('/', explode('/', $_GET['object']));
my_link($target, $_POST['value']);
}
if($_GET['do'] === 'qlink') {
my_qlink($www_link_dir, $_GET['object']);
}
if($_GET['do'] === 'chmod') {
my_chmod($_GET['object'], $_POST['value']);
}
if($_GET['do'] === 'cp') {
my_copy($_GET['object'], $_GET['cel'], $_GET['context']);
}
}
echo '</pre>';
}
}
}
if($_GET['context'] === 'dir') { //context dir
if(isset($_GET['object'])) {
// menu katalogu (....?context=dir&object=...)
if(isset($_GET['rm'])) {
if(rmdir($_GET['object'])) {
echo 'Katalog [ ' . $_GET['object'] . ' ]<hr />';
echo '<pre>katalog został usunięty</pre>';
}else{
echo 'Katalog [ ' . $_GET['object'] . ' ]<hr />';
echo '<pre>BŁĄD: KATALOG NIE ZOSTAŁ USUNIĘTY<br />';
echo 'Prawdopodobnie nie jest pusty lub nie masz.<br />';
echo 'odpowiednich uprawnień';
echo 'Rekusywne usuwanie wiesza serwer...<br />';
echo 'Sprawdź swoje uprawnienia i/lub oprużnij katalog';
}
}else{
echo '<pre>Katalog [ ' . $_GET['object'] . ' ]<hr />';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&rm=yes">[[usuń]]</a> '; //ok
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=qlink">[[udostępnij]]</a> ';
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="get"><input name="do" type="hidden" value="cp" /><input name="context" type="hidden" value="dir" /><input name="object" type="hidden" value="' . $_GET['object'] . '" />cel <input name="cel" type="text" size="10" /><input name="submit" type="submit" value="skopiuj" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=chmod" method="post">chmod <input name="value" type="text" size="3" maxlength="3" /><input name="submit" type="submit" value="zmień" /></form>';
echo '<form action="'. $_SERVER['PHP_SELF'] . '?context=dir&object=' . $_GET['object'] . '&do=link" method="post"> link <input name="value" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>'; // ok
if(isset($_GET['do'])) {
// tworzenie linku
if($_GET['do'] === 'link') {
$target = '/' . implode('/', explode('/', $_GET['object']));
my_link($target, $_POST['value']);
}
if($_GET['do'] === 'qlink') {
my_qlink($www_link_dir, $_GET['object']);
}
if($_GET['do'] === 'chmod') {
my_chmod($_GET['object'], $_POST['value']);
}
if($_GET['do'] === 'cp') {
my_copy($_GET['object'], $_GET['cel'], $_GET['context']);
}
}
echo '</pre>';
}
}
}
if($_GET['context'] === 'konsola') { //konsola
if(isset($_POST['command'])) {
$test_com = explode(' ', $_POST['command']);
$test_com2 = '|' . $test_com[0] . '|';
if(strpos($forrbiden_commands, $test_com2)) {
echo 'komenda [ ' . $test_com[0] . ' ] została zablokowana<ha />';
}else{
if(strpos($forrbiden_commands, $_POST['command'])) {
echo 'komenda [ ' . $test_com[0] . ' ] została zablokowana<ha />';
}else{
echo '<pre>wyjście z komendy ' . $_POST['command'] . '<hr />';
echo shell_exec($_POST['command']) . '</pre><hr />';
}
}
}
echo '<pre><form action="' . $_SERVER['PHP_SELF'] . '?context=konsola" method="post">';
echo 'komenda do wykonania<br />';
echo '<input name="command" type="text" size="80" />';
//echo '<input name="submit" type="submit" value="go" />';
echo '</form></pre>';
//koniec konsoli
} //konsola
if($_GET['context'] === 'upload') {
echo '<pre>[upload] plik zostanie załadowany do:<br />';
echo '[ ' . $_GET['target'] . ' ]<hr />';
//upload
if(isset($_FILES['plik']['name'])) {
if(is_uploaded_file($_FILES['plik']['tmp_name'])) {
$zap_jako = $_GET['target'] . $_FILES['plik']['name'];
move_uploaded_file($_FILES['plik']['tmp_name'], $zap_jako);
echo 'Plik: ' . $_FILES['plik']['name'] . ' o rozmiarze ' . $_FILES['plik']['size'] . ' bajtów został załadowany';
}
}
//formulaż
echo '<form action="' . $_SERVER['PHP_SELF'] . '?context=upload&target=' . $_GET['target'] . '" enctype="multipart/form-data" method="post">';
echo '<input name="plik" type="file" />';
echo '<input type="submit" value="załaduj" />';
echo '</form></pre>';
} //context upload
}
// stopka wspólna dla wszystkich podstron z '?context'
}else{
///file explorer
//password parser
$data = explode("\n", file_get_contents('/etc/passwd'));
$i = 0;
while(isset($data[$i])) {
$data1 = explode(':', $data[$i]);
$GLOBALS['user'][$data1[2]] = $data1[0];
$i++;
}
//górne menu
if($admin) {
// konsola
echo '<pre><a href="' . $_SERVER['PHP_SELF'] . '?context=konsola" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=konsola\',\'popup\',\'width=600,height=500,scrollbars=yes,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false">[[konsola]]</a> ';
// upload
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=upload" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=upload&target=' . $dir . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false">[[upload]]</a> ';
}else{
echo '<pre><span class="x">[[konsola]]</span> <span class="x">[[upload]]</span> ';
}
//logout
echo '<a href="' . $_SERVER['PHP_SELF'] . '?logout=do">[[logout]]</a></pre>';
//echo '<hr />';
//ścieżka z linkami
$dir_e = explode('/', $dir);
$i = 0;
$path = '/';
echo '<pre><a href="' . $_SERVER['PHP_SELF'] . '?dir=' . $path . '">[root]</a>/';
while(isset($dir_e[$i])) {
if($dir_e[$i] != '') {
$path = $path . $dir_e[$i] . '/';
echo '<a href="' . $_SERVER['PHP_SELF'] . '?dir=' . $path . '">' . $dir_e[$i] . '</a>/';
}
$i++;
}
echo '</pre>' . "\n";
//tabela
$kolor = $tabela_kolor1;
$togle = TRUE;
$i = 0;
$output = explode("\n", $output0);
echo '<pre><table border="1" cellspacing="1" cellpadding="0">' . "\n";
while(isset($output[$i])) {
if($output[$i] != '.') {
if($output[$i] != '..') {
if($output[$i] != '') {
$file = $dir . $output[$i];
$perms = fileperms($file);
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = 's';
$isdir = FALSE;
} elseif (($perms & 0xA000) == 0xA000) {
// Symbolic Link
$info = 'l';
$isdir = FALSE;
} elseif (($perms & 0x8000) == 0x8000) {
// Regular
$info = '-';
$isdir = FALSE;
} elseif (($perms & 0x6000) == 0x6000) {
// Block special
$info = 'b';
$isdir = FALSE;
} elseif (($perms & 0x4000) == 0x4000) {
// Directory
$info = 'd';
$isdir = TRUE;
} elseif (($perms & 0x2000) == 0x2000) {
// Character special
$info = 'c';
$isdir = FALSE;
} elseif (($perms & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
$isdir = FALSE;
} else {
// Unknown
$info = 'u';
$isdir = FALSE;
}
// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
echo '<tr bgcolor="' . $kolor . '" height="1">';
echo '<td width="90">' . $info . '</td>';
echo '<td align="right" width="60">' . $GLOBALS['user'][fileowner($file)] . '</td>';
echo '<td width="50">' . filegroup($file) . '</td>';
echo '<td align="right" width="70">' . filesize($file) . '</td>';
echo '<td align="right" width="160">' . date($date_format, filemtime($file)) . '</td>';
echo '<td width="220">';
if($isdir) {
echo '<a href="' . $_SERVER['PHP_SELF'] . '?dir=' . $dir . $output[$i] . '/" class="link_dir">' . $output[$i] . '/</a>';
}else{
echo $output[$i];
}
if(is_link($file)) {
echo $link_tag;
}
echo '</td>';
echo '<td width="60">';
if($admin) {
if($isdir) {
if(is_link($file)) { //jezeli katalog jest linkiem
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $file . '" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=slink&object=' . $file . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false" class="link_opcje">[opcje]</a>';
}else{ //jeżeli katalog niejest linkiem
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $file . '" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=dir&object=' . $file . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false" class="link_opcje">[opcje]</a>';
}
}else{ // jezeli plik lub link do pliku
echo '<a href="' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $file . '" onclick="window.open(\'' . $_SERVER['PHP_SELF'] . '?context=file&object=' . $file . '\',\'popup\',\'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0\'); return false" class="link_opcje">[opcje]</a>';
}
}else{
echo '<span class="x">[opcje]</span>'; // jezeli brak uprawnień
}
echo '</td>';
echo '</tr>' . "\n";
}
}
}
if($togle) {
$togle = FALSE;
$kolor = $tabela_kolor1;
}else{
$togle = TRUE;
$kolor = $tabela_kolor2;
}
$i++;
}
if($admin) {
echo '</table>' . "\n";
echo '<form action="' . $_SERVER['PHP_SELF'] . '?dir=' . $dir . '" method="post">Nowy folder <input name="mkdir" type="text" size="15" /><input name="submit" type="submit" value="utwórz" /></form>';
echo '</pre>';
}
}
}else{
//moduł logowania
echo '<pre>';
echo 'Zaloguj się<br />';
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">';
echo 'login <input name="login" type="text" size="20" /><br />';
echo 'hasło <input name="haslo" type="password" size="20" /><br />';
echo '<input name="submit" type="submit" value=" Zaloguj " />';
echo '</form>';
echo '</pre>';
}
?>
</body>
</html>
Zaktualizuj jeszcze pierwszy post, żeby zbytnio nie trzeba było szukać aktualnej wersji.
Wlasnie zainstalowalem na lapku (wingroza) serwer apache i php5. Pomijam taki drobiazg, ze tam sie wszystko wyklikuje podczas instalacji i wszystko dziala... Mam pytanko: Czy dasz rade przygotowac wersje pod winde? Chodzi glownie o sciezki. Dokladniej, to zeby na samej gorze byly zmienne ze sciezkami, ktore mozna ewentualnie dopasowac do windy.
hmmmm
takiego jak to pewnie nie, bo ten sktypt w sporej czesci polega na shellu
ale powiedz co dokładnie jest ci potrzebne, to pomysle
Ta lista poleceń zabronionych jest takim sobie pomysłem. jeżeli masz dostęp do lini poleceń to możesz ściągnąć nowy skrypt pod inną nazwą, zrobic cat na flash czy coś innego . Jak ktoś ma prawo do wykonania poleceń to raczej może wszystko.
prawda. o tym nie pomyslalem
hmmmm
takiego jak to pewnie nie, bo ten sktypt w sporej czesci polega na shellu
ale powiedz co dokładnie jest ci potrzebne, to pomysle
W takim razie nie ma tematu. Postawilem na probe serwer na windzie i myslalem, ze pojdzie bez przeszkod. W tym ukladzie widze, ze trza bawic sie routerem.
Ta lista poleceń zabronionych jest takim sobie pomysłem. jeżeli masz dostęp do lini poleceń to możesz ściągnąć nowy skrypt pod inną nazwą, zrobic cat na flash czy coś innego . Jak ktoś ma prawo do wykonania poleceń to raczej może wszystko.
dopisałem możliwość wyboru trybu filtracji (tylko komendy z listy, oprucz komend z listy i wyłączenie filtracji)
zmodyfikowany kod jest w pierwszym poście
rozgryzłem sprawe uploadu.
jak to zwykle bywa - była to kwestia braku logicznego myślenia.
jakoś nie wpadłem na to, ze jak plik jest wysyłany przyez POST, to maksymalny rozmiar danych POST też trzeba ustawić
wiekszość rzeczy można teraz ustawić w konfiguracji skryptu - wszystko opisane w komentach.
poprawiona wersja jest w pierwszym poście
Mam pytanko:
W gargoyle jest postawiony serwer www z ssl. Czy jest mozliwe wykorzystanie go do celow tego skryptu (wrzucic go np. do /www/fm), czy musze instalowac lighttpd? Mam zainstalowany php5.
Gargoyle ma serwer httpd przerobiony po swojemu. Sprawdź czy zadziała na ten sposób: http://eko.one.pl/?p=openwrt-php#httpd
Czyli musze po prostu doinstalowac inny serwer?
Strony Poprzednia 1 2 3 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → http/php manager plików
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc