Avatar billede terra Nybegynder
23. september 2002 - 18:10 Der er 9 kommentarer og
1 løsning

(?) Sjekke om dokument findst før den 'loades' ?

Hei,
Jeg ska ha en knapp som ska
ONCLICK="loadpage()
men den skal samtidig sjekke om siden som ska
'loades'
findes først.
Jeg mangler den øverste delen som søker efter filen og setter dokument variablen i ret verdi + resten til knappen for at den ska også søge efter filen.

Håper at noen kan hjelpe
Her er biten av Scriptet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
<META NAME="Generator" CONTENT="TextPad 4.4">
<META NAME="Author" CONTENT="?">
<META NAME="Keywords" CONTENT="?">
<META NAME="Description" CONTENT="?">
<SCRIPT LANGUAGE="JavaScript">
//-->

// if ( "../" + document.frm.pswd.value + ".html"); // hvis findes
//    var dokument=0; //setter denne verdien
//    else
    var dokument=1;
if (dokument==0)
    function loadpage(){
window.open( "../" + document.frm.pswd.value + ".html" , "all" );
    }
    else
        alert( "finder ikke siden");
        window.open( "../anden_dokument.html" );
</SCRIPT>

</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?">

<CENTER><BR><BR><BR><BR><BR>
<FORM NAME="frm">
<FONT COLOR="#000000" SIZE="4">Skriv inn :</FONT>
<INPUT TYPE="password" SIZE="12" NAME="pswd">
<INPUT TYPE="button" VALUE="OK" ONCLICK="loadpage()">
</FORM>
</CENTER>

</BODY>
</HTML>
Avatar billede jakoba Nybegynder
23. september 2002 - 21:56 #1
den eneste måde javascript kan checke om filen findes er ved at prøve at hente den. det kan du så prøve ind i en skjult ramme, og se om der ankommer noget.

en lidt snydsk måde at gøre det er som her:
http://www.jakoba.dk/eksperten/loginscript/exp206742.html
til de filer der kan hentes er der lavet en lille billedfil med samme filnavn men endelsen .gif
scriptet prøver så at hente den gif ind i et Image objekt og hopper hvis det lykkes til htmlfilen.

mvh JakobA
Avatar billede terra Nybegynder
24. september 2002 - 18:46 #2
Takk for hjelpen.
Jeg har fundet nye inspirasjoner der :)

Terra
Avatar billede terra Nybegynder
24. september 2002 - 19:24 #3
(?)
http://www.jakoba.dk/eksperten/loginscript/jakoba.html

... Her kan man også komme 'without' Script
Tenker på å sette her i <HEAD></HEAD>
et lite Script før siden 'loudes'
// (?) kan det sjekke if history(-1) == exp206742.html via JS(?)
// har den i CGI men ved ikke helt om det
kan laves i JS (?) her er den biten:

den søger efter:
# valid referers
@referers = (
    '.*filnavn\.html', # og den kan være alle steder   
);

sub check_referer {
    if ($ENV{'HTTP_REFERER'}) {
        foreach $referer (@referers) {
            if ($ENV{'HTTP_REFERER'} =~ /$referer/i) {
                $referer_ok = '1';
                last;
            }
        }
    } else {
        $referer_ok = '1';
    }

    if ($referer_ok != 1) {
        &error('bad_referer');
    }
}
Avatar billede terra Nybegynder
24. september 2002 - 19:26 #4
(?)

Kan oprette nytt spørgsmål eller ska vi fortsette her?

(?)
Avatar billede jakoba Nybegynder
24. september 2002 - 19:39 #5
Desværre. du kan ikke læse hvad der står af adresser i history arrayet uden meget høje rettigheder. ( har han været inde på et pornosite idag? nej vel :-)

og der bliver ikke lagt noget i  document.referrer  når du hopper med javascript.

men vi kan lave hoppet om til et hop fra et link:
linien:
        self.location.href = huskDet+".html";
på loginsiden udskiftes med:
        document.links[0].href = huskDet+".html";
        document.links[0].click();

som det første efter <body kommandoen indsættes et usynligt link:

<a href="ligemeget"></a> bemærk der er inge tekst at klikke på.

nu vil loginsiden hoppe via det link, og når den ankommer til den skjulte side kan du kikke i  document.referrer (eller HTTP_REFERER) efter adressen på loginsiden (som du kender)

men hvis du har adgang til at anvende php, hvorfor så overhovedet bruge det script. en logincheck skrevet i php er meget sikrere.

ingen grund til nyt spm.

mvh JakobA
Avatar billede terra Nybegynder
24. september 2002 - 22:29 #6
Takk for din svar.

Jeg er ikke på jakt efter sikkerhet her. ;)
(?) Kan login_siden sende f.eks. en sådan:
var login_side = ""; til 'target_siden'
// verdi via linken (?)
// huskDet+".html?login_side=1"
// huskDet+".html%20login_side=1"

for at sette ind:

var login_side= "";
if (login_side==0)
          alert( "den går ikke");
    else
          alert( "den går bra");
Avatar billede jakoba Nybegynder
24. september 2002 - 22:32 #7
// huskDet+".html?login_side=1"
// huskDet+".html?login_side=0"  // '%20' skal rettes til '?'

ja det kan den sagtens, og på den måde du lægger op til
Avatar billede terra Nybegynder
24. september 2002 - 23:37 #8
(?)
<A href="53.html?login_side=1"> test </A>
Den endrer ikke var login_side= "";
i 53.html // ved hopp - er det noget det mangler ?
Avatar billede jakoba Nybegynder
25. september 2002 - 00:05 #9
Jeg er ikke sikker på jeg forstår.

for at hente urlparameteren kan du bruge et lille script i siden 53.html

<script type='text/javascript'>

var login_side = 0;  // forbliver uændret hvis det ikke er ok.

var temp = this.location.href.split("?");
if ( temp[1] ) {
    temp = temp[1].split("#");
    temp = temp[0].split("&");
    for (var i=0; i<temp.length; i++ ) {
        temp[i] = temp[i].split("=");
        if ( temp[i].length == 2 ) {
            self[temp[i][0]] = unescape(temp[i][1]);
        }
    }
}
// der er mu oprettet variabler i vindo objektet for alle urlparametre
// så:
//  "53.html?login_side=1&hejsa=olsen&id=12345&x=2"
// bliver til:
//  var login_side = '1';
//  var hejsa = "olsen";
//  var id = "1234";
//  var x = "2";      // bemærk at alle er strenge.
     
men denne check er meget nem at snyde.
den check der var i Kommentar: 24/09-2002 19:39:55 og som tester på document.referrer er lang sikrere.

mvh JakobA
Avatar billede terra Nybegynder
25. september 2002 - 23:22 #10
Mange takk,
Det var den sistnevnte biten jeg manglet.

Hilsen Terra
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