V tomto diely seriálu o tvorbe náhrady FTP klienta si vytvoríme webové rozhranie pre zmenu prístupových práv k súborom a adresárom a pre upload súborov na server. Pre prácu so spomenutými nástrojmi nám znova poslúžia formuláre.

Dnes nám pribudnú dva nové súbory:

  • upload.php – skript pre uploadovanie súborov na server
  • prava.php – nastavenie práv pre súbory a adresáre

Okrem toho sa nám znova tak trochu zmení hlavná stránka klient.php, kde pribudnú tri nové formuláre. Jednoducho ich vložíte pod už existujúce formuláre, o ktorých sa môžete dočítať v predošlých dieloch. Nové formuláre pre upload súborov a zmenu práv pre súbory a adresáre budú vyzerať takto:

<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“ />&nbsp;<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)) {
    $cas = filemtime(„$adresar/$entry“);
    if(!ereg(„^[.]+$“, $entry)):
      if(is_file(„$adresar/$entry“)):
        echo „<option value=\“$entry\“>$entry</option>“;
      endif;
    endif;
  }
?>
</select>&nbsp;
<input type=“text“ name=“prava“ onfocus=’this.value=““;‘ value=“prístupové práva“ class=“textinput“ />
&nbsp;
<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)) {
    $cas = filemtime(„$adresar/$entry“);
    if(!ereg(„^[.]+$“, $entry)):
      if(!is_file(„$adresar/$entry“)):
        echo „<option value=\“$entry\“>$entry</option>“;
      endif;
    endif;
  }
?>
</select>&nbsp;
<input type=“text“ name=“prava“ onfocus=’this.value=““;‘ value=“prístupové práva“ class=“textinput“ />
&nbsp;
<button type=“submit“ class=“button“>Nastaviť</button>
</form>

Formuláre fungujú na tom istom princípe ako ostatné, premenné uchovávame v skrytých poliach. Súbor upload.php nám bude uploadovať súbory do práve otvoreného adresára. Jednoducho stačí prostredníctvom formulárového prvku file vybrať súbor a po kliknutí na upload sa nám súbor odošle na stránku s príslušným skriptom, ktorý celý proces spracuje. Súbor bude vyzerať nasledovne:

<?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>Upload súborov</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 – upload súborov</h3>
<hr size=“1″ color=“#005FA4″ />
<?php
  if($_FILES[‚subor‘]!=“false“ && $_POST[‚adresar‘]!=“false“):
    if (@move_uploaded_file($_FILES[‚subor‘][‚tmp_name‘], $_POST[‚adresar‘].“/“.$_FILES[‚subor‘][‚name‘])):
      echo „Súbor sa podarilo úspešne uploadovať na server.“;
    else:
      echo „Súbor sa nepodarilo uploadovať na server.“;
    endif;
  else:
?>
Nesprávne zadané údaje!
<?php endif;?>
<br /><br />
<a href=“klient.php?adresar=<?php echo $_POST[‚adresar‘]?>“>Vrátiť sa späť</a>
</body>
</html>

Pre uploadovanie súboru na server nám poslúži funkcia move_uploaded_file(). Väčšina funkcií v FTP klientovi je ošetrená tak, aby sa nezobrazovali chybové hlásenia. Na konci každej stránky okrem hlavnej (to je klient.php) je odkaz na návrat späť. Tento odkaz sa zobrazí v každom prípade. Okrem toho sú všetky stránky neprístupné off-line pre ochranu údajov.

Pri práci so súbormi a adresármi niekedy potrebujeme zmeniť ich prístupové práva. Náš FTP klient nám to samozrejme umožní. Osobitne sa budú nastavovať práva pre súbory a adresáre. Operácie nám bude spracovávať nový súbor prava.php, ktorý vyzerá nasledovne:

<?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>Prístupové práva</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 – prístupové práva</h3>
<hr size=“1″ color=“#005FA4″ />
<?php
  if($_POST[‚prava‘]!=“false“ && $_POST[‚adresar‘]!=“false“):
    $kde = $_POST[‚adresar‘].“/“.$_POST[‚nazov‘]; //do premennej vložíme cestu aj s názvom súboru
    if(@ChMod($kde, $_POST[‚prava‘])):
      echo „Prístupové práva sa podarilo úspešne zmeniť.“;
    else:
      echo „Prístupové práva sa nepodarilo zmeniť.“;
    endif;
  else:
?>
Nesprávne zadané údaje!
<?php endif;?>
<br /><br />
<a href=“klient.php?adresar=<?php echo $_POST[‚adresar‘]?>“>Vrátiť sa späť</a>
</body>
</html>

Na zmenu prístupových práv pre súbory a adresáre nám poslúži len jeden skript. Ten bude teda „univerzálny“. Všetko je graficky spracované prostredníctvom CSS.

V budúcom poslednom diely sa pozrieme na vytváranie nových súborov, kopírovanie súborov na servery a na zvýraznenie syntaxe kódu v súbore.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět