Avatar billede gifle Nybegynder
29. juni 2002 - 10:19 Der er 32 kommentarer og
1 løsning

Login - redirect/validate ..... et eller andet?

Jeg bruger et lille simpelt login:

<FORM NAME="login">
<INPUT TYPE="TEXT" NAME="navn">
<INPUT TYPE="TEXT" NAME="kode">
<INPUT TYPE="Button"  OnClick="window.location.href=(document.forms.login.navn.value + '-' +
document.forms.login.kode.value  + '.html')" VALUE="Log in">
</FORM>

Filerne hedder: "brugernavn"-"password".html

Problemet er bare, at det ser ikke så kønt ud når man taster ugyldige/forkerte , usernames/passwords , så får man den berømte: "siden kan ikke vises!"
Hvad kan man gøre? Man kan vel nok næppe sende brugeren til en "detvarsynd.htm" hvis "brugernavn"-"password".html ikke eksisterer? ( Ja jeg aner ikke så meget om javascript så det gør noget ).
Men kan det lade sig gøre? Hvis det kan, hvordan?
Hvis ikke, er der så nogle der kan give mig opskriften på et andet login?
NB.: Jeg har IKKE mulighed for asp , og vil helst undgå CGI, da det nok kommer til at køre på en server uden.

( Lige et lille tillægsspørgsmål, til skal vi sige de 10 af pointene: er der nogle der kort kan forklare mig forskellen på: phtml, html og htm ?? )
Avatar billede mikoalngelo Nybegynder
29. juni 2002 - 10:42 #1
html-htm: ingen forskel, bare en lille ting der gør det lettere for programmører at skrive navnene på siderne

phtml: aner det ikke ;(
Avatar billede jakoba Nybegynder
29. juni 2002 - 10:43 #2
'.html' .og '.htm'  betuder helt det samme "denne side indeholder html-kode.  '.htm' en en nødløsning fra gammel dos hvor extensions kun kunne indeholde 3 bogstaver

'.phtml' fortæller serverenen at filen indeholder php-kode og skal sendes igennem php fortolkeren.

Her er en lidt forbedret version af dit loginscript:
http://www.jakoba.dk/eksperten/loginscript/exp206742.html
det kræver at du for hver bruger laver en lille billedfil med navnet
  document.forms.login.navn.value + '-' + document.forms.login.kode.value  + '.gif'

mvh JakobA
Avatar billede gifle Nybegynder
29. juni 2002 - 11:08 #3
Jakoba> Kan man kombinere dem så man både har password og username? ( Hvordan? )
Avatar billede jakoba Nybegynder
29. juni 2002 - 11:24 #4
Ja da,
Den linie i funktionen 'brugerForsog' hvor der står:
        huskDet = tekstFelt.value.toLowerCase();
skal erstattes med linierne:
        huskDet = tekstFelt.value +"-" +tekstfelt.form.kode.value;
        huskDet = huskDet.toLowerCase();

of din form bliver så:
<form onsubmit="brugerForsog( this.navn );return false;">
<input name="navn" type='text' value="">
<input name="kode" type='text' value="">
<input type='button' value='Luk Op'
        onclick="brugerForsog(this.form.navn);">
</form>

mvh JakobA
Avatar billede gifle Nybegynder
29. juni 2002 - 11:39 #5
Så lige det sidste ( så får du dine point ), kan man ikke lave en window.open(og hvad skal der så stå her?), da jeg ikke kan nøjes med en alert hvis brugeren taster forkert, vil jo gerne sende brugeren direkte til en side hvor han også får mulighed for at bede om om en mail med password hvis han nu har glemt det. Eneste krav til vinduet er egentlig at det skal åbne i det samme vindue ( _self ).
*GG* må hellere så at få lært det javascript snart.
Avatar billede jakoba Nybegynder
29. juni 2002 - 12:49 #6
i funktionen brugercheck kan du erstatte linien
        alert( "Sorry forkert password" );
med:
        self.location.href =  "side_der_haandterer_fejlen.html";

mvh JakobA
Avatar billede gifle Nybegynder
29. juni 2002 - 18:57 #7
Undskyld den lange svartid. ( Jeg skulle lige på biblioteket og låne en bog om javascript, der er jo nok ingen vej udenom *S* )
Jeg siger tusind tak for hjælpen.

Mvh: Gifle
Avatar billede gifle Nybegynder
29. juni 2002 - 19:36 #8
Hej igen.
Jakoba, det her virker ikke:
<HEAD><TITLE>Loginscript uden serverprogrammering.</TITLE>

<META NAME="Generator" CONTENT="Stone's WebWriter 3">
<script type='text/javascript'>

var preImg = new Image(); // det objekt vi bruger til preload.
preImg.onerror = new Function( "preImg.fejl = true" );
var teller = 0;          // bruges til tidstagning
var tHandle = 0;          // bruges af timeouts.
var huskDet = "";

function brugerForsog( tekstFelt ) {
    if ( tekstFelt.value.length > 4 ) { // mindst 4 bogst i password.
        preImg.fejl = false;
        huskDet = tekstFelt.value +"-" +tekstfelt.form.kode.value;
        huskDet = huskDet.toLowerCase();
        preImg.src = huskDet +".gif"; // starter preload.
        clearTimeout( tHandle );
        teller = 20;
        tHandle = setTimeout( "brugerCheck()", 100 )
    } else {
        self.location.href =  "error.html";
    }
}; //end brugerForsog( Text object )

function brugerCheck() {
    if ( preImg.fejl || 0 > --teller ) { // billedet findes ikke
        huskDet = "";
        self.location.href =  "error.html";
    } else
    if ( preImg.complete ) { //billedet er hentet
        // så password er OK
        self.location.href = huskDet+".html";
    } else { // vent lidt endnu
        tHandle = setTimeout( "brugerCheck()", 100 );
    }
}; //end brugerCheck()

</script>

</HEAD>
<BODY bgcolor="#FFFFFF" text="#003399">
<center><form onsubmit="brugerForsog( this.navn );return false;">
    Brugernavn:
    <input name="navn" type='text' value="">
    Password:
    <input name="kode" type='text' value="">
<input type='button' value='Logind'
        onclick="brugerForsog(this.form.navn);">
</form></center>

</BODY>

Kan du sige mig hvorfor?
Avatar billede jakoba Nybegynder
29. juni 2002 - 19:50 #9
du har husket at lave en lille .gig fil der hedder  <navn>-<kode>.gif ikke?
altså samme filnavn som den 'hemmelige' fil med med extension .gif.
Avatar billede gifle Nybegynder
29. juni 2002 - 19:52 #10
Jow - f.eks. brugernavn-password.gif
Avatar billede jakoba Nybegynder
29. juni 2002 - 19:55 #11
hmme... det burde virke, kan du lægge et link? evt via jakoba@jakoba.dk
Avatar billede gifle Nybegynder
29. juni 2002 - 19:56 #12
Hvad med store/små bogstaver, er det ligegyldigt?
Avatar billede jakoba Nybegynder
29. juni 2002 - 19:59 #13
Ups. er både password og brugernavn i bar lowercase bogstaver og cifre? det går jeg nemlig ud fra at de er.
hvis de ikke er skal vi have slettet linien:
        huskDet = huskDet.toLowerCase();
hvod det der indtasted bliver lavet til lowercase.
Avatar billede gifle Nybegynder
29. juni 2002 - 20:04 #14
Det virker ikke selvom jeg sletter det.
Skal jeg maile det til dig?
Avatar billede jakoba Nybegynder
29. juni 2002 - 20:14 #15
jatak
Avatar billede gifle Nybegynder
29. juni 2002 - 20:21 #16
Sendt!
Avatar billede jakoba Nybegynder
29. juni 2002 - 20:41 #17
takker.  du havde gjort alting rigtigt. det var mig der havde stavet tekstFelt med lille f anden gang det står i linien:
        huskDet = tekstFelt.value +"-" +tekstFelt.form.kode.value;
og det skal altså være med storrt.

sorry.
Avatar billede gifle Nybegynder
29. juni 2002 - 20:47 #18
Jep, nu virker det, tusind tak.
Avatar billede gifle Nybegynder
29. juni 2002 - 21:22 #19
Har lige tænkt lidt videre, enhver bruger kan jo egentlig "gætte sig til siden", jeg mener, man kan jo bare gætte med: www.domæne.dk/login/index.htm , og så behøver man jo intet password, kunne det laves således at der kommer en popup, inden siden læses, hvor man skal indtaste brugernavn/password?
Fordi: hvis folk en gang har haft adgang, kan de jo få det igen, hvis de kan huske adressen.
Avatar billede gifle Nybegynder
29. juni 2002 - 21:54 #20
Jakoba>
Kunne man evt:
Det man vil holde hemmeligt, tegne det i et layer.
På onload skal den hide layeret, derefter skal der være en popup med vinduet, hvor brugernavn og password skal indtastes, istedet for at sende brugeren til en side, skal den "show layers" , men det bliver jo så i et andet dokument. Skal det evt, laves med en timeline?
Hvis man kan få den til med javascript, at afspille en timeline, eller show layers i et andet dokument, hvordan ser scriptet så ud?

Du skal nok få flere point, hvis du kan løse dette.
Avatar billede jakoba Nybegynder
29. juni 2002 - 21:55 #21
Ja deb er ikke perfekt. og en ting der vil gøre den bedre er hvis du netop ikke bruger et 'gætteligt' navn som index. Det er jo også den han får serveret hvis han kun skriver stien og slet ikke noget filnavn.

den anden med at har man een gang været derinde, har du helt ret i. Der er såvidt jeg kan se ikke noget at gøre ved det. for at kræve login dynamisk er vi nok nødt til at bruge noget serverside programmering (php, asp, jsp, ...)

mvh JakobA
Avatar billede jakoba Nybegynder
29. juni 2002 - 21:58 #22
Dine layers kan jeg ikke rigtig se logokken i, man kan jo blot sige 'show sourve' og læse hvad der står i det layer. Eller er der noget i det jeg har misset?
Avatar billede gifle Nybegynder
29. juni 2002 - 21:59 #23
Heh - nej det har du ikke *GG* tænker vist ikke særligt langt ligenu ;o)
Avatar billede gifle Nybegynder
29. juni 2002 - 22:03 #24
Jow - er da godt klar over, at siden skal hedde noget A'la 76wejg65s6s.htm, den gætter man dog ikke så'n lige, og den er svær at huske, så er det bare det med føj til foretrukne, eller skrive det ned, men man kunne så evt, ændre det med jævne mellemrum.
Bare lidt træls jeg ikke har mulighed for asp.

Gifle
Avatar billede jakoba Nybegynder
29. juni 2002 - 22:08 #25
Ja. Der er mange ting der bliver nemmere med serverside programmering.

På den anden side har jeg nu haft et loginscript af den type i 4 år på mit websted på get2net (hor man ikke må lave nogetsomhelst serverside) og såvidt jeg ved er der aldrig nogen der er brudt igennem :-))

men hvis det du vil gemme er penge værd skal du nok ikke bruge det script.

mvh JakobA
Avatar billede gifle Nybegynder
29. juni 2002 - 22:09 #26
Men noget helt andet er, kunne det lade sig gøre, at få den til f.eks. at afspille en timeline i et andet dokument?
Avatar billede gifle Nybegynder
29. juni 2002 - 22:11 #27
Nej, det er så men heller ikke noget værdifuldt der skal skjules, det var også bare mulighederne i det, jeg ville undersøge, da der jo er nogle der kun har mulighed, for javescripts og html.
Avatar billede jakoba Nybegynder
29. juni 2002 - 22:11 #28
Det forstår jeg ikke, "en timeline" ?
Avatar billede gifle Nybegynder
29. juni 2002 - 22:14 #29
Ja, hvis man nu laver en timeline i et dokument, der skal udføre bestemte ting, kunne man så starte den timeline, fra et andet dokument ( hvis dokumentet der indeholder timelinen er åbent ).
Avatar billede jakoba Nybegynder
29. juni 2002 - 22:25 #30
hvad er en timeline ?  du mener et eller andet specifikt med det, og jeg ved ikke hvad.
Avatar billede gifle Nybegynder
29. juni 2002 - 22:40 #31
Her et eksempel på et dokument, med en timeline hvor der er indbygget nogle events og actions i et par af de frames der er:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--

function MM_initTimelines() { //v4.0
    //MM_initTimelines() Copyright 1997 Macromedia, Inc. All rights reserved.
    var ns = navigator.appName == "Netscape";
    var ns4 = (ns && parseInt(navigator.appVersion) == 4);
    var ns5 = (ns && parseInt(navigator.appVersion) > 4);
    document.MM_Time = new Array(1);
    document.MM_Time[0] = new Array(3);
    document.MM_Time["Timeline3"] = document.MM_Time[0];
    document.MM_Time[0].MM_Name = "Timeline3";
    document.MM_Time[0].fps = 15;
    document.MM_Time[0][0] = new String("sprite");
    document.MM_Time[0][0].slot = 1;
    if (ns4)
        document.MM_Time[0][0].obj = document["Layer1"];
    else if (ns5)
        document.MM_Time[0][0].obj = document.getElementById("Layer1");
    else
        document.MM_Time[0][0].obj = document.all ? document.all["Layer1"] : null;
    document.MM_Time[0][0].keyFrames = new Array(1, 15);
    document.MM_Time[0][0].values = new Array(0);
    document.MM_Time[0][1] = new String("behavior");
    document.MM_Time[0][1].frame = 3;
    document.MM_Time[0][1].value = "MM_goToURL('parent','file:///C|/Documents%20and%20Settings/Administrator/Dokumenter/wwwGifleDk/index.htm')";
    document.MM_Time[0][2] = new String("behavior");
    document.MM_Time[0][2].frame = 8;
    document.MM_Time[0][2].value = "MM_displayStatusMsg('Bare et eller andet')";
    document.MM_Time[0].lastFrame = 15;
    for (i=0; i<document.MM_Time.length; i++) {
        document.MM_Time[i].ID = null;
        document.MM_Time[i].curFrame = 0;
        document.MM_Time[i].delay = 1000/document.MM_Time[i].fps;
    }
}
//-->
</script>
<script language="JavaScript">
<!--
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}
//-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<div id="Layer1" style="position:absolute; width:200px; height:115px; z-index:1; left: 262px; top: 209px"></div>
</body>
</html>
Avatar billede gifle Nybegynder
29. juni 2002 - 23:26 #32
Jakoba> Nå, det skal du nu ikke tænke mere over, men jeg håber du nu kan se hvad jeg mener med at kunne afspille en timeline?
Ellers skal jeg prøve at se om jeg kan forklare det lidt bedre.
Jeg logger af nu, og kommer ikke på førend engang i morgen, så du skal ikke regne med flere svar fra mig i aften.
Men stadigvæk tak for din hjælp og tålmodighed.

Mvh: Gifle
Avatar billede gifle Nybegynder
21. marts 2003 - 23:07 #33
Hej Jacoba, ja lidt liv i gamle spørgsmål. Det er lykkedes mig st smide det originale loginscript væk, der var på: http://www.jakoba.dk/eksperten/loginscript/exp206742.html
Og det vi fik lavet sammen er borte for mig ( format c: ), er der mulighed for at du stadig har det liggende? Og i så fald, kan du sende det til mig?
På forhånd tak
gifle@gifle.dk
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