webForumDet fria alternativet

Variabel från Google Translate?

25 svar · 1 188 visningar · startad av nighteye

nighteyeMedlem sedan sep. 200260 inlägg
#1

Försöker kolla i fall en sida laddats via Google Translate och i så fall utesluta att ett javascript körs.

Så här ser en typisk Google Translate URL ut;

http://74.125.39.132/translate_c?hl=de&sl=en&tl=de&u=http://www.domain.se/apa.php&usg=ALkJrhjGeYI_80XocBTG5QXyEMDb5SKdcw

Har provat med $_SERVER['referer'] och $_GET['u'] men får inte ut några värden alls. Vad beror detta på? Borde inte scriptet kunna känna att sidan laddas via en referer eller att det finns URL-variabler? Fattar noll. Nån grej som Google blockat kanske? Hjälp uppskattas.

drewMedlem sedan mars 2007845 inlägg
#2

Byt ut $_SERVER['referer'] mot $_SERVER['HTTP_REFERER']

nighteyeMedlem sedan sep. 200260 inlägg
#3

Jag menade så klart $_SERVER['HTTP_REFERER'] och inte $_SERVER['REFERER'] som jag skrev i inlägget - lite trött där. Funkar som sagt inte, får inte ut nån information alls. Hjälp :(

nighteyeMedlem sedan sep. 200260 inlägg
#4

Kan det vara som så att PHP koden renderas ut innan Google's kod och därför så kan man inte se Google's variabler?

drewMedlem sedan mars 2007845 inlägg
#5

I ditt exempel så ska $_GET[] innehålla följande.

$_GET['hl'] == 'de'
$_GET['sl'] == 'en'
$_GET['tl'] == 'de'
$_GET['u'] == 'http://www.domain.se/apa.php'
$_GET['usg'] == 'ALkJrhjGeYI_80XocBTG5QXyEMDb5SKdcw'

Du gör inte någon redirect eller liknande innan man kommer till den verkliga sidan? Hur ser koden på sidan ut?

nighteyeMedlem sedan sep. 200260 inlägg
#6

Egentligen räcker det med $_GET['u'] då den är unik för min sajt. Spelar ingen roll vad som är satt i den utan bara att den finns.

Sidan är en helt vanlig PHP-sida med Javascript filer som inkluderas, det jag vill göra är att kolla i fall sidan laddats via Google Translate och i så fall hoppa över ett Javascript som definerar sIFR kod (vilket förstör sidan när den visas via Google Translate).

Google renderar upp via frames också, så det finns två adresser; translate.google.com och en ip-adress som går till olika översättningsservrar, variablerna är dock samma på båda två så där gör det ingen skillnad.

Jag misstänker dock fortfarande att man inte kan kolla Googles variabler eftersom sidan renderas klart innan Google visar den, rätt logiskt faktiskt.

LeonLMedlem sedan dec. 20025 871 inlägg
#7

Kan inte du bygga en sida som kollar och skriver ut alla möjliga HTTP-headers och köra den via Googla Translate, så ser du vad du ska titta på?

nighteyeMedlem sedan sep. 200260 inlägg
#8

Jag testade ju ett gäng olika sätt i sidhuvudet för sajten men fick ingen output, beror som sagt säkert på att PHP koden renderas långt innan Google visar den. Får fixa ett javascript som kollar url variabler istället tror jag. Tips?

drewMedlem sedan mars 2007845 inlägg
#9

php-koden körs ju på din egen server. Vi använder referer för att kolla om sidan visas i Googles bildsökning och det fungerar bra.

nighteyeMedlem sedan sep. 200260 inlägg
#10

Jo men referer funkar ju inte alls för mig. Får ingen output. Fattar noll.

drewMedlem sedan mars 2007845 inlägg
#11

Någon adress till din sida?

nighteyeMedlem sedan sep. 200260 inlägg
#12

Nej, jag sitter och utvecklar internt här tyvärr. Men testa själv att lägga en $_SERVER['HTTP_REFERER'] på en sidan och testa att köra den igenom Google Translate så ser du att det inte funkar.

drewMedlem sedan mars 2007845 inlägg
#13

Ok, nu har jag kollat. Dom skickar inte med någon referer när dom översätter en sida.

drewMedlem sedan mars 2007845 inlägg
#14

Google hämtar dessutom sidan utan att skicka någonting varken som POST eller GET.

nighteyeMedlem sedan sep. 200260 inlägg
#15

Så vad göra? Du hade fått det att funka skrev du i ett tidigare inlägg?

drewMedlem sedan mars 2007845 inlägg
#16

Det var deras bildsökning. Där skickar dom med referer.

nighteyeMedlem sedan sep. 200260 inlägg
#17

Okej då är jag med. Såååå, dags att fixa ett javascript som kollar url'en istället då. Förslag på enkel lösning?

LeonLMedlem sedan dec. 20025 871 inlägg
#18

Gjorde en testsida som skrev ut alla servervariabler och körde med Google Translate.

"HTTP_VIA" ger "1.0 translate.google.com TWSFE/0.9". Det sista verkar bero på vad man väljer för språkinställningar, men ett sätt är ju att kolla om "HTTP_VIA" innehåller "translate.google.com".

nighteyeMedlem sedan sep. 200260 inlägg
#19

Frågan är varför jag inte får ut något alls. Kan jag få se din kod är du snäll?

LeonLMedlem sedan dec. 20025 871 inlägg
#20

Min kod är skriven i ASP och loopar igenom alla servervariabler som har skickats med i headern och skriver ut dem:

<%
For Each x in Request.ServerVariables
  Response.Write(x & ": " & Request.ServerVariables(x) & "<br />")
Next
 %>

Du kan titta på resultatet här: http://www.l2arts.com/s.asp

Surfar du in med webbläsaren så kommer det inte att dyka upp något "HTTP_VIA", men använder du Google Translate så dyker den upp (exempel).

251 ms totalt · 3 externa anrop · v20260731065814-full.30151723
127 ms — hämta forumlista (db)
121 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)