Autor Zpráva
zeldacz
Profil
Ahoj mám takový problém vytvářím si databázi souborů a chtěl bych tam mít i odstraňování a přejmenovávání souborů a vůbec nevím jak to udělat mohly byste mi s tím poradit???
<form action="prace_se_soubory.php" method="GET">
<? 
$slozka = dir("."); 
while($soubor=$slozka->read()) { 
if ($soubor=="." || $soubor=="..") continue; 
echo "<b><a href=\"$soubor\">".$soubor."</a><br>\n</b>"; 
}
$slozka->close(); 
?>  
</form>
Taps
Profil
zeldacz:
pro smazání použiji funkci unlink, pro přejmenování rename. Jinak je nutné název souboru dostat do url a poté ho při dané operacé (smazání/přejmenováni) zpracovat
Chro
Profil
zeldacz:
Sice to není nijak zvlášť košer kód co se týče bezpečnosti a provedení, ale pro představu.

Soubor spravce.php:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<style>
body {
font-family: Arial, Helvetica, sans-serif;
}
table {
margin: 20px 0 0 0;
border: 1px solid blue;
}
</style>
</head>
<body>
<?php
define('TENTO_SKRIPT', 'spravce.php');
define('SLOZKA', '.');
if (isset($_GET['akce']) && isset($_GET['soubor']))
{
$akce = $_GET['akce'];
$soubor = stripslashes(strip_tags($_GET['soubor']));
$soubor_vystup = htmlspecialchars($soubor, ENT_QUOTES);
if ($akce == 'smazat' && $soubor != FALSE)
{
if (file_exists($soubor))
{
unlink($soubor);
echo 'Soubor <b>'.$soubor_vystup.'</b> byl smazán<br>'."\n";
}
}
if ($akce == 'prejmenovat' && $soubor != FALSE)
{
echo '<form action="'.TENTO_SKRIPT.'" method="get">
Soubor: <b>'.$soubor_vystup.'</b><br>
<input type="hidden" name="puvodni_soubor" value="'.$soubor_vystup.'">
<input type="text" name="soubor" value="" size="30">
<input type="submit" name="akce" value="Přejmenuj">
</form>';
}
if ($akce == 'Přejmenuj' && $soubor != FALSE && $_GET['puvodni_soubor'] != FALSE)
{
$puvodni_soubor = stripslashes(strip_tags($_GET['puvodni_soubor']));
if (file_exists($puvodni_soubor))
{
rename($puvodni_soubor, $soubor);
echo 'Soubor <b>'.htmlspecialchars($puvodni_soubor, ENT_QUOTES).'</b> byl přejmenován na <b>'.$soubor_vystup.'</b><br>'."\n";
}
}
}
$slozka = dir(SLOZKA);
echo '<table>';
while($soubor = $slozka ->read())
{
if (is_dir($soubor) || $soubor == TENTO_SKRIPT)
continue;
$soubor_vystup = htmlspecialchars($soubor, ENT_QUOTES);
echo '<tr>
<td>
<a href="'.$soubor_vystup.'"><b>'.$soubor_vystup.'</b></a>
</td>
<td>
<a href="'.TENTO_SKRIPT.'?akce=prejmenovat&amp;soubor='.$soubor_vystup.'">Přejmenovat</a>
<a href="'.TENTO_SKRIPT.'?akce=smazat&amp;soubor='.$soubor_vystup.'">Smazat</a>
</td>
</tr>';
}
$slozka ->close();
?>
</table>
</body>
</html>
zeldacz
Profil
Moc všem děkuju
zeldacz
Profil
Ale mazání souborů mi jde a když dám přejmenovat tak mi vyběhne pole k přejmenování ale soubor se nepřejmenuje. Mohly byste mi s tím prosím poradit?
zeldacz
Profil
Aha už vím měl sem špatně nastavenou češtinu tak už mi to funguje. Moc vám děkuju

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0