Avatar billede para7 Nybegynder
24. juli 2009 - 09:54 Der er 21 kommentarer og
1 løsning

If sætning for domænenavn

Jeg vil gerne have vist en javascript kode på en .tpl side, der åbenbart ikke lytter til PHP scripts. Så if sætningen må kunne gøres med javascript.

Jeg har i php og vil gerne have det i java script:

<?
if ($_SERVER["HTTP_HOST"] == "my-home.no") {
?>
Javascript koden her.
<?
}
?>
Avatar billede j4k0b Nybegynder
24. juli 2009 - 09:58 #1
Du skal have fat i window.location.hostname

Det giver dig hvad der står efter http:// og før den første skråstreg, eksempelvis:

'www.eksperten.dk' eller 'eksperten.dk'
Avatar billede para7 Nybegynder
24. juli 2009 - 10:07 #2
Det må du altså godt uddybe, jeg er ikke nogen haj til javascript.

Jeg kunne så gætte på noget med:

if (window.location.hostname == "my-home.no"){

}
Avatar billede j4k0b Nybegynder
24. juli 2009 - 10:09 #3
ja det er helt korrekt
Avatar billede para7 Nybegynder
24. juli 2009 - 10:16 #4
Godt nok at jeg ikke får det serveret, og selv lærer noget. Men jeg har prøvet med det her. fejlmeddelelsen er at der mangeler ;

<script type="text/javascript">
if (window.location.hostname == "troll-home.no"){
document.write 'Her er Norges side.';
}
</script>
Avatar billede para7 Nybegynder
24. juli 2009 - 10:22 #5
Nå, jeg fik googletr den rigtige syntaks. Tak for nu.... :)
Avatar billede j4k0b Nybegynder
24. juli 2009 - 10:29 #6
document.write('Her er Norges side.');
Avatar billede para7 Nybegynder
24. juli 2009 - 10:29 #7
HOV, kan du lige hjælpe lidt mere. Når jeg sætter Google analytics ind, og som de siger: lige før </body> koden, vises hele kodeklumpen (og også på den danske side). det går ikke. Scriptet dur ikke ordentligt endnu.



<script type="text/javascript">
if (window.location.hostname == "troll-home.no"){
//document.write ('Her er Norges side.');

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-9906084-1");
pageTracker._trackPageview();
} catch(err) {}

}
</script>
Avatar billede para7 Nybegynder
24. juli 2009 - 10:32 #8
Jeg har nu fjernet script tagget, der var for meget, men stadig dur det ikke.

<script type="text/javascript">
if (window.location.hostname == "troll-home.no"){
//document.write ('Her er Norges side.');

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

try {
var pageTracker = _gat._getTracker("UA-9906084-1");
pageTracker._trackPageview();
} catch(err)

}
</script>
Avatar billede para7 Nybegynder
24. juli 2009 - 10:52 #9
OK jk04b, den stillede opgave er løst. Jeg må oprette et nyt spm.
Avatar billede j4k0b Nybegynder
24. juli 2009 - 10:54 #10
Hvad fungerer ikke?

Du skal være opmærksom på at window.location.hostname både kan være troll-home.no og www.troll-home.no

Din IF-sætning ville kun ramme troll-home.no
Avatar billede para7 Nybegynder
24. juli 2009 - 11:03 #11
Ja, jeg skal lave noget replace, for at slippe for www.
Avatar billede Slettet bruger
24. juli 2009 - 11:55 #12
Hvorfor ikke bare gøre det i PHP som du startede med?

Læg følgende i en fil med navn ".htaccess" (uden gåseøjne) i mappen med scriptet:

AddType application/x-httpd-php .tpl

Så ta'r PHP fat i siden før den bliver sendt afsted.
Avatar billede para7 Nybegynder
24. juli 2009 - 12:42 #13
Tak for tippet.
Avatar billede j4k0b Nybegynder
24. juli 2009 - 13:18 #14
Hvordan arbejder du med din template fil? En lidt pænere løsning end den kimsey skriver ville være at videregive domænenavnet fra PHP til dit template. Din template engine skulle kunne finde ud af at sætte betingelser, så på den måde skal du sikre dig at Googles Javascript kun kommer med i kildekoden hvis det er det rigtige domæne.

I modsætning til kimseys løsning, så får du her ikke PHP-logik blandet ind i dit template.
Avatar billede Slettet bruger
24. juli 2009 - 13:36 #15
Nej, mit var ikke "pænt", men en udemærket "quick-'n'-dirty" måde at gøre det på.
Avatar billede para7 Nybegynder
24. juli 2009 - 14:45 #16
j4k0b
Ja, det er nok kun i nødstilfælde, man hurtigt vil lave noget PHP i en template fil, og det er faktisk også sådan sitet er opbygget. Template filer har kun {variabler} indsat, eller hvad det kaldes i PHP (er stadig mest ASP'er). Det tager tid at fatte logikken i sådan et site, når man er vant til ASP sites.
Avatar billede Slettet bruger
24. juli 2009 - 21:58 #17
Jeg fik ikke helt fat i overstående kommentar.
Hvordan vil du gøre det?
Avatar billede para7 Nybegynder
25. juli 2009 - 10:15 #18
Sitet er lavet med php og tpl filer. TPL filerne er kun indsat variabler i {variabel}.
Avatar billede Slettet bruger
25. juli 2009 - 12:00 #19
Okay, så du har beslutter dig for ikke at proppe noget PHP i tpl filer?
Avatar billede para7 Nybegynder
25. juli 2009 - 12:10 #20
Ja, det minder lidt om ASP.NET hvor designere kan arbejde med deres sider uden for meget mærkeligt, kun "controls". Front- og backend.
Avatar billede Slettet bruger
25. juli 2009 - 16:45 #21
Okay.
Så forstår jeg bare ikke hvordan du vil løse problemet. Med Javascript?
Avatar billede para7 Nybegynder
26. juli 2009 - 13:40 #22
Det vil jeg heller ikke mere, jeg kunne bruge noget der var lavet i forvejen i php med nogle variabler i en tpl fil. Men tak for snakken og tippene...
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