🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#242
Author: VipeR
Date: Sun, 19 Aug 2001 15:41
22 lines
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
#243
Author: Marcin Gibuła
Date: Sun, 19 Aug 2001 16:45
33 lines
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
#245
Author: Krzysztof Walkowicz
Date: Sun, 19 Aug 2001 17:08
41 lines
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
#244
Author: VipeR
Date: Sun, 19 Aug 2001 20:44
31 lines
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