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 Byt ut $_SERVER['referer'] mot $_SERVER['HTTP_REFERER']
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 :(
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 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?
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 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å?
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 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.
Jo men referer funkar ju inte alls för mig. Får ingen output. Fattar noll.
drewMedlem sedan mars 2007845 inlägg Någon adress till din sida?
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 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 Google hämtar dessutom sidan utan att skicka någonting varken som POST eller GET.
Så vad göra? Du hade fått det att funka skrev du i ett tidigare inlägg?
drewMedlem sedan mars 2007845 inlägg Det var deras bildsökning. Där skickar dom med referer.
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 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".
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 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).