Náhrada FTP klienta webovým rozhraním 4.
V poslednom diely o tvorbe náhrady FTP klienta si vytvoríme rozhranie pre skupinové kopírovanie súborov na servery, tvorbu nového súboru a zvýraznienie syntaxe kódu v súbore.
Zhrňme si všetky súbory, ktoré seriál obsahoval, tučným písmom sú napísané súbory, ktoré pribudli v tomto diely:
copy.php
– skupinové kopírovanie súborov na serverycreate_file.php
– skript pre tvorbu nového súboruedit_files.php
– práca so súbormiedit_folders.php
– práca s adresármiklient.php
– hlavná stránka, zobrazuje výpis adresára a rozhranie pre prácu so súbormi a adresármiprava.php
– nastavenie prístupových práv pre súbory a adresárestyle.css
– kaskádové štýly pre grafické spracovaniesyntax.php
– zvýraznenie syntaxe kódu v súboreupload.php
– uploadovanie súborov na server
Najprv si pozrime zmenený kód súboru klient.php
:
<?php
header(„Expires: Mon, 26 Jul 1997 05:00:00 GMT“);
header(„Last-Modified:“.gmdate(„D, d M Y H:i:s“).“ GMT“);
header(„Cache-Control: no-cache, must-revalidate“);
header(„Pragma: no-cache“);
?>
<html>
<head>
<title>FTP klient</title>
<meta http-equiv=“Content-Type“ content=“text/html; charset=windows-1250″ />
<link rel=“stylesheet“ href=“style.css“ type=“text/css“ />
</head>
<body bgcolor=“#FFFFFF“ text=“#005FA4″>
<h3>FTP klient</h3>
<hr size=“1″ color=“#005FA4″ />
<table width=“100%“ border=“0″ cellpadding=“0″ cellspacing=“0″>
<tr>
<td width=“50%“ valign=“top“>
<div align=“left“>
<form action=“copy.php“ method=“post“>
<table cellpadding=“3″ cellspacing=“0″ border=“0″><tr><td></td><td width=“36%“><b>Názov</b></td><td width=“14%“><b>Veľkosť</b></td><td width=“50%“ colspan=“2″><div align=“right“><b>Dátum posl. modifikácie</b></div></td></tr>
<tr bgcolor=“#005FA4″><td height=“1″></td><td></td><td></td><td colspan=“2″></td></tr>
<?php
if(empty($adresar)):
//mysql_connect(„server“,“login“,“heslo“);
//$vysledok = mysql_db_query(„databaza“, „SELECT adresar FROM uzivatelia WHERE Login = ‚login‘ AND Heslo = „heslo'“);
//$adresar = mysql_result($vysledok, 0);
$adresar = „server“;
endif;
$file = 0;
$folder = 0;
$handle = opendir($adresar);
while($entry = readdir($handle))
{
$cas = filemtime(„$adresar/$entry“);
if(!ereg(„^[.]+$“, $entry)):
if(is_file(„$adresar/$entry“)):
echo „<tr><td><input type=\“checkbox\“ name=\“nazov[]\“ value=\“$entry\“ /></td><td><a href=\“syntax.php?subor=$adresar/$entry&adresar=$adresar\“>$entry</a></td><td><div align=\“center\“>“.filesize(„$adresar/$entry“).“</div></td><td colspan=\“2\“><div align=\“right\“>“.Date(„j. M. Y H:i:s“, $cas).“</div></td></tr>“;
$file++;
else:
echo „<tr><td></td><td><b><a href=\“klient.php?adresar=$adresar/$entry\“ target=\“_blank\“>$entry</a></b></td><td><div align=\“center\“>-</div></td><td><div align=\“right\“><a href=\“edit_folders.php?adr=$adresar&adresar=$adresar/$entry&operacia=delete\“>zmazať</a> | </div></td><td><div align=\“left\“><a href=\“edit_folders.php?adr=$adresar&adresar=$adresar/$entry&operacia=rename\“>premenovať</a></div></td></tr>“;
$folder++;
endif;
endif;
}
?>
</table>
<?php if($file>0 && $folder>0): ?>
<br />
prekopírovať do
<select name=“adr“ class=“select“>
<option value=“false“ SELECTED>Vyber adresár</option>
<?php
$handle = opendir($adresar);
while($entry = readdir($handle))
{
if(!ereg(„^[.]+$“, $entry)):
if(!is_file(„$adresar/$entry“)) echo „<option value=\“$entry\“>$entry</option>“;
endif;
}
?>
</select>
<input type=“hidden“ name=“adresar“ value=“<?php echo $adresar?>“ />
<button type=“submit“ class=“button“>spracovať</button><br />
<?php endif;?>
</form>
<?php
echo „Súborov: $file<br/>“;
echo „Adresárov: $folder<br/>“;
?>
</div>
</td>
<td width=“1%“></td>
<td width=“50%“ valign=“top“>
<form action=“edit_files.php“ method=“post“>
<input type=“hidden“ name=“adresar“ value=“<?php echo $adresar?>“ />
<select name=“nazov“ class=“select“>
<option value=“false“ SELECTED>Vyber súbor</option>
<?php
$handle = opendir($adresar);
while($entry = readdir($handle))
{
if(!ereg(„^[.]+$“, $entry)):
if(is_file(„$adresar/$entry“)) echo „<option value=\“$entry\“>$entry</option>“;
endif;
}
?>
</select>
<select name=“operacia“ class=“select“>
<option value=“false“ SELECTED>Operácia</option>
<option value=“see“>prezerať</option>
<option value=“edit“>editovať</option>
<option value=“del“>vymazať</option>
<option value=“ren“>premenovať</option>
<option value=“info“>informácie</option>
</select>
<button type=“submit“ class=“button“>Vykonať</button>
</form>
<br />
<form action=“edit_folders.php“ method=“get“>
<input type=“hidden“ name=“operacia“ value=“create“ />
<input type=“hidden“ name=“adr“ value=“<?php echo $adresar?>“ />
<input type=“hidden“ name=“adresar“ value=“<?php echo $adresar?>“ />
<input type=“text“ name=“folder“ class=“textinput“ /> <button type=“submit“ class=“button“>Vytvoriť adresár</button>
</form>
<br />
<form action=“upload.php“ method=“post“ enctype=“multipart/form-data“>
<input type=“hidden“ name=“adresar“ value=“<?php echo $adresar?>“ />
<input type=“file“ name=“subor“ class=“textinput“ /> <button type=“submit“ class=“button“>Upload</button>
</form>
<br />
<form action=“prava.php“ method=“post“>
<input type=“hidden“ name=“adresar“ value=“<?php echo $adresar?>“ />
<select name=“nazov“ class=“select“>
<option value=“false“ SELECTED>Vyber súbor</option>
<?php
$handle = opendir($adresar);
while($entry = readdir($handle))
{
if(!ereg(„^[.]+$“, $entry)):
if(is_file(„$adresar/$entry“)) echo „<option value=\“$entry\“>$entry</option>“;
endif;
}
?>
</select>
<input type=“text“ name=“prava“ onfocus=’this.value=““;‘ value=“prístupové práva“ class=“textinput“ />
<button type=“submit“ class=“button“>Nastaviť</button>
</form>
<br />
<form action=“prava.php“ method=“post“>
<input type=“hidden“ name=“adresar“ value=“<?php echo $adresar?>“ />
<select name=“nazov“ class=“select“>
<option value=“false“ SELECTED>Vyber adresár</option>
<?php
$handle = opendir($adresar);
while($entry = readdir($handle))
{
if(!ereg(„^[.]+$“, $entry)):
if(!is_file(„$adresar/$entry“)) echo „<option value=\“$entry\“>$entry</option>“;
endif;
}
?>
</select>
<input type=“text“ name=“prava“ onfocus=’this.value=““;‘ value=“prístupové práva“ class=“textinput“ />
<button type=“submit“ class=“button“>Nastaviť</button>
</form>
<br />
<form action=“create_file.php“ method=“post“>
<input type=“hidden“ name=“adresar“ value=“<?php echo $adresar?>“ />
<input type=“hidden“ name=“operacia“ value=“zostavit“ />
<button type=“submit“ class=“button“>Vytvoriť nový súbor</button>
</form>
</td>
</tr>
</table>
</body>
</html>
Pri výpise aktuálneho adresára sa nám poskytli dve nové zaujímavé možnosti. Prvou z nich je zobrazenie a zvýraznenie syntaxe kódu v súbore. Toto spravíte jednoduchým kliknutím na názov súboru. O všetko sa už postará súbor syntax.php
, ktorý iba využíva funkciu show_source(). Táto funkcia v skutočnosti volá funkciu highlight_file(). Zdrojový kód spomínaného súboru je jednoduchý:
<?php
if($_GET[‚subor‘]!=“false“ && $_GET[‚adresar‘]!=“false“):
show_source($subor); // zobrazíme syntax
else:?>
Nesprávne zadané údaje!
<?php endif;?>
<br /><br />
<a href=“klient.php?adresar=<?php echo $_GET[‚adresar‘]?>“>Vrátiť sa späť</a>
Druhou možnosťou je hromadné kopírovanie súborov do niektorého z adresárov. Zaškrtnutím checkboxu daného súboru si volíme súbory na prekopírovanie do adresára, ktorý vyberieme z prvku select. Kliknutím na tlačítko „spracovať“ nám skript copy.php
prekopíruje súbory do daného adresára. Súbor vyzerá nasledovne:
<?php
if($_POST[‚adresar‘]!=“false“ && !empty($_POST[‚nazov‘]) && $_POST[‚adr‘]!=“false“):
$subory = $_POST[‚nazov‘];
for($i=0;$i<count($subory);$i++):
$kde = $_POST[‚adresar‘].“/“.$subory[$i]; // z kade budeme kopírovať
$fp = fopen($kde,“r“); // otvoríme súbor
$text = fread($fp,filesize($kde)); // načítame obsah súboru
fclose($fp); // zatvoríme súbor
$kam = $_POST[‚adresar‘].“/“.$_POST[‚adr‘].“/“.$subory[$i]; // kam budeme kopírovať
$new = fopen($kam,“w“); // vytvoríme súbor
if(@fwrite ($new, $text)) echo $subory[$i].“ – ok<br />“; // zapíšeme do nového súboru
else echo $subory[$i].“ – chyba pri kopírovaní<br />“;
fclose($new); // zatvoríme súbor
endfor;
else:
echo „Nesprávne zadané údaje!“;
endif;
?>
<br /><br />
<a href=“klient.php?adresar=<?php echo $_POST[‚adresar‘]?>“>Vrátiť sa späť</a>
Pod výpisom aktuálneho adresára sa nám zobrazí celkový počet súborov a adresárov, ktoré sa v ňom nachádzajú. Pri výskyte adresára sa nám ako predtým ponúkne možnosť adresár premenovať alebo vymazať, ale s tým rozdielom, že sa už jedná o odkazy a nie o formuláre.
Skript create_file.php
nám vytvorí nový súbor. Kliknutím na tlačítko „Vytvoriť nový súbor“ sa dostanete do rozhrania, kde svoj súbor pomenujete a „vyplníte“ ho kódom. Odoslaním týchto informácií sa súbor vytvorí v otvorenom adresári. Zdrojový kód vyzerá nasledovne:
<?php
if($_POST[‚adresar‘]!=“false“ && $_POST[‚operacia‘]!=“false“):
if($_POST[‚operacia‘]==“zostavit“):
?>
<form action=“create_file.php“ method=“post“>
<input type=“hidden“ name=“adresar“ value=“<?php echo $_POST[‚adresar‘]?>“ />
<input type=“hidden“ name=“operacia“ value=“vytvor“ />
Názov súboru: <input type=“text“ name=“nazov“ /><br />
<center>Obsah súboru:</center>
<textarea name=“text“ style=“width:100%;height:250px“></textarea>
<br />
<button type=“submit“ class=“button“>Vytvoriť súbor</button>
</form>
<?php
elseif($_POST[‚operacia‘]==“vytvor“):
$kde = $_POST[‚adresar‘].“/“.$_POST[‚nazov‘]; //do premennej vložíme cestu aj s názvom súboru
$fp = @fopen($kde, „w“); // vytvoríme súbor
if(!$fp):
echo „Súbor sa nepodarilo vytvoriť.“;
else:
if(@fwrite($fp, $text)): // zapíšeme do nového súboru obsah
echo „Súbor sa podarilo vytvoriť.“;
else:
echo „Súbor sa nepodarilo vytvoriť.“;
endif;
fclose($fp); // zatvoríme súbor
endif;
endif;
else:?>
Nesprávne zadané údaje!
<?php endif;?>
<br /><br />
<a href=“klient.php?adresar=<?php echo $_POST[‚adresar‘]?>“>Vrátiť sa späť</a>
Týmto končíme seriál o tvorbe náhrady FTP klienta webovým rozhraním. Možete si ho tiež stiahnuť.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Lék na phishing a apatii ve světě e-mailového marketingu
18. března 2024 -
Vaše pošta může být špatně nastavena – svěřte ji profesionálům
13. července 2023 -
Netcat a Ncat
8. prosince 2022
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024