Jak zastosować podany skrypt

Odpowiedz Nowy wątek
2004-05-09 17:53

Rejestracja: 17 lat temu

Ostatnio: 4 godziny temu

0

Cześć. Od dłuższego czasu poszukuje skryptu, który zliczałby ilość pobrań plików z mojej strony internetowej, którą powoli próbuję tworzyć. Stronę mam na serwerze piwko.pl. Jest obsługa PHP. Znalazłem w sieci taki oto skrypt(www.phpcode.uzbycha.com), ale kompletnie nie wiem o co chodzi - jak mam to zastosować do mojej strony. Niestety, PHP, ciągle jest poza mną... Dlatego napiszcie prosze jak mam zastosować ten skrypt, aby zliczył mi ilość pobrań pliku.
Załóżmy, że na serwerze mam plik download.html. Tam mam odnośnik do ściągnięcia pliku:np:
<A HREF="http://www.login.website.pl/projekty/doSciogniecia.zip" Pobierz</a>
I teraz, z sieci ściągnąłem skrypt, który ma to realizować - zapisać do pliku liczbę ściągnięć, zwiększając licznik przy ściaganiu i wyświetlić na stronie download.html ile razy plik pobrano.
Jest to: download.php

<?
extract($_GET);
/*wyodrębnianie zmiennych przesyłanych metodą GET */
if($plik==TRUE&&file_exists($plik))
{
/*Jeżeli zmienna $plik ma jakąś wartość i jeżeli plik istnieje*/
$nazwa_pliku = explode(".", $plik);
/*wyodrębnianie nazwy pliku bez rozszerzenia */
if(!file_exists("$nazwa_pliku[0].dow"))
{
/* jeżeli plik z liczbą pobrań nie istnieje - stwórz plik */ 
$otworz_plik = fopen("$nazwa_pliku[0].dow","a");
fclose($otworz_plik);
}
$tablica_pliku = file("$nazwa_pliku[0].dow");
/* sprowadzenie pliku z liczbą pobrań do tablicy */
$ilosc=$tablica_pliku[0]+1;
/* zwiększenie ilości pobrań o jeden */
$otworz_plik = fopen("$nazwa_pliku[0].dow","w");
flock($otworz_plik, 2);
fwrite($otworz_plik, $ilosc);
flock($otworz_plik, 3);
fclose($otworz_plik);
/* zapis zwiększonej o 1 ilości pobrań */
header("Location: $plik");
/* przekierowanie do pobieranego pliku */
}else
{
/* jeżeli plik nie istnieje, bądź zmienna $plik nie ma żadnej wartości wyświetl napis */
echo "Brak pliku !!!";
}
?>

oraz index.php

<a href="download.php?plik=nazwa_pliku.zip">Nazwa pliku</a>
Pobrań: <? 
$plik_p = "nazwa_pliku.dow"; 
if(file_exists($plik_p)) 
{ 
$tablica_pliku = file($plik_p); 
$ilosc=$tablica_pliku[0]; 
echo $ilosc; 
} 
else 
{ 
echo "0"; 
} 
?>

Proszę o podpowiedź jak to się robi, bo cieniutki jestem z tego...
Skrypt z komentarzami, ale ja nie kumam jak to zastosować - składnię skryptów rozumiem.
Pozdr
pepe


Zapraszam:
http://www.pawelporwisz.pl
Potrzebujesz instalator? Napiszę go za Ciebie (NSIS).
Potrzebujesz program? Napiszę go za Ciebie (Delphi).

Pozostało 580 znaków

2004-05-09 19:09

Rejestracja: 16 lat temu

Ostatnio: 1 rok temu

0

Sciagasz w ten sposob:

download.php?file=cos.rar

w download.php cos takiego:

<?
  $filename = "counter_$_GET['file'].txt";

  $fp = fopen($filename, 'r');
  $count = fgets($fp, 4096);
  $count += 1;
  fclose($fp);

  $fp = fopen($filename, 'w');
  flock($fp, LOCK_EX);
  fputs($fp, $count);
  flock($fp, LOCK_UN);
  fclose($fp);

  header ("Location: http://www.serwer.pl/download/$_GET['file']"); 
?>

zeby to wyswietlic wstaw do strony z downloadem taki kod:

<?
  function GetCount($file) {
    $filename = "counter_$file.txt";

    $fp = fopen($filename, 'r');
    $count = fgets($fp, 4096);
    fclose($fp); 
    return $count; 
  }
?>

a potem pod kazdym plikiem:

<? echo GetCount("cos.rar"); ?>

Moze nie dzialac, w razie problemow pisz.


Pozostało 580 znaków

2004-05-09 20:04

Rejestracja: 17 lat temu

Ostatnio: 4 godziny temu

0

no więc, wyskoczył błąd:
zrobilem tak.
Do pliku download.html, na samym początku pliku, przed secją html, wkleiłem

<?
   function GetCount($file) {
      $filename = "counter_$file.txt";

      $fp = fopen($filename, 'r');
      $count = fgets($fp, 4096);
      fclose($fp); 
      return $count; 
   }
?>

oraz przy scioganym pliku takie cos(znaczniki a pominolem tutaj celowo):
href="download.php?file=nazwapliku.zip">NazwaPliku

Na serwerze utworzyłem plik tekstowy o prawach 777, nazwapliku.zip.txt
(bo tak skrypt podaje te nazwe).
No i w pliku download.php dalem odpowiedni adres serwera.
No i po kliknięciu w link na stronie download.php otrzymuje komunikat:

Parse error: parse error, expecting T_STRING' orT_VARIABLE' or `T_NUM_STRING' in /home/piwko/users/website.pl/p/login/download.php on line 2

Co jest nie tak?
Ten przykład co podałeś, jak mi się wydaje, wymaga do działania dla kazdego sciogane pliku z serwera osobnego pliku tekstowego, w ktorym zapisuje sie liczba sciogniec. Trzeba je tworzyc recznie. Ja podalem powyzej kod skryptów, ktore tworza jeden plik z wpisami... Czy ktoś wie jak ten skrypt wykorzystać?
Pozdr/pepe


Zapraszam:
http://www.pawelporwisz.pl
Potrzebujesz instalator? Napiszę go za Ciebie (NSIS).
Potrzebujesz program? Napiszę go za Ciebie (Delphi).

Pozostało 580 znaków

2004-05-09 20:35

Rejestracja: 16 lat temu

Ostatnio: 1 rok temu

0
<?
   $filename = 'counter_' . $_GET['file'] . '.txt';

   $fp = fopen($filename, 'r');
   $count = fgets($fp, 4096);
   $count += 1;
   fclose($fp);

   $fp = fopen($filename, 'w');
   flock($fp, LOCK_EX);
   fputs($fp, $count);
   flock($fp, LOCK_UN);
   fclose($fp);

   header ('Location: http://www.serwer.pl/download/' . $_GET['file']);
?>

To powinno dzialac, sry, ze nie sprawdzilem od razu. CO do pliku to on sobie go stworzy, ew po fopen mozesz wrzucic

chmod ($filename, 0777);

Pozostało 580 znaków

2004-05-09 21:48

Rejestracja: 17 lat temu

Ostatnio: 4 godziny temu

0

<?
$filename = 'counter_' . $_GET['file'] . '.txt';

$fp = fopen($filename, 'r');
$count = fgets($fp, 4096);
$count += 1;
fclose($fp);

$fp = fopen($filename, 'w');
flock($fp, LOCK_EX);
fputs($fp, $count);
flock($fp, LOCK_UN);
fclose($fp);

header ('Location: http://www.serwer.pl/download/' . $_GET['file']);
?>

> 
> To powinno dzialac, sry, ze nie sprawdzilem od razu. CO do pliku to on sobie go stworzy, ew po fopen mozesz wrzucic 
```php
chmod ($filename, 0777);

Działa!!! Dzięki. Ale plik się nie utworzył, musiałem go stworzyć ręcznie.
Fajnie... Teraz nic mi nie pozostaje jak popracować nad składnią PHP i troszkę to zmodyfikować...
Pozdr/pepe


Zapraszam:
http://www.pawelporwisz.pl
Potrzebujesz instalator? Napiszę go za Ciebie (NSIS).
Potrzebujesz program? Napiszę go za Ciebie (Delphi).

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0