Avatar billede clevzter Nybegynder
16. juli 2002 - 02:12 Der er 17 kommentarer og
1 løsning

Skjul side ved load

Jeg vil have siden til kun at kunne vises, hvis en bestemt cookie har en bestemt værdi.

Her er min kode indtil videre:

<HTML>
<HEAD>
    <TITLE></TITLE>
<script language="JavaScript">
function getCookie(){
    var pos = document.cookie.indexOf("testKage=");
    if(pos != -1){
            var start = pos+9; //fordi testKage= er 9 tegn
            var end = document.cookie.indexOf(";",start);
            if(end == -1)
                end = document.cookie.length;
            var cookieValue = document.cookie.substring(start, end);
            return unescape(cookieValue);
        }
        return null;
}

var kage = getCookie();

function tjek(){
    if(kage != 'permission'){
        if(confirm('Du skal oprette dig som bruger og logge ind for at se denne side.\n \n Gå til loginsiden?')){document.location.href='login.php';}
        else {document.writeln('Du har ikke rettigheder til at se denne side.');}
    }
}
</script>
</HEAD>
<BODY onLoad="tjek();">
Velkommen!
</BODY>
</HTML>

Som det er nu, bliver man bedt om at logge ind, hvis man besøger siden, men i baggrunden kan man se siden.

Er det muligt at siden ikke vises mens man klikke OK/Anuller i dialogboxen?
Avatar billede clevzter Nybegynder
16. juli 2002 - 02:29 #1
Det må der da være

...ingen forslag?
Avatar billede clevzter Nybegynder
16. juli 2002 - 02:30 #2
Det drejer sig i al sin enkelthed om at får at script til at køre inden siden loades.

Det gør det jo ik, hvis det sker på onLoad (siger sig selv)
Avatar billede ras2000 Nybegynder
16. juli 2002 - 14:23 #3
Lav en tjek side. Hvis cookien er der, kan den sende dig videre til den rigtige side, men hvis man bare ved det mindste om java, så kan man læse koden, og selv bevæge sig derhen.
Avatar billede ras2000 Nybegynder
16. juli 2002 - 14:32 #4
Hov, denne her virker.
<HTML>
<HEAD>
    <TITLE></TITLE>
<script language="JavaScript">
function getCookie(){
    var pos = document.cookie.indexOf("testKage=");
    if(pos != -1){
            var start = pos+9; //fordi testKage= er 9 tegn
            var end = document.cookie.indexOf(";",start);
            if(end == -1)
                end = document.cookie.length;
            var cookieValue = document.cookie.substring(start, end);
            return unescape(cookieValue);
        }
        return null;
}

var kage = getCookie();

    if(kage != 'permission'){
        if(confirm('Du skal oprette dig som bruger og logge ind for at se denne side.\n \n Gå til loginsiden?')){document.location.href='login.php';}
        else {document.writeln('Du har ikke rettigheder til at se denne side.');}
    }
</script>
</HEAD>
<BODY>
Velkommen!
</BODY>
</HTML>
Avatar billede clevzter Nybegynder
16. juli 2002 - 15:51 #5
lækkert! svar lige ras...
Avatar billede ras2000 Nybegynder
16. juli 2002 - 15:54 #6
svar
Avatar billede clevzter Nybegynder
16. juli 2002 - 15:59 #7
Hov stop! når scriptet så skriver 'Du har ikke rettigheder til at se denne side.' viser den også BODY. kan det undgås?

måske med noget i retning af return false/null eller noget?
Avatar billede ras2000 Nybegynder
16. juli 2002 - 16:07 #8
Nej, det dur vist kun i en function, og så er vi tilbage til starten. Jeg tror du skal stryge indholdet af siden, og gå til en anden side, med velkommen på.
Avatar billede clevzter Nybegynder
16. juli 2002 - 16:10 #9
så er ideen jo tabt.

finden er, at man skal gå ind på siden via et PHP-login. Hvis man så lurer adressen til siden af og prøver at gå ind på den, skal den forhindre dig i det. Hvis man så her går til en ny side er problemet der igen.

Jeg skal bare finde en måde at "beskytte" siden på.
Avatar billede clevzter Nybegynder
16. juli 2002 - 16:13 #10
Det kunne også gøres ved at tjekke hvad den forrige side var.

http://www.eksperten.dk/spm/232468

Jeg kan bare ik helt få det til at virke
Avatar billede ras2000 Nybegynder
16. juli 2002 - 16:14 #11
Det ved jeg godt. Men jeg kan ikke se hvordan du med javascript kan skjule det. Når brugeren ser javascriptet, er det jo allerede på hans maskine. Jeg tror du er nød til at tjekke det server side.
Avatar billede clevzter Nybegynder
16. juli 2002 - 16:26 #12
Prøv at se mit link: http://www.eksperten.dk/spm/232468

Der er et JS-forslag og et PHP-forslag til hvordan man kan tjekke om den foregående side var en bestemt side. Hvis ikke lukker scriptet siden.

Hvis det ville virker, ville det være perfekt til mit behov. Så er siden jo beskyttet mod folk der ikke kommer fra login-siderne.
Avatar billede ras2000 Nybegynder
16. juli 2002 - 16:33 #13
Det burde du kunne. Lav en ny side, skriv linien
        else {document.writeln('Du har ikke rettigheder til at se denne side.');}
om til
        else {document.location.href = 'nyside.htm';}
så skal du have i din nyside.htm
<html>
<head></head>
<body onload="alert(document.referer)">
Så burde den komme med den rette streng. Når du har den laver du dit body-tag om til:
<body onload="if (document.referer != 'strengen du fik fat i') self.close">
Men det kan godt være at den kommer med en dialogboks om du vil lukke vinduet eller ej.
Avatar billede clevzter Nybegynder
16. juli 2002 - 16:34 #14
Hvorfor vil det her ik virke?

<?php if ($HTTP_REFERER == "login-ok.php") print "Velkommen!"; ?>
Avatar billede ras2000 Nybegynder
16. juli 2002 - 16:38 #15
Jeg kender intet til php, så det kan jeg ikke hjælpe dig med.
Avatar billede clevzter Nybegynder
16. juli 2002 - 16:42 #16
den alerter undefined
Avatar billede ras2000 Nybegynder
17. juli 2002 - 09:42 #17
Det aller nemmeste er vel at lave et tjek på cookien i noget server-side. Jeg kan ikke hjælpe dig med php, det kender jeg som sagt ikke. Men i asp ville du kunne lave følgende:
<% if Request.Cookies(0).Key("testKage") then%>
<html><head><body>osv
...
</html>
<%end if%>
Der må være noget tilsvarende i php.
Avatar billede clevzter Nybegynder
17. juli 2002 - 20:23 #18
jeg har fundet ud af det

Mange tak for hjælpen!
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