Avatar billede alink Nybegynder
11. oktober 2001 - 18:53 Der er 19 kommentarer

hostname

Hejsa.

Jeg har et script der skal afvikles hvis brugeren forlader siden

function LogUd() {
if (flag==1) {
....
}

Det fungere også fint nok, men jeg vil gerne have at den også siger
if (flag==1 && hostname(?) != min adresse) {
...
}


Bemærk den kun skal tjekke hvad domænet er. fx ligger scriptet i filen www.domæne.dk/filen.php men den skal kunne tjekke om adressen er www.domæne.dk uden /filen.php

Håber nogen derude forstår hvad jeg mener, ved det ikke snart selv ;-)
Avatar billede nute Nybegynder
11. oktober 2001 - 18:57 #1
if (flag==1 && location.host != min adresse)

/nute
Avatar billede alink Nybegynder
11. oktober 2001 - 18:58 #2
skal der \"\" omkring og skal jeg medtage http og www?
Avatar billede alink Nybegynder
11. oktober 2001 - 19:00 #3
.
Avatar billede nute Nybegynder
11. oktober 2001 - 19:01 #4
location.host returnerer:

www.dittdomene.dk

/nute
Avatar billede nute Nybegynder
11. oktober 2001 - 19:02 #5
så du skal skrive:

if (flag==1 && location.host != \"www.domæne.dk\" )

/nute

Avatar billede jakoba Nybegynder
11. oktober 2001 - 19:07 #6
Er det den adresse der er ved at blive loadet ind istedetfor du vil kikke på?
Avatar billede alink Nybegynder
11. oktober 2001 - 19:12 #7
nej, det jeg mener er.
Scriptet ser sådan ud:
<body onUnload=\"LogUd()\">
<script language=\"Javascript\">
flag = 1;
function LogUd() {
if (flag==1){
        open(\"http://www.domæne.dk/logud.php\", \"PopUp\", \"toolbar=no,menubar=no,status=no,directories=no,location=no,scrollbars=no,resizable=no,width=30,height=20,left=30,top=30,screenX=30,screenY=30\"); 
        }
}
</script>

<a href=\"pref.php\" onClick=\"flag=0\">Et link</a>

Sådan ser scriptet ud. Når flag=0 udfører den ikke scriptet. Når brugeren går væk fra siden til en helt anden side, logges man ud

Fint nok. Men hvis brugeren bruger F5 (Refresh) eller Frem,Tilbage eller udfylder en formular ryger brugeren også af. Er der ikke nogen anden  måde det kan laves på?
Avatar billede alink Nybegynder
11. oktober 2001 - 19:22 #8
.
Avatar billede nute Nybegynder
11. oktober 2001 - 19:24 #9
er ikke helt sikker på hva du mener. Skal window.open() eksekveres hvis brukeren rehresher siden ?
Avatar billede alink Nybegynder
11. oktober 2001 - 19:38 #10
nej... scriptet må endelig ikke eksekveres hvis der reloades¨, \'frem\' eller \'Tilbage\' bruges...

Avatar billede nute Nybegynder
11. oktober 2001 - 19:59 #11
jammen fungerer så ikke:

if (flag==1 && location.host != \"www.domæne.dk\" ){
        open(\"http://www.domæne.dk/logud.php\", \"PopUp\", \"toolbar=no,menubar=no,status=no,directories=no,location=no,scrollbars=no,resizable=no,width=30,height=20,left=30,top=30,screenX=30,screenY=30\"); 
        }
}
Avatar billede alink Nybegynder
11. oktober 2001 - 20:04 #12
nej, den er kold i røven!

Der sker ikke en skid

location.host er jo netop mit domæne indtil siden skifter, og der har scriptet jo eksekveret sig selv
Avatar billede nute Nybegynder
11. oktober 2001 - 20:14 #13
jeg må ærlig innrømme at jeg ikke forstår ditt problem. hvis brukeren er inne på din side og klikker refresh, så skal *ikke* brukeren logges av ?! hvis det er dette du mener, så har du fått løsningen. Hvis det *ikke* er dette du mener, så er du nødt til å forklare litt bedre...
Avatar billede alink Nybegynder
11. oktober 2001 - 20:21 #14
Hvis jeg bruger det script som du har gav mig, så logger den rigtig af når man skifter side og al det der, men der smider altså også en af, når man opdatere. Prøv selv på din egen puter, den vil ikke virke.

Er der ikke en eventhandler, som fx onRefresh eller nogen i den retning. For så kan man jo bare sige onRefresh=\"flag=1\" eller hvad?
Avatar billede nute Nybegynder
11. oktober 2001 - 20:24 #15
hvorfor benytter du ikke php til å styre login/logout ?? Det blir bare besværlig med javascript. Jeg kan tenke meg at det er fordi du egentlig bør overføre noen parametre som du skal fange og styre flow av din side...

/nute
Avatar billede alink Nybegynder
11. oktober 2001 - 20:27 #16
fordi jeg vil ha det lavet i javascript.

det er bedre at lave den slags script i javascript og mere præcist.

Hvorfor udfører den scriptet ved reload?
Avatar billede nute Nybegynder
12. oktober 2001 - 09:45 #17
fordi eventen \'onunload\' eksekveres *hver gang* <body> \"mister focus\", hver gang din browser fjerner et dokument.

Og det er *ikke* bedre å lage \"den slags\" i JavaScript. Hva med de brukerne som har slått JavaScript fra ? De vil jo aldri kunne kjøre denne kode. Og JavaScript er heller ikke mer sikkert...javascript er usikkert og altfor mye avhengig av at brukeren ikke har rørt ved default instillingene i browseren.

/nute
Avatar billede coderdk Praktikant
12. oktober 2001 - 10:49 #18
Lav det i php - husk det er din IP-adresse ikke hostnavn den checker på:

<? if ($REMOTE_ADDR != \"din.ip.adresse\"): ?>
<script language=\"Javascript\">
flag = 1;
function LogUd() {
if (flag==1){
        open(\"http://www.domæne.dk/logud.php\", \"PopUp\", \"toolbar=no,menubar=no,status=no,directories=no,location=no,scrollbars=no,resizable=no,width=30,height=20,left=30,top=30,screenX=30,screenY=30\"); 
        }
}
</script>
<? endif ?>
Avatar billede coderdk Praktikant
12. oktober 2001 - 10:50 #19
Hmm for at undgå javascriptfejl:

  Lav det i php - husk det er din IP-adresse ikke hostnavn den checker på:

<script language=\"Javascript\">
flag = 1;
function LogUd() {
<? if ($REMOTE_ADDR != \"din.ip.adresse\"): ?>
if (flag==1){
        open(\"http://www.domæne.dk/logud.php\", \"PopUp\", \"toolbar=no,menubar=no,status=no,directories=no,location=no,scrollbars=no,resizable=no,width=30,height=20,left=30,top=30,screenX=30,screenY=30\"); 
        }
<? endif ?>
}
</script>
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