login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Geen bots

Offline gothmog - 26/08/2006 14:16 (laatste wijziging 26/08/2006 14:16)
Avatar van gothmogLid Hallo,

Leden kunnen zich bij mij aanmelden voor een wedstrijd. Wie de meeste punten haalt, wint (logisch;)). Ze moeten punten halen door vrienden naar mijn site te sturen, daarvoor krijgen ze een unieke link.

Maar google-bots 'hebben' die links nu ook, dus krijgen de mensen zonder moeite te doen, iedere dag een gratis klik.

Hoe kan ik deze tegenhouden? Want ik heb al een ip van google geblocked, zodat als via dat ip naar de link werd gegaan, dat er dan geen punt bijkwam, maar nu komt er weer een ip met een klein verschil van die ervoor langs zodat het niet helpt...

Weet iem. een oplossing zodat bots worden tegengehouden, dus dat er niet punten bij kunnen komen door de bots..?

10 antwoorden

Gesponsorde links
Offline Ontani - 26/08/2006 14:18
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
http://www.spid...eheers.htm
Offline Voldemort - 26/08/2006 14:19
Avatar van Voldemort PHP ver gevorderde In je robots.txt zetten dat ze niet naar die pagina mogen gaan.
Offline gothmog - 26/08/2006 14:25 (laatste wijziging 26/08/2006 14:26)
Avatar van gothmog Lid Het punt is, is dat mijn script op de index.php pagina staat.
Ik zal wel proberen of ik het op een andere pagina kan zetten...

Wat voor een 'command' moet je dan in de rotos.txt zetten?
Offline Wim - 26/08/2006 15:20
Avatar van Wim Crew algemeen Googlebot



Overigens, je kan ook filtreren op de headers die de client -in dit geval- de bot meestuurt... als er googlebot, msn, yahoo oid instaat is het een bot 
Offline vinTage - 26/08/2006 15:51
Avatar van vinTage Nieuw lid met $_SERVER['HTTP_USER_AGENT']; vraag je de browser op van de viewer, een googlebot heeft daar dus "googlebot" instaan.


  1. <?php
  2. if (!(strpos ($_SERVER['HTTP_USER_AGENT'], "googlebot") === FALSE))
  3. {
  4. //jij mag niet
  5. }
  6. else
  7. {
  8. //insert oid
  9. }
Offline gothmog - 26/08/2006 16:47
Avatar van gothmog Lid ok ik hoop dat het werkt:)!
Offline Voldemort - 26/08/2006 17:11 (laatste wijziging 26/08/2006 17:11)
Avatar van Voldemort PHP ver gevorderde @VinTage: eerst een ! en dan === FALSE komt neer op === TRUE

Dus dit is korter:

  1. <?php
  2. if(strpos($_SERVER['HTTP_USER_AGENT'], "googlebot") === TRUE)
  3. {
  4. //jij mag niet
  5. }
  6. else
  7. {
  8. //insert oid
  9. }


En ik denk dat dit hetzelfde is als mijn bovenstaande code:

  1. <?php
  2. if(strpos($_SERVER['HTTP_USER_AGENT'], "googlebot"))
  3. {
  4. //jij mag niet
  5. }
  6. else
  7. {
  8. //insert oid
  9. }
Offline Simon - 26/08/2006 18:03
Avatar van Simon PHP expert voldemort, hetgeen jij geeft is idd korter, maar werkt niet altijd, lees de bijdragen bij strpos 
Offline Maarten - 26/08/2006 18:07 (laatste wijziging 26/08/2006 18:07)
Avatar van Maarten Erelid stristr() / strstr() is daar beter voor geschikt 
PHP.net: strstr
PHP.net: stristr
Offline Simon - 26/08/2006 18:16 (laatste wijziging 26/08/2006 18:17)
Avatar van Simon PHP expert Note: If you only want to determine if a particular needle occurs within haystack, use the faster and less memory intensive function strpos() instead.
Citaat:
stristr() / strstr() is daar beter voor geschikt
php.net: strstr
php.net: stristr

euhm?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s