SKrypt nie działa, cos zjadlem?

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
turttle
Posty: 1
Rejestracja: pn wrz 27, 2010 7:44 pm

SKrypt nie działa, cos zjadlem?

Post autor: turttle »

Nie jestem biegły w PHP i potrzebuje pomocy.
Znalazłem ten skrypt w artykule na tej stronie.
Są 4 pliki php
dodaj.php

Kod: Zaznacz cały

<? 
if (isset($_POST['plik']) && $_POST['plik'] != '' && isset($_POST['nazwa']) && $_POST['nazwa'] != '') 
{
if (!file_exists($katalog.'/'.$_POST['nazwa'])) 
{ 
if (copy($_POST['plik'], $katalog.'/'.$_POST['nazwa'])) 
{ @chmod($katalog.'/'.$_POST['nazwa'], 666); print 'Plik został dodany.'; } 
else { print 'Nie można było dodać pliku.'; } } 
else { print 'Plik o podanej nazwie już istnieje.'; }} 
else { 
?> 
W celu dodania pliku należy wybrać jego lokalizację na dysku, a następnie wskazać odpowiednią nazwę, 
pod jaką będzie przechowywany na serwerze.<br><br> 
<form method="POST"> 
<input type="hidden" name="do" value="dodaj"> 
<input type="hidden" name="MAX_FILE_SIZE" value="500000"> 
Nazwa pliku na serwerze: <input type="text" name="nazwa" size="43"><br> 
Lokalizacja: <input type="file" name="plik" size="25"><br> 
<input type="submit" value="dodaj"> </form> 
<? 
} 
?>
usun.php

Kod: Zaznacz cały

8<? if (isset($_POST['co']) && count($_POST['co']) != 0) { $popr = 0; 
$co = $_POST['co']; $kat = dir($katalog); 
while ($poz = $kat->read()) 
{ 
if (preg_match("/^.+..+$/i", $poz)) 
{ for ($j=0; $j < count($co); $j++) 
{ if ($poz == $co[$j]) 
{ $popr = (unlink($katalog.'/'.$poz)) ? $popr+1 : $popr; } } } } $kat->close();
if (count($_POST['co']) == $popr) 
{ print 'Wskazane pliki zostały usunięte.'; } 
else { print 'Nie można było usunąć kilku lub wszystkich z wybranych plików.'; } } 
else { print 'Nie zostały zaznaczone pliki do usunięcia.'; } 
?>
pokaz.php

Kod: Zaznacz cały

Aby usunąć plik należy zaznaczyć znajdujące się przy nim pole 'checkbox' a następnie wcisnąć przycisk 'usuń'. 
Na raz można usunąć jeden lub więcej plików
<br><br> 
<div align="center"> 
<form method="POST"> 
<input type="hidden" name="do" value="usun"> 
<table cellpadding="2" cellspacing="1"> <tr> 
<th width="30" height="15" align="center" valign="middle">
Lp.</th> <th width="120" height="15" align="center" valign="middle">
Nazwa pliku</th> <th width="40" height="15" align="center" valign="middle">
Zaznacz</th> </tr>
<? 
$kat = dir($katalog); 
$i=1; 
while($poz = $kat->read()) { 
if (preg_match("/^.+..+$/i", $poz)) 
{ 
print '<tr> <td height="15" align="left" valign="middle">'.$i.'</td> 
<td height="15" align="left" valign="middle"><a href="'.$katalog.'/'.$poz.'" target="_new">'.$poz.'</a></td>
<td height="15" align="center" valign="middle"><input type="checkbox" name="co[]" value="'.$poz.'">
</td> </tr>'; $i++; } } 
$kat->close();
?> 
</tr> </table> <br> <input type="submit" value="usuń zaznaczone"> </form> </div>
index.php

Kod: Zaznacz cały

<? $do = $_GET['do']; $katalog = "download"; 
?>
<html> 
<head> </head> 
<body> 
<table cellpadding=0 cellspacing=0 border=1> <tr> 
<td width=170 height=300 align=left valign=top> 
<b>Menu</b><br><br> » <a href=index.php?do=pokaz>pokaż wszystkie </a>
<br> » <a href=index.php?do=dodaj>dodaj plik</a>
<br> </td> <td width=400 align=left valign=top> 
<? 
if (!$do || $do == 'pokaz') 
{ print '<b>Wszytskie pliki na serwerze</b><br><br>'; 
include('pokaz.php'); } 
elseif ($do == 'dodaj') { print '<b>Dodawanie pliku na serwer</b><br><br>'; 
include('dodaj.php'); }
elseif ($do == 'usun') 
{ print '<b>Usuwanie pliku z serwera</b><br><br>'; 
include('usun.php'); } 
else { print '<b>error 404</b><br><br>Nie ma takiej strony!'; } 
?> 
</td> </tr> </table> </body> </html>
Po najechaniu na przycisk "usuń zaznaczone" nie pojawia się niestety odpowiedni link i skrypt nie działa.
Skrypt ma służyć do wysyłanie i kasowania plików na serwerze
Może ktoś ewentualnie podpowie jak zrobić żeby przy każdym pliku pojawiał się link do usunięcia , zamiast checkboxa?
Proszę o pomoc.
ODPOWIEDZ