Thread View: pl.comp.lang.php
4 messages
4 total messages
Started by VipeR
Sun, 19 Aug 2001 15:41
get.php i inne skrypty
Author: VipeR
Date: Sun, 19 Aug 2001 15:41
Date: Sun, 19 Aug 2001 15:41
22 lines
1705 bytes
1705 bytes
Witam grupowiczow. Od razu zaznacze, ze moja znajomosc z PHP siega kilku dni. Chcialbym na stronce zrobic liste najczesciej sciaganych plikow, ktora odwolywalaby się nie do dokładnych lokalizacji plików (tak jak robi to np. get_file) ale pokazuje przypisane im wczesniej nazwy. Z drugiej strony nie chcialbym, zeby tak jak w skrypcie topdownloads, ktory tez gdzies dorwalem, kazdy plik musial miec osobny log. Na niektorych stronach (fifa.valhalla.pl, flashzone.pl, php.pl) widzialem to wlasnie rozwiazane w taki sposób, jaki mam na myśli. Jeśli ktoś z grupowiczów wie gdzie możnaby dorwać taki skrypt, bądź bynajmniej wskazać źródło i dać trochę podpowiedzi, dzięki którym mógłbym sam spłodzić owe cacko - będę wdzięczny za pomoc. pozdr, VIpeR
Re: get.php i inne skrypty
Author: Marcin Gibuła
Date: Sun, 19 Aug 2001 16:45
Date: Sun, 19 Aug 2001 16:45
33 lines
1823 bytes
1823 bytes
> bądź bynajmniej wskazać źródło i dać trochę podpowiedzi, dzięki którym
Podpowiedzi? Moze byc :)
Masz dwa pliki z baza danych (np. gdbm);
W jednym kluczem jest skrot, a wartoscia rzeczywista nazwa pliku, w drugim
kluczem jest skrot, a wartoscia liczba sciagniec.
W pliku o nazwie np. get.php masz mniej wiecej cos takiego (tylko schemat
oczywiscie):
$name = $HTTP_GET_VARS['file'];
$counter_db = dba_open("count.db","c","gdbm");
$names_db = dba_open("names.db","c","gdbm");
$count = dba_fetch($counter_db,$name);
$path = dba_fetch($names_db,$name);
dba_replace($counter_db,++$count);
header("Location: $path");
dba_close($counter_db);
dba_close($names_db);
Wywolujesz jako get.php?file=costam, a w bazach masz np cos takiego:
w counter.db: costam => 2
w named.db: costam => pliki/cosik.zip
To mozna zrobic jeszcze na wiele sposobow, ten wymagal chyba najmniej
pisania :)
--
MG
Re: get.php i inne skrypty
Author: Krzysztof Walkowicz
Date: Sun, 19 Aug 2001 17:08
Date: Sun, 19 Aug 2001 17:08
41 lines
2390 bytes
2390 bytes
> Od razu zaznacze, ze moja znajomosc z PHP siega kilku dni. Chcialbym na
> stronce
> zrobic liste najczesciej sciaganych plikow, ktora odwolywalaby się nie do
> dokładnych
> lokalizacji plików (tak jak robi to np. get_file) ale pokazuje przypisane
im
> wczesniej
> nazwy.
Generalnie chodzi o to aby przy wywolaniu pliku get.php z parameterem np.
file=stuff.exe gdzies zwiekszyc licznik sciagniecia pliku stuff.exem Moze to
byc zwykly plik postaci: nazwa_pliku|ilosc_sciagniec, lub baza MySQL.
Nastepnym krokiem jest ustalenie naglowka Content-type, co uzyskasz uzywajac
konstrukcji:
header("Content-type: application/octet-stream");
jesli wysylasz pliki wykonywalne. Wazne, aby funkcja header() zostala
wywolana nim cokolwiek wyslesz do przegladarki. Pozniej nalezy wyslac
zawartosc pliku zadanego przez klienta do przegladarki, co mozesz zrobic
korzystajac np. z:
<?php
$f = fopen($file, "r");
while (!feof($f))
$plik .= fread($f, 8192);
fclose($f);
echo $plik;
?>
Hmm... wlasnie mysle, ze to rozwiazanie nie jest dobre i chyba lepiej bedzie
uzyc:
header("Location: downloads/$file");
aby wyslac plik do klienta, ktory znajduje sie w katalogu downloads
pozdrawiam,
--
Krzysztof Walkowicz <kw@php.pl>
[ webdeveloper / sysadmin ]
Re: get.php i inne skrypty
Author: VipeR
Date: Sun, 19 Aug 2001 20:44
Date: Sun, 19 Aug 2001 20:44
31 lines
2157 bytes
2157 bytes
No coz, chyba przecenilem swoje mozliwosci :)
Prawda jest taka, ze moja znajomosc PHP jest nadal dosc mizerna,
a jesli chodzi o korzystanie z baz danych - wlasnie zabieram sie
do rozgryzienia MySQL. Prosilbym o wytlumaczenie paru rzeczy jak
laikowi (np. gdbm??!!) Rowniez funkcja dba_open nie jest mi w ogole znana.
Dopiero zaczynam moja przygode z PHP, na razie poznalem same podstawy,
a moje doswiadczenie zdobywam najchetniej na analizowaniu i modyfikowaniu
gotowych skryptow. Jesli zatem moglbym liczyc na troche wiecej
wytlumaczenia,
badz gotowy skrypt - bylbym bardzo wdzieczny.
pozdr,
VipeR
> Podpowiedzi? Moze byc :)
> Masz dwa pliki z baza danych (np. gdbm);
> W jednym kluczem jest skrot, a wartoscia rzeczywista nazwa pliku, w drugim
> kluczem jest skrot, a wartoscia liczba sciagniec.
>
> W pliku o nazwie np. get.php masz mniej wiecej cos takiego (tylko schemat
> oczywiscie):
>
> $name = $HTTP_GET_VARS['file'];
>
> $counter_db = dba_open("count.db","c","gdbm");
> $names_db = dba_open("names.db","c","gdbm");
>
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads