login  Naam:   Wachtwoord: 
Registreer je!
 Forum

download/link klik teller

Offline mothh - 27/02/2009 14:52
Avatar van mothhOnbekend weet iemand hoe je een code maakt met javascript of php dat maakt niet uit


maar hoe je een code maakt waarmee je het aantal kliks of downloads te zien krijgt naast de download knop


gelieve geen mysql!


groeten mothh

32 antwoorden

Gesponsorde links
Offline HannaH - 27/02/2009 14:58 (laatste wijziging 27/02/2009 14:59)
Avatar van HannaH MySQL interesse die downloadknop in een formpje zetten.
en tabelletje in je database die er ééntje bijdoet. (bvb met de datum van de laatste download als optie of bvb zijn ipadres, dan heb je meteen een log)

en dan uitlezen met zoiets als totalRows...

 

... lijkt me een logische oplossing.
Offline mothh - 27/02/2009 15:00
Avatar van mothh Onbekend ja maar ik weet de code niet en ik wil geen mysql gebruiken


en ik hoef alleen maar het aantal kliks te weten
Offline Erwt - 27/02/2009 18:06
Avatar van Erwt PHP beginner Je moet het ERGENS opslaan.
- textbestand
- mysql
- etc..

Stel je voor dat je dit in een textbestand wilt doen. Dan zeg je dus eigenlijk:
Het is niet de beste manier, maar het werkt
  1. <?php
  2. // HET SCHRIJVEN VAN HET AANTAL KLIKS, ZORG DAT JE clicks.txt SCHRIJFRECHTEN(chmod) HEEFT!
  3. $filename = "clicks.txt";
  4. $handle = fopen($filename, "r");
  5. $contents = fread($handle, filesize($filename));
  6. fclose($handle);
  7.  
  8. $filename = "clicks.txt";
  9. $handle = fopen($filename, "w");
  10. $number = intval($contents);\
  11. $number++;
  12. fwrite($handle, $number);
  13. fclose($handle);
  14.  
  15. // HET UITLEZEN VAN HET AANTAL KLIKS
  16. $filename = "clicks.txt";
  17. $handle = fopen($filename, "r");
  18. $contents = fread($handle, filesize($filename));
  19. fclose($handle);
  20. echo $contents;
  21. ?>
Offline mothh - 28/02/2009 14:42 (laatste wijziging 28/02/2009 14:43)
Avatar van mothh Onbekend ik bedoel dit allemaal niet ik bedoel dat je het aantal kliks op een link kan tellen bijvoorbeeld het aantal hits die je hier ook op sm bij elke tutorial en script ziet dat bedoel ik


dus het aantal kliks op een link


hij moet dus ook openbaar zichtbaar zijn
Offline Martijn - 28/02/2009 14:48 (laatste wijziging 28/02/2009 14:48)
Avatar van Martijn Crew PHP tegenwoordig heb je gewoon
  1. $kliks= file_get_contents("map/bestand.txt");
  2. $kliks++;
  3. file_put_contents("map/bestand.txt",$kliks);
  4. echo $kliks;


veel sneller en korter dat stukje php op je site zetten en klaar.

offtopic: Ik plaats dit niet omdat ik vind dat je het mag weten, een beetje zelf zoeken mag best, dit was erg simpel. Dit is voor Erwt zodat ie kan zien dat t makkelijker kan
Offline mothh - 28/02/2009 14:54 (laatste wijziging 28/02/2009 15:14)
Avatar van mothh Onbekend oke ik zal kijken of het heeft gewerkt


edit: hij werkt niet er komt nu standaard 1 te staan en ik kan er zo vaak op klikken als ik wil iemand een oplossing?
Offline Martijn - 28/02/2009 16:04 (laatste wijziging 28/02/2009 16:05)
Avatar van Martijn Crew PHP vervang $kliks++; is door $kliks+=1;

anders zijn de schrijfrechten denk niet goed, google -> chmod
Offline mothh - 28/02/2009 18:53
Avatar van mothh Onbekend nee klopt niet ik krijg dan deze error:


  1. PHP Error Message
  2.  
  3. Warning: file_put_contents(bestand.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/a8229812/public_html/tool_test.php on line 80
Offline Martijn - 28/02/2009 19:19
Avatar van Martijn Crew PHP heb je wel een bestand.txt bestaand? zo ja, an klopt de link niet.
"failed to open stream" houd in dat ie t neit vind
Offline mothh - 28/02/2009 19:25 (laatste wijziging 28/02/2009 19:25)
Avatar van mothh Onbekend als ik file_put_contents(bestand.txt) dat regeltje weghaal krijg ik die error niet maar moet de code zoiets zijn:
  1. $kliks= file_get_contents("bestand.txt");
  2. $kliks+=1;
  3. file_put_contents("anderbestand.txt",$kliks);
  4. echo $kliks;



en hoe weet hij waar ik op klik? dus welke URL het moet zijn
Offline Martijn - 28/02/2009 19:49
Avatar van Martijn Crew PHP de link doet ie niet. T doet t alleen op de pagina waar je het scriptje zet.
en het moet niet een anderbestand zijn, want dan word t nooit meer dan 1
Offline mothh - 28/02/2009 19:51
Avatar van mothh Onbekend oke
en als ik wil weten hoevaak er op een download is geklikt? wat moet ik dan doen?
Offline Joost - 01/03/2009 10:51 (laatste wijziging 01/03/2009 10:52)
Avatar van Joost PHP expert
  1. $file = "teller.txt";
  2.  
  3. function write($file, $data){
  4. $f = fopen($file, 'w');
  5. fwrite($f, $data);
  6. fclose($f);
  7. }
  8.  
  9. $url = $_SERVER['REQUEST_URI']; // deze even aanpassen naar jou systeem
  10.  
  11. if(file_exists($file)){
  12. $counter = unserialize(file_get_contents($file));
  13. if(isset($counter[$url])){
  14. $counter[$url] += 1;
  15. } else {
  16. $counter[$url] = 1;
  17. }
  18. } else {
  19. $counter = array($url => 1);
  20. }
  21. $pageViewed = $counter[$url];
  22. write($file, serialize($counter));
  23. ?>


Je hebt dan het aantal views in $pageViewed zitten 

Offline mothh - 01/03/2009 12:01
Avatar van mothh Onbekend ik hoef niet te weten hoeveel page views er zijn ik moet alleen het aantal kliks op de URL weten en die URL die staat op een pagina met allemaal ander URL's of te wel downloads.
Offline Erwt - 01/03/2009 15:50
Avatar van Erwt PHP beginner mothh, er zijn nu al een aantal voorbeelden gegeven. Als je de codes die nu gegeven zijn bestudeert had, kon je zien dat wanneer je deze code uitvoert als er op een button geklikt dit dus niet de pageviews zijn maar het aantal clicks..

Dus een input veldje met een bijv. een ajax functie die bovenstaande codes uitvoert.. en viola?
Offline jaronneke - 02/03/2009 11:34
Avatar van jaronneke MySQL interesse je hoeft dat ook niet in de index te gooien, alleen in bijv download.php en als je iets wil downloaden gaat hij bijv naar download.php?download=bestand.exe .. en voila +1 bij de teller
Offline mothh - 02/03/2009 15:26
Avatar van mothh Onbekend het zal allemaal wel ik heb het bestudeerd en ik snap er niks van
en ik wil het script wel proberen van mediaval maar ik vind het gewoon te moeilijk

//aanpassen naar jouw systeem


hoe weet ik wat mijn systeem is?
Offline Joost - 02/03/2009 18:07 (laatste wijziging 02/03/2009 18:07)
Avatar van Joost PHP expert Daar bedoel ik mee waarop je de pagina's identificieert 

Als dat bv. is met pagina.php?page=*pagina*, dan zou je daar neer kunnen zetten: $url = $_GET['page'];

$_SERVER['REQUEST_URI'] bevat echter alles in de link na het domein, dus met http://domein.nl/download.php?f=bestand.exe bevat $_SERVER['REQUEST_URI'] /download.php?f=bestand.exe 

Als je die code dus in elke pagina die je wilt tellen plaats, zou het moeten werken 
Offline jc2 - 02/03/2009 18:35
Avatar van jc2 PHP interesse mothh,

Je wilt weten hoevaak er op een download geklikt is.
Ik neem aan dat je dan bedoelt: het totaal aantal keer (door wie dan ook) er op een link geklikt is.
Het is dan haast onmogelijk om het zonder database te doen.
Met een tekstbestandje lukt ook, zoals al door anderen aangegeven is, maar database lijkt mij toch een betere oplossing voor jouw probleem.
Offline mothh - 03/03/2009 16:09
Avatar van mothh Onbekend mediaval een download.php?f=pagina.exe

hoe moet ik dat maken
Offline Joost - 03/03/2009 16:20
Avatar van Joost PHP expert $_SERVER['REQUEST_URI'] 
Offline mothh - 03/03/2009 16:22
Avatar van mothh Onbekend oke en dan... dan heb ik zo'n pagina?


$_SERVER['jenaam.exe']

moet het zo of hoe zit het? en waar moet ik dit plaatsen


ps: ik wil leiver niet voor elke download een aparte pagina
Offline Koen - 03/03/2009 16:23
Avatar van Koen PHP expert $_SERVER['REQUEST_URI'] bevat de bestandsnaam + query string.

output: /pagina.php?var=value
Offline mothh - 03/03/2009 16:26 (laatste wijziging 03/03/2009 16:57)
Avatar van mothh Onbekend oke sliphead maar kan ik dan dat gedeelte var veranderen in wat ik maar wil?


moet ik dan bijvoorbeeld dit doen:
tool.php is de pagina


  1. <?
  2. $_SERVER['REQUEST_URI']
  3. ?>
  4. <html>
  5. <head>
  6. <title>web tools</title>
  7. </head>
  8. <body>
  9. download hier het ding: <a href="?f=naam.zip"><img src="D.png" border="0" width="16" height="16" align="bottom" /></a>
  10. </body>
  11. </html>


Citaat:
Sliphead Edit: Code tags!
Offline Joost - 03/03/2009 16:48
Avatar van Joost PHP expert De code op de pagina hiervoor (exacte code) plak je in een bestandje, teller.inc.php 
Dan zet je bovenaan elk script waar moet worden geteld:
  1. include_once("teller.inc.php");

 
Offline mothh - 03/03/2009 16:49 (laatste wijziging 03/03/2009 16:53)
Avatar van mothh Onbekend oke
maar op 1 pagina staan meer downloads een stuk of zes dan moet ik dus allemaal verschillende pagina's maken?


en ik krijg deze error's
Warning: fopen(bestand.txt) [function.fopen]: failed to open stream: Permission denied in /home/a8229812/public_html/teller.inc.php on line 4

Free Web Hosting

PHP Error Message

Warning: fwrite(): supplied argument is not a valid stream resource in /home/a8229812/public_html/teller.inc.php on line 5

Free Web Hosting

PHP Error Message

Warning: fclose(): supplied argument is not a valid stream resource in /home/a8229812/public_html/teller.inc.php on line 6
Offline Koen - 03/03/2009 17:03
Avatar van Koen PHP expert chmod teller.inc.php & bestand.txt naar 0755.
Offline mothh - 03/03/2009 17:06 (laatste wijziging 03/03/2009 17:20)
Avatar van mothh Onbekend 0755? wat is dat nou weer


en bestand.txt is ... gewoon een tekst bestand of is dat het bestand om te downloaden?


en hoe chmod je iets?
Offline henver - 03/03/2009 17:25
Avatar van henver HTML gevorderde Chmodden wilt zeggen dat je schrijf-, lees- en uitvoerrechten van een bestand wijzigt. Chmodden kan je doen d.m.v. een FTP-client (bijvoorbeeld FileZilla)

bestand.txt is het bestand waarin het aantal hits opgeslagen moeten worden.
Offline mothh - 03/03/2009 17:29 (laatste wijziging 03/03/2009 17:46)
Avatar van mothh Onbekend ik heb hem ge chmod maar ik krijg nog steeds die error
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.27s