Likes Likes:  0
Resultaten 1 tot 15 van de 15
Geen

Onderwerp: download counter

  1. #1
    NBB Groningen
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    download counter

    Goedendag,

    Ik ben op zoek naar een (PHP?) script die telt hoeveel keer
    een bepaald document van mijn site is gedownload.
    Het liefst niet met een MySQL database, want ik ben een
    volstrekte leek :-)
    Bedankt alvast, Inge


  2. #2
    Marc
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter


    "NBB Groningen" <nbbgro@xs4all.nl> schreef in bericht
    news:3EF1765F.FD376473@xs4all.nl...
    > Goedendag,
    >
    > Ik ben op zoek naar een (PHP?) script die telt hoeveel keer
    > een bepaald document van mijn site is gedownload.
    > Het liefst niet met een MySQL database, want ik ben een
    > volstrekte leek :-)
    > Bedankt alvast, Inge
    >


    Ik sluit me graag aan bij deze vraag ;-)

    Marc.


    ---
    Outgoing mail is certified Virus Free.
    Checked by AVG anti-virus system (http://www.grisoft.com).
    Version: 6.0.489 / Virus Database: 288 - Release Date: 6/10/2003




    ---
    Outgoing mail is certified Virus Free.
    Checked by AVG anti-virus system (http://www.grisoft.com).
    Version: 6.0.489 / Virus Database: 288 - Release Date: 6/3/2003



  3. #3
    Rene A
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter


    "Marc" <Marcnono@nonohotmail.com> schreef in bericht
    news:bcs860$tv2$2@news4.tilbu1.nb.home.nl...
    > > volstrekte leek :-)
    > > Bedankt alvast, Inge
    > >

    >
    > Ik sluit me graag aan bij deze vraag ;-)
    >



    Ik hoef geen counter maar ik ben ook een leek (-;

    --

    Rene
    http://www.EasyFactuur.com



  4. #4
    Ronald Klip
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    NBB Groningen schreef:
    >
    > Ik ben op zoek naar een (PHP?) script die telt hoeveel keer
    > een bepaald document van mijn site is gedownload.
    > Het liefst niet met een MySQL database, want ik ben een
    > volstrekte leek :-)


    Het lijkt mij dat sites als hotscripts.com talloze van dergelijke
    scripts kant-en-klaar hebben liggen...

    In zeer eenvoudige vorm zou het er zo uit kunnen zien:

    <?php
    $teller = "teller.txt";
    $download = "naamVanTeDownloadenBestand";
    // bestand openen, stand lezen, sluiten
    if ($fp = fopen($teller, "r")) {
    $stand = fread($fp, filesize($teller));
    fclose($fp);
    } else {
    exit;
    }
    // bestand weer openen, nieuwe stand wegschrijven, sluiten
    if ($fp = fopen($teller, "w")) {
    $stand++;
    fwrite($fp, $stand);
    fclose($fp);
    // browser naar de download sturen
    header("Location: $download");
    } else {
    exit;
    }
    ?>

    Op te slaan als leukenaam.php. Plaats het in een de directory waar ook
    de download staat. Maak een leeg bestandje teller.txt, uploaden naar de
    directory, permissies aanpassen zodat de webserver/php schrijfrechten
    krijgt op het bestandje (chmod 646, geloof ik).

    In plaats van naar de download link je voortaan naar het script. Het
    aantal keren dat het bestand opgevraagd is kun je zien door naar
    teller.txt te surfen.

    Aanvullingen of verbeteringen zijn welkom; dit 'werkt' alvast.

    --
    groet, Ronald

  5. #5
    Daniel Tryba
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    Ronald Klip <ronald@bladibla.njet> wrote:
    > <?php
    > $teller = "teller.txt";
    > $download = "naamVanTeDownloadenBestand";
    > // bestand openen, stand lezen, sluiten
    > if ($fp = fopen($teller, "r")) {
    > $stand = fread($fp, filesize($teller));
    > fclose($fp);
    > } else {
    > exit;
    > }
    > // bestand weer openen, nieuwe stand wegschrijven, sluiten
    > if ($fp = fopen($teller, "w")) {
    > $stand++;
    > fwrite($fp, $stand);
    > fclose($fp);
    > // browser naar de download sturen
    > header("Location: $download");
    > } else {
    > exit;
    > }
    > ?>
    >
    > Aanvullingen of verbeteringen zijn welkom; dit 'werkt' alvast.


    -2x het zelfde bestand openen: kan ook met 1 fopen (w+) en 1 rewind.
    -geen filelocking dus als er een read plaats vind tussen tussen een
    fopen "w" en fclose is $stand leeg: flock
    -je kan ook rechtstreeks bij het bestand komen, readfile als mogelijke
    oplossing.

    Indien mogelijk is het parsen van de access log file interessanter

    --

    Daniel Tryba


  6. #6
    NBB Groningen
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    > > Ik ben op zoek naar een (PHP?) script die telt hoeveel keer
    > > een bepaald document van mijn site is gedownload.
    > > Het liefst niet met een MySQL database, want ik ben een
    > > volstrekte leek :-)

    >
    > Het lijkt mij dat sites als hotscripts.com talloze van dergelijke
    > scripts kant-en-klaar hebben liggen...


    Dat viel me tegen......gezocht op download counters. Wel enkele
    gevonden, maar meestal moeten die samen met een MySQL
    database gebruikt worden. Ook een CGI gevonden, maar die
    kreeg ik niet aan de praat.

    > In zeer eenvoudige vorm zou het er zo uit kunnen zien:


    [php-script en uitleg]

    > Aanvullingen of verbeteringen zijn welkom; dit 'werkt' alvast.


    Enorm bedankt! Het werkt! Kan ik het beste nog wachten op
    aanvullingen of verbeteringen of kan ik het zo als het nu is
    gaan gebruiken?

    Groeten, Inge



  7. #7
    Marcus
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    NBB Groningen wrote:
    >> > Ik ben op zoek naar een (PHP?) script die telt hoeveel keer
    >> > een bepaald document van mijn site is gedownload.
    >> > Het liefst niet met een MySQL database, want ik ben een
    >> > volstrekte leek :-)

    >>
    >> Het lijkt mij dat sites als hotscripts.com talloze van dergelijke
    >> scripts kant-en-klaar hebben liggen...

    >
    > Dat viel me tegen......gezocht op download counters. Wel enkele
    > gevonden, maar meestal moeten die samen met een MySQL
    > database gebruikt worden. Ook een CGI gevonden, maar die
    > kreeg ik niet aan de praat.
    >
    >> In zeer eenvoudige vorm zou het er zo uit kunnen zien:

    >
    > [php-script en uitleg]
    >
    >> Aanvullingen of verbeteringen zijn welkom; dit 'werkt' alvast.

    >
    > Enorm bedankt! Het werkt! Kan ik het beste nog wachten op
    > aanvullingen of verbeteringen of kan ik het zo als het nu is
    > gaan gebruiken?


    Ik zou in ieder geval de tip over flock gebruiken opvolgen, anders
    wodt het counten nogal random. Misschien dat Daniel voor je kan
    uittypen waar je dit precies in moet voegen, of dat je het zelf ff
    uitzoekt (erg nuttig)

    Mark

  8. #8
    NBB Groningen
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    [php download counter script plus uitleg]

    > >> Aanvullingen of verbeteringen zijn welkom; dit 'werkt' alvast.

    > >
    > > Enorm bedankt! Het werkt! Kan ik het beste nog wachten op
    > > aanvullingen of verbeteringen of kan ik het zo als het nu is
    > > gaan gebruiken?

    >
    > Ik zou in ieder geval de tip over flock gebruiken opvolgen, anders
    > wodt het counten nogal random. Misschien dat Daniel voor je kan
    > uittypen waar je dit precies in moet voegen, of dat je het zelf ff
    > uitzoekt (erg nuttig)


    Daniel, zou jij dat willen doen? Bedankt alvast!
    ('t is geen luiheid, maar het totaal onbekend zijn met php)

    Groeten, Inge

    > Mark



  9. #9
    Daniel Tryba
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    NBB Groningen <nbbgro@xs4all.nl> wrote:
    >> Ik zou in ieder geval de tip over flock gebruiken opvolgen, anders
    >> wodt het counten nogal random. Misschien dat Daniel voor je kan
    >> uittypen waar je dit precies in moet voegen, of dat je het zelf ff
    >> uitzoekt (erg nuttig)

    >
    > Daniel, zou jij dat willen doen? Bedankt alvast!
    > ('t is geen luiheid, maar het totaal onbekend zijn met php)


    Jaja, de enige manier om over de onbekendheid met PHP heel te komen is
    lezen en proberen.

    Nu zitten er aan flock enkele haken en ogen aangezien je de file al open
    moet hebben voordat je kunt locken

    Dus bij deze maar een voorbeeldje om zelf even te testen hoe het ook alweer
    in z'n werk ging:

    $ cat lock.php
    #!/usr/bin/php4 -q
    <?php

    if($_SERVER['argc']!=2)
    {
    die("usage: '{$_SERVER['argv'][0]}' somestring\n");
    }

    $file='tst.txt';

    if(!file_exists($file))
    {
    touch($file);
    }

    sleep(rand(1,5));

    $start=time();

    if($fp=fopen($file,'r+'))
    {
    flock($fp,LOCK_EX);

    $count=(int)fread($fp,filesize($file));

    sleep(3);

    rewind($fp);
    ftruncate($fp,0);
    fwrite($fp,++$count);

    flock($fp,LOCK_UN);
    fclose($fp);

    $stop=time();
    echo "count: $count arg: {$_SERVER['argv'][1]} start: $start, stop: $stop\n";
    }
    ?>

    De test:
    $ for a in 0 1 2 3 4 5 6 7 8 9; do (./lock.php $a &) ; done
    count: 1 arg: 3 start: 1056050781, stop: 1056050784
    count: 2 arg: 6 start: 1056050781, stop: 1056050787
    count: 3 arg: 5 start: 1056050781, stop: 1056050790
    count: 4 arg: 4 start: 1056050782, stop: 1056050793
    count: 5 arg: 7 start: 1056050782, stop: 1056050796
    count: 6 arg: 8 start: 1056050782, stop: 1056050799
    count: 7 arg: 0 start: 1056050783, stop: 1056050802
    count: 8 arg: 2 start: 1056050783, stop: 1056050805
    count: 9 arg: 1 start: 1056050785, stop: 1056050808
    count: 10 arg: 9 start: 1056050785, stop: 1056050811
    $ for a in 0 1 2 3 4 5 6 7 8 9; do (./lock.php $a &) ; done
    count: 11 arg: 0 start: 1056052123, stop: 1056052126
    count: 12 arg: 3 start: 1056052123, stop: 1056052129
    count: 13 arg: 5 start: 1056052123, stop: 1056052132
    count: 14 arg: 1 start: 1056052124, stop: 1056052135
    count: 15 arg: 8 start: 1056052124, stop: 1056052138
    count: 16 arg: 9 start: 1056052125, stop: 1056052141
    count: 17 arg: 2 start: 1056052126, stop: 1056052144
    count: 18 arg: 4 start: 1056052126, stop: 1056052147
    count: 19 arg: 6 start: 1056052126, stop: 1056052150
    count: 20 arg: 7 start: 1056052126, stop: 1056052153
    $

    --

    Daniel Tryba


  10. #10
    NBB Groningen
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    > >> Ik zou in ieder geval de tip over flock gebruiken opvolgen, anders
    > >> wodt het counten nogal random. Misschien dat Daniel voor je kan
    > >> uittypen waar je dit precies in moet voegen, of dat je het zelf ff
    > >> uitzoekt (erg nuttig)

    > >
    > > Daniel, zou jij dat willen doen? Bedankt alvast!
    > > ('t is geen luiheid, maar het totaal onbekend zijn met php)

    >
    > Jaja, de enige manier om over de onbekendheid met PHP heel te komen is
    > lezen en proberen.


    Da's waar, eens zal ik er aan moeten geloven :-)

    > Nu zitten er aan flock enkele haken en ogen aangezien je de file al open
    > moet hebben voordat je kunt locken
    >
    > Dus bij deze maar een voorbeeldje om zelf even te testen hoe het ook alweer
    > in z'n werk ging:


    [flock en test]

    Wat moet ik nou waar inpassen in het script van Ronald?
    Alweer: bedankt!

    Groeten, Inge




  11. #11
    Ronald Klip
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    NBB Groningen schreef:
    > Daniel:
    > > Jaja, de enige manier om over de onbekendheid met PHP heel te komen is
    > > lezen en proberen.

    >
    > Da's waar, eens zal ik er aan moeten geloven :-)


    Het is een vrij simpel scriptje, dat in wezen het volgende doet:

    // definieer wat bestandsnamen
    $teller = "teller.txt";
    $download = "naamTeDownloadenBestand";

    // open het tellerbestand. staat in een if-constructie, omdat de rest
    // van het script geen zin heeft als openen mislukt.
    if ($fp = fopen($teller, "r+")) {

    // lock het bestand, zodat niemand anders er gelijktijdig bij kan.
    // dat zou nl. problemen kunnen geven.
    flock($fp, LOCK_EX);

    // lees de inhoud van het bestand
    $stand = fread($fp, filesize($teller));

    // zet de 'cursor' aan het begin van het bestand en wis vanaf
    // die cursorpositie
    rewind($fp);
    ftruncate($fp, 0);

    // verhoog de stand met 1 en schrijf dat in het bestand
    fwrite($fp, ++$stand);

    // verwijder de lock en sluit het bestand
    flock($fp, LOCK_UN);
    fclose($fp);

    // redirect de browser naar te downloaden bestand (nu met volledige url)
    header("Location: ".dirname($_SERVER['SCRIPT_URI'])."/".$download);
    } else {
    // foutmeldinkje als fopen niet wil
    echo "hmm. misschien is het erg druk. probeer F5 eens?";
    }

    In plaats van de redirect (header()) zou je readfile() kunnen gebruiken
    om de inhoud van het downloadbestand meteen naar de browser te sturen.
    Voordeel: je bezoeker krijgt de bestandsnaam niet te zien.
    Nadelen (marginaal): iets meer werk voor de server, en er moet eerst een
    header met het juiste content-type worden gestuurd. Liefst ook een
    header met de lengte van het bestand.

    --
    groet, Ronald

  12. #12
    Bertez[z]
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    "Rene A" <Enersoft@xs4all.nl> schreef in bericht
    news:3ef1cc35$0$49100$e4fe514c@news.xs4all.nl
    > "Marc" <Marcnono@nonohotmail.com> schreef in bericht
    > news:bcs860$tv2$2@news4.tilbu1.nb.home.nl...
    >>> volstrekte leek :-)
    >>> Bedankt alvast, Inge
    >>>

    >>
    >> Ik sluit me graag aan bij deze vraag ;-)
    >>

    >
    >
    > Ik hoef geen counter maar ik ben ook een leek (-;



    http://poeticpollution.net/services/...rl-ShotGun.php
    ff zoeken op die phpscripts pagina's.


    --
    Greetz,
    Bertez[z]
    -
    Site in aanbouw: bertweb.nl.nu



  13. #13
    NBB Groningen
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    Dag Ronald,

    [aangepast php script voor download counter]

    Bedankt voor zowel het script als ook de uitleg welke regel wat doet.
    Ik heb nog één vraag:

    // redirect de browser naar te downloaden bestand (nu met volledige url)
    header("Location: ".dirname($_SERVER['SCRIPT_URI'])."/".$download);

    De url is iets als http://www.domein.nl/dir/bestand.zip denk ik, maar
    waar in de regel moet hij worden geplaatst, moet het in de plaats komen
    van 'SCRIPT_URL'? Of bv. van "/"? Of hoef ik helemaal niks in de regel te
    veranderen?

    Toch nog een tweede vraag :-)
    Waarom is readfile beter (behalve dan dat de bezoeker de bestandsnaam
    niet te zien krijgt)? Als dat nl. het enige is kan ik het beter zo laten toch?

    > In plaats van de redirect (header()) zou je readfile() kunnen gebruiken
    > om de inhoud van het downloadbestand meteen naar de browser te sturen.
    > Voordeel: je bezoeker krijgt de bestandsnaam niet te zien.
    > Nadelen (marginaal): iets meer werk voor de server, en er moet eerst een
    > header met het juiste content-type worden gestuurd. Liefst ook een
    > header met de lengte van het bestand.


    Groeten, Inge



  14. #14
    NBB Groningen
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    > [aangepast php script voor download counter]
    >
    > Bedankt voor zowel het script als ook de uitleg welke regel wat doet.
    > Ik heb nog één vraag:
    >
    > // redirect de browser naar te downloaden bestand (nu met volledige url)
    > header("Location: ".dirname($_SERVER['SCRIPT_URI'])."/".$download);


    Heb de euvele moed gehad om de regel ongewijzigd te laten, uit te proberen
    en ben tot de conclusie gekomen dat het werkt :-))
    Bedankt.

    > Toch nog een tweede vraag :-)
    > Waarom is readfile beter (behalve dan dat de bezoeker de bestandsnaam
    > niet te zien krijgt)? Als dat nl. het enige is kan ik het beter zo laten toch?


    Lijkt onbelangrijk te zijn, maar misschien toch nog een reactie?

    Groeten, Inge


  15. #15
    Ronald Klip
    download counter
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: download counter

    NBB Groningen schreef:
    > > // redirect de browser naar te downloaden bestand (nu met volledige url)
    > > header("Location: ".dirname($_SERVER['SCRIPT_URI'])."/".$download);

    >
    > Heb de euvele moed gehad om de regel ongewijzigd te laten, uit te proberen
    > en ben tot de conclusie gekomen dat het werkt :-))


    Het is eigenlijk wat omslachtig geformuleerd. Eenvoudiger is
    header("Location: http://www.domein.tld/pad/bestand.ext");

    > > Toch nog een tweede vraag :-)
    > > Waarom is readfile beter (behalve dan dat de bezoeker de bestandsnaam
    > > niet te zien krijgt)? Als dat nl. het enige is kan ik het beter zo laten toch?


    Ja, tenzij je koste wat kost wilt voorkomen dat bijv. iemand anders
    rechtstreeks naar het bestand gaat linken.

    --
    groet, Ronald

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics