Avatar billede chrisscan Juniormester
12. juni 2004 - 18:34 Der er 22 kommentarer og
2 løsninger

Simpel login (roenving)

Roenving gav denne meget fine JS
<form onsubmit="location.href=this.pw.value+'.htm';return false;">
Indtast password: <input type="password" name="pw">
<input type="submit" value="Log ind">
</form>
Den virker fantastisk og er MEGET simpel. Kan der laves en udvidelse så der kommer en alert op ved forkert pw ? i stedet for "siden kan ikke vises"

CK
Avatar billede roenving Novice
12. juni 2004 - 18:38 #1
Ikke uden at passwordet faktisk lægges i filen på den ene eller anden måde ...

Men du kan (afhængig af hvilken server, du bruger) selv bestemme hvad og hvordan fejlen vises, og den kan vist differentieres på mapper, men det er ikke noget jeg ved noget om ...
Avatar billede chrisscan Juniormester
12. juni 2004 - 18:41 #2
Jeg er hosted hos B-one
Avatar billede roenving Novice
12. juni 2004 - 18:46 #3
Jeg har nogle gange fået en side, som hed 404.html (eller sådan noget lignende !-), når en fil ikke har fandtes, men om det er en server-funktion, som præsenterer en overordnet fil, eller om serveren kigger i mappen, og præsenterer sådan et alternativ ved jeg ikke ...

-- måske vil det være bedre at checke med noget af det stof, der er tilgængeligt på B-one ?-)

-- eller, hvis du finder ud af, hvilken server det er (jeg vil ikke blive overrasket hvis det er en Apache !-), kan du måske spørge i den rigtige kategori her !o]
Avatar billede grunken Nybegynder
12. juni 2004 - 18:49 #4
damn du er inde på det rigtige Jes :o)

htaccess er løsningen :o)

lig en fil i dokumentrode af dit site kaldet

.htacess

med indholdet
ErrorDocument 404 /fejl404.html

simpelt ik ? :o)
Avatar billede grunken Nybegynder
12. juni 2004 - 18:50 #5
dokumentroden - sagde manden!
Avatar billede grunken Nybegynder
12. juni 2004 - 18:50 #6
og lidt for hurtig igen : da .htaccess jo er med 2 c'r
Avatar billede roenving Novice
12. juni 2004 - 19:02 #7
Avatar billede chrisscan Juniormester
12. juni 2004 - 19:06 #8
I den fil står:

# -FrontPage-

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>

?

ck
Avatar billede chrisscan Juniormester
12. juni 2004 - 19:07 #9
Men jeg oprettede jo spørgsmålet, da jeg troede det kunne ordnes med en java af en eller anden slags

ck
Avatar billede grunken Nybegynder
12. juni 2004 - 19:14 #10
Ja men så har roenving svaret helt rigtigt, og du skal nok flytte spørgsmålet over i den rigtige kategori :o)
Avatar billede grunken Nybegynder
12. juni 2004 - 19:18 #11
men du kan roligt bare placere linien:
ErrorDocument 404 /fejl404.html

i din fil :o)

forresten så gør:
IndexIgnore - at de filer og mapper der er angivet aldrig ville kunne findes for den almindelige besøgende!

og limit get post & put - sætter brugerrettigheder på dine mapper, og som de er indstillet nu har alle de mest gængse læse rettigheder :o)
Avatar billede terrak Nybegynder
12. juni 2004 - 19:20 #12
Jeg har lige fikset noget sammen, det er dog ikke gennemtestet 100% :)

Login siden:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <title>Log ind</title>
<script type="text/javascript">

function checkpw() {

if (document.getElementById('checkpw').name == "loaded") {
document.location.href=document.getElementById('checkpw').src;
} else {
alert('Forkert kode!');
}

}

</script>
</head>
<body>

Login
<p>
<iframe id="checkpw" name="notloaded" src="about:blank" frameborder="0" height="0" width="0"></iframe>

<form onsubmit="document.getElementById('checkpw').src=this.pw.value+'.htm';return false;">
Indtast password: <input type="password" name="pw">
<input type="submit" value="Log ind" onClick="window.setTimeout('checkpw()',1000)">
</form>


</body>
</html>

----

Brugersiden:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <title>Logget ind</title>
<script type="text/javascript">

if (window.top.location != window.self.location) {
parent.document.getElementById('checkpw').name = "loaded";
}

</script>
</head>
<body>

Logget ind!


</body>
</html>

------

Test selv her - http://raev.1go.dk/login.htm
med koden testuser
Avatar billede roenving Novice
12. juni 2004 - 19:24 #13
>>chrisscan

Du opnår forøvrigt en modsat effekt ved at sætte et brugernavn i titlen til et spørgsmål !-)

Nemlig at du effektivt udelukker mails til brugeren, f.eks. har jeg ikke fået een eneste mail om dette spørgsmål !o]
Avatar billede chrisscan Juniormester
12. juni 2004 - 19:55 #14
Det var jeg ikke klar over roenving. Kan du ikke kaste et svar ind i ringen så kan du og terrak deles om pointene. Terraks svar var dog ikke simpelt, men fungerer.

ck
Avatar billede terrak Nybegynder
12. juni 2004 - 20:15 #15
Hvis du med "ikke simpelt" mener at du ikke er helt med på hvad der sker, så er der en kort forklaring her:

På login siden har vi en variabel som er sat til "notloaded".
Når du trykker på Log ind knappen, bliver en ny side åbnet i en skjult iframe. Hvis siden findes, bliver variablen på login siden ændret til "loaded", hvis altså siden registrerer at den er inde i en iframe. Findes siden ikke, forbliver variablen på login siden uændret.
Et sekund efter du har trykket på Log ind, bliver der tjekket om variablen er notloaded eller loaded. Er den notloaded kommer der en alert boks, er den loaded bliver man sendt videre til samme side som er hentet i iframen, og den vil ikke prøve at ændre variablen på login siden, da den selv finder ud af at den ikke er inde i en iframe.
Avatar billede roenving Novice
12. juni 2004 - 20:32 #16
At krølle hjernen hjælper engang imellem ganske godt, når man skal forsøge at løse problemer, som ikke har en direkte løsning, så det er absolut en brugbar løsning terrak har lavet ...

-- og efter omstændighederne simpel, for du skal bare sætte det javascript, han har sat ind på brugersiden ind i din egen side, som kræver logon !-)

-- og selvfølgelig lave de andre finurligheder også, måske suppleret med en redirect i stedet for alerten !-)

.htaccess-løsningen er dog også ganske simpel, hvis ellers udbyderen tillader den slags uden problemer !o]

-- els velbekomme '-)
Avatar billede chrisscan Juniormester
13. juni 2004 - 00:02 #17
Tak til begge for hurtige og kompetente svar.

Altid en fornøjelse at spørge eller bare kigge ind på Eksperten

ck
Avatar billede roenving Novice
13. juni 2004 - 00:08 #18
-- og tak for point ;~}
Avatar billede chrisscan Juniormester
13. juni 2004 - 00:28 #19
Jeg fik ikke kopieret fra testsiden inden du fjernede den terrak. Er det i denne linie jeg skal ændre "pw" til brugersidens navn ?

Indtast password: <input type="password" name="pw">

ck
Avatar billede roenving Novice
13. juni 2004 - 00:35 #20
Nej !-)

Du skal ikke skrive brugersidens navn nogle steder:

Kopier terraks javascript-blok og form over til login-siden:

<script type="text/javascript">
function checkpw() {
  if (document.getElementById('checkpw').name == "loaded") {
    document.location.href=document.getElementById('checkpw').src;
  } else {
    alert('Forkert kode!');//og sæt en redirect til en fejl-side her
  }
}
</script>

...

<form onsubmit="document.getElementById('checkpw').src=this.pw.value+'.htm';return false;">
Indtast password: <input type="password" name="pw">
<input type="submit" value="Log ind" onClick="window.setTimeout('checkpw()',1000)">
</form>

-- og kopier så den javascript-blok, som terrak har på brugersiden ind på din brugerside:

<script type="text/javascript">
if (window.top.location != window.self.location) {
  parent.document.getElementById('checkpw').name = "loaded";
}
</script>
Avatar billede chrisscan Juniormester
13. juni 2004 - 01:15 #21
Ok - nu er jeg forvirret, jeg skal vel oprette en side som hedder det samme som pw eller ?

ck
Avatar billede roenving Novice
13. juni 2004 - 01:53 #22
Ja ...

Hvis dit password er 32149873 skal du lave en side, som hedder 32149873.htm !-)
Avatar billede chrisscan Juniormester
13. juni 2004 - 02:25 #23
OK - så er jeg med

Tak !
Avatar billede terrak Nybegynder
13. juni 2004 - 19:32 #24
Forresten, så er der 2 dårlige sider så vidt jeg kan se.

1. Der går mere end 1 sekund for javascript koden bliver kørt, så variablen er stadig "notloaded" når den bliver tjekket.

2. Der >skal< klikkes på Log ind, enter kan ikke gøre det. Det kan dog rettes ved at fjerne 'onClick' fra submit knappen, og sætte indholdet ind i 'onSubmit' på formen. Sådan her:
<form onsubmit="document.getElementById('checkpw').src=this.pw.value+'.htm';window.setTimeout('checkpw()',1000);return false;">

og

<input type="submit" value="Log ind">

som den var til at starte med.
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