Zo nog een keer, maar duidelijker, ik wil graag dat gebruikers niet meer dan 1 download per sessie kunnen hebben. Ik wil graag de tijd bijhouden en zodra de gebruiker klaar is (of ermee kapt), wacht ik nog 5 seconden en dan mag hij weer downloaden.
Ik gebruik de onderstaande script om de gebruiker ook te beperken op 10 kbs.
Nu lijkt alles wel redelijk in elkaar te zetten, echter als ik eenmaal het script aanroep, en begin met downloaden, is het voor mij niet mogelijk om weer het bestand index.php aan te roepen, dat verdomt hij gewoon. Ook alle anderen scripts die ik heb draaien in localhost met sessie's willen niet werken.
ik snap niet wat er mis gaat, zonder sessie werkt het downloaden en vaak aanroepen prima.
ik kan het wel in 2 aparte browsers (IE en FIREFOX) apart aanroepen, het lijkt er op dat er iets fout gaat met sessie.
heb bijna al half internet afgestruind, en paar voorbeelden die ik vind werken ook niet
Ik gebruik de onderstaande script om de gebruiker ook te beperken op 10 kbs.
Nu lijkt alles wel redelijk in elkaar te zetten, echter als ik eenmaal het script aanroep, en begin met downloaden, is het voor mij niet mogelijk om weer het bestand index.php aan te roepen, dat verdomt hij gewoon. Ook alle anderen scripts die ik heb draaien in localhost met sessie's willen niet werken.
ik snap niet wat er mis gaat, zonder sessie werkt het downloaden en vaak aanroepen prima.
ik kan het wel in 2 aparte browsers (IE en FIREFOX) apart aanroepen, het lijkt er op dat er iets fout gaat met sessie.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <?php ignore_user_abort( true ); session_start(); $file = "test.test"; // file to be send to the client $speed = 10; // 10 kb/s download rate limit if(file_exists($file) && is_file($file) && ( $_SESSION['download_time'] == 0 || $_SESSION['download_time'] < time() - 5 ) ) { header('Cache-Control: public'); header("Content-Type: application/octet-stream"); header("Content-Length: ".filesize($file)); header("Content-Disposition: filename=" . $file); flush(); $fd = fopen($file, "r"); while(!feof($fd) || connection_status()!=0 ) { echo fread($fd, round($speed*1024)); flush(); sleep(1); $_SESSION['download_time'] = time(); } fclose ($fd); } else { ?><a href=index.php>Download</a> is not possible, you are already downloading<? } ?> |
heb bijna al half internet afgestruind, en paar voorbeelden die ik vind werken ook niet
[ Voor 73% gewijzigd door Verwijderd op 18-11-2004 21:15 . Reden: edit: wat heb ik geprobeerd ]