Avatar billede learner Praktikant
17. februar 2011 - 10:40 Der er 11 kommentarer og
1 løsning

findes der en simpel måde at afgøre at det er en rigtig besøgende og ikke en robot

Jeg vil gerne lave en funktion der kan dette:

function user_is_for_sure_not_a_robot(){
  //
  if (det er med sikkerhed IKKE en robot - og med sikkerhed en rigtig klient){
    return true
  } else return false
}

Jeg har googlet lidt, men kan ikke lige finde en simpel udgave.

håber nogen har en dejlig enkel løsning :o)
Avatar billede intenz Novice
17. februar 2011 - 13:33 #1
Det korte svar er nej. Hvis der var en enkelt løsning på det problem ville vi f.eks. aldrig skulle belemres med CAPCHA'er.

Serveren får bare en bunke headers tilsendt. Den kan vælge at stole på dem eller lade være, men den kan aldrig vide om de er korrekte eller ej.

Javascript er en typisk mulighed, da bots (så vidt jeg ved) aldrig eksekverer det. Det vil dog muligvis ændre sig i fremtiden. Og om det er en løsning afhænger af hvilket problem du har.
Avatar billede learner Praktikant
17. februar 2011 - 17:20 #2
hmmm okay, jeg tænkte at noget med om musen bevæger sig måske kan være en sikker indikator. Men så skal siden jo loades færdig først og afvente at brugeren bevæger musen. Måske lidt dumt...

Kan man så ikke lave en løsning som med sikkerhed bare finder måske 50-80% af de "rigtige brugere" ved en simpel evaluering.
Avatar billede intenz Novice
18. februar 2011 - 07:17 #3
Alt hvad du laver i javascript vil typisk ikke blive kørt af en bot. F.eks. om musen bevæger sig (måske ikke den mest praktiske løsning). Du kan næsten være sikker på at din javascript kode (uanset hvad den er) ikke vil blive kørt at bots.

Server-side er user-agent det bedste bud. Men det kan som sagt nemt forfalskes.
Prøv at kig her:
http://stackoverflow.com/questions/422969/how-to-recognize-bots-with-php
Avatar billede learner Praktikant
18. februar 2011 - 11:17 #4
jeps okay, jeg må finde en anden løsning på det....

Jeg fik vel slet ikke fortalt hvad jeg ville med det :o)
Jeg vil spørge om man vil deltage i en brugerundersøgelse til alle der dumper ind på min webshop efter en søgning på google eller bing, og forlader siden efter kort tid igen. Altså et forsøg på at få kunderne til at fortælle hvad der skræmte dem væk eller mangler i produktern, eller om de synes priserne er for dyre osv osv

ikke alle selvfølgelig, men en udvalgt skare.

men jeg regner med at lave det således at den evaluerer ved første hit om kunden kommer fra google søgning. hvis ja, så så aktiveres et javascript som sender videre til survey, og survey sender så automatisk videre med javascript til den side som kunden oprindeligt ville lande på. altså bliver der tilføjet 2 hop til browserens history. og hvis kunden går tilbage, så kommer han til survey. men survey spørg så pænt med en javascript confirm() om man vil deltage, ellers smides man bare tilbage til google søgningen.

Jeg vil helst genere kunden så lidt som muligt, og bare spørge hurtigt om de vil svare på et par spørgsmål. men også være sikker på at bots aldrig sendes videre til survey'en.
Avatar billede intenz Novice
18. februar 2011 - 14:27 #5
Jeg bruger mig generelt ikke om når websites forsøger at forstyrre min browser historik, men det må man jo selv bedømme. En javascript confirm, der vil fryse browser vinduet (man skal tage stilling inden man trykke tilbage igen) vil være endnu mere irriterende.

Du kan dog godt både hente referencen og redirecte gennem alm. javascript.

document.referrer;
document.location = "/ny_side.php";

Du kan så lave noget regex på referrer, for at tjekke om det er google eller bing. Brug cookies til at gemme information (hvilken side de kom ind på, om du vil vise dem survey eller ej, osv.).

Det største problem er nok, at du ikke ved fra starten om de skal vises survey eller ej. Du er nødt til at lave den første redirect til survey'en uden at vide dette. Det bliver svært at lave det uden den enten bliver vist tilfældigt/eller til alle.
Avatar billede learner Praktikant
18. februar 2011 - 15:32 #6
Jeps
nu har jeg faktisk lavet det og det virker fint i safari, men umiddelbart ikke i IE og Firefox.

jeg har gjort det således:
ved ankomst evalueres om kommer fra google søgning
  hvis ja sender javascript videre til survey (document.location.href)
    survey sender så med det samme videre til ankomstsidens oprindelige url (document.location.href)
      hvis man går tilbage og havner på survey siden, så siger man ja eller nej til at deltage i survey. ved nej smides man tilbage til sin google søgning

enig confirm er træls og jeg må lave en anden løsning

Men underligt nok så virker det kun i safari og ikke i IE, Chrome og Firefox. De tilføjer simpelthen ikke document.location.href'en til browserens history
hmm underligt synes jeg!!!
Nogen der kan forklare det?
Avatar billede learner Praktikant
18. februar 2011 - 15:35 #7
kan være at jeg skal bruge jquery click() funktionen i stedet??
Avatar billede learner Praktikant
18. februar 2011 - 15:38 #8
hmm jo for søren det virker da os i Firefox, sorry jeg havde vist ik testet godt nok. men virker altså ikke i Chrome og IE
Avatar billede learner Praktikant
18. februar 2011 - 15:59 #9
Hmm nu har jeg så fundet ud af at det virker også som det skal i IE, så det er kun Chrome, som er "for klog" til at narre med et simpelt JS hop :o)

Konklusion er at det virker nogenlunde som det skal og jeg vil benytte det, men måske udskifte confirm med noget mindre irriterende
Avatar billede intenz Novice
18. februar 2011 - 22:29 #10
Ajax plugins implementerer typisk (gjorde i hvert fald) history med en skjult iframe.

Når iframen skifter side, bliver browserens history opdatereret. Man kan derfor få flere 'tilbage knap-tryk' på et enkelte side vindue.

Jeg kender ikke kompleksiteten af det, men det kunne måske være en bedre løsning. Det kommer selvfølgelig an på hvor meget man vil gøre ud af det.

Jeg ville i hvert fald overveje confirm knappen. Det er irriterende nok at blive 'snydt' på den måde, men endnu værre at blive låst af en confirm.
Avatar billede learner Praktikant
04. marts 2011 - 00:54 #11
Ja det lyder smart. Måske jeg laver det om på et tidspunkt og udskifter den confirm med noget mindre irriterende.

Jeg takker jer for hjælpen. det har nu kørt i et par uger uden problem og gør som det var intentionen. indsamler info om hvorfor folk forlader sitet.

Tak for hjælpen :o)

Smid gerne svar så får i point
Avatar billede learner Praktikant
18. marts 2011 - 01:00 #12
lukker og takker for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester