Avatar billede riishoj Nybegynder
29. april 2002 - 19:47 Der er 66 kommentarer og
1 løsning

Login

Hvordan laver man et login-system, som sender f.eks. 4 forskellige brugere til 4 forskellige URL'er med hver deres adgangskode?
Avatar billede Slettet bruger
29. april 2002 - 19:50 #1
du kan jo lave det sådan at efter login sendes di til en side du kalder privat.asp

denne kan du så bede om bruger_id på som så henter de infos der skal være på den side...
Avatar billede cyberkox Nybegynder
29. april 2002 - 19:51 #2
Med dette script kan du lave en simpel password beskyttelse.

Systemet er meget simpelt, og fungerer på den måde at brugerens username og password sammensat giver navnet på den fil, som brugeren bliver ført til. Det vil f.eks. sige at en bruger med følgende username og password:

Username: ph5
Password: lampe

Bliver ført til filen ph5lampe.htm

Systemets sikkerhed bygger således på at man kun kan få adgang til filen ved at gætte navnet. Hvis du synes mit eksempel var for simpelt kan du bare give dine brugere passwords som "L87bcTsa" - så bliver filnavnene blot mere komplicerede. Systemet er langt fra ligeså sikkert som en serverside løsning, men det kan sagtens bruges i en del mindre krævende situationer.



Vis som eksempel
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da">
<head>
<title>Skærmopløsning og størrelse på browservinduet</title>
</head>
<body>

<script type="text/javascript">
<!-- Start

function CheckPassword() {
  var username=document.login.username.value;
  var password=document.login.password.value;
  location.href = username + password+'.htm';
}

// Slut -->
</script>

<form method="post" action="ingen_javascript.htm"
  onsubmit="CheckPassword();return false;" name="login">
<pre>
Username: <input type="text" name="username">
Password: <input type="password" name="password">
</pre>
<input type="submit" value="log på"
  onclick="CheckPassword();return false;">
</form>

</body>
</html>
Avatar billede cyberkox Nybegynder
29. april 2002 - 19:53 #3
Hov, det var et svar ;)
Avatar billede riishoj Nybegynder
29. april 2002 - 19:54 #4
Øh, ikke helt forstået. Det jeg gerne vil lave, er et login-system, hvor 4 brugere bliver sendt til hver sin side, hvor de kan tilføje, slette og opdatere data i en tabel. Jeg vil jo gerne undgå, at andre kan komme ind og ændre i databasen.
Avatar billede riishoj Nybegynder
29. april 2002 - 19:55 #5
min kommentar er til questis.
Avatar billede riishoj Nybegynder
29. april 2002 - 19:57 #6
Jeg vil helst have en serverside løsning!!!
Avatar billede Slettet bruger
29. april 2002 - 19:59 #7
det kan de jo heller ikke hvis den side der hedder privat.asp som du sender brugerenm  til EFTER login bruger ders login in data til at se hvilken infos der skal være på den side

eks:

bruger et

bruger_id = 1

sendes til privat.asp?id=1

bruger_id = 2

sendes til privat.asp?id=1


derved kan man kun komme til siden via sin profil, og eller hvis man kan hacke sig til en anden brugers kode... men det vil jo være muligt i alle tilfælde
Avatar billede Slettet bruger
29. april 2002 - 20:04 #8
forstår du det nu ???
Avatar billede riishoj Nybegynder
29. april 2002 - 20:05 #9
Jamen, så er det jo den løsning, du beskriver questis, som jeg efterlyser. Problemet er bare, at jeg ikke ved, hvordan den laves!
Avatar billede Slettet bruger
29. april 2002 - 20:07 #10
kan du asp ? så er det ikke så slemt *SS*
Avatar billede riishoj Nybegynder
29. april 2002 - 20:11 #11
Kan kun lidt asp. Gider du lave et lille eksempel til mig. Giver gerne flere point!
Avatar billede Slettet bruger
29. april 2002 - 20:11 #12
ok... skal det både være med oprettelse og det hele ?
Avatar billede riishoj Nybegynder
29. april 2002 - 20:20 #13
Næ, det er fint med et script, hvor password bliver tildelt af mig, forstået på den måde, at det ikke er nødvendigt, at brugeren selv kan oprette et login. Det var det, du spurgte om, ikke?
Avatar billede Slettet bruger
29. april 2002 - 20:24 #14
jeps... er igang med det *SS*

login siden:
<%
<form target='_parent' action='login.asp?mode=login' method='post'>
<input name='navn'>
<input name='password' maxlength='8' type='password'>
<input type='submit' value='login'>

en side der hedder login.asp

<%
' bruges til at tjekke om brugeren finde i db ved login
' Sender resultaterne fra tilføj links til databasen
' Database connection
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("/koder/asp/forum/forum.mdb")

strUsername = Trim(Replace(Request.Form("navn"),"'",""))
strPassword = Trim(Replace(Request.Form("password"),"'",""))
strSQL ="SELECT * FROM bruger WHERE UCase(navn) = '" & UCase(strUsername) & "' AND UCase(Password) = '" & UCase(strPassword) & "'"
set rs = conn.execute(strSQL)
'først tjekke om brugeren findes ved at tjekke om recordsetet er tomt.
if not rs.EOF then
  if LCase(rs("navn")) = LCase(strUsername) then
    'LOGIN OK
    session("brugernavn") = LCase(strUsername)
    Response.Redirect("index.asp?id=("navn")")
  else
    'INGEN BRUGER FUNDET
    'Eller en blev fundet men databasen bruger navn passer ikke med det
    'indtastede brugernavn
  end if
else
'brugeren ikke fundet lave det som skal ske hvis brugeren ikke er fundet her
%>

det var første del....
Avatar billede Slettet bruger
29. april 2002 - 20:26 #15
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("/koder/asp/forum/forum.mdb

skal rettes til
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("din db sti.mdb
Avatar billede Slettet bruger
29. april 2002 - 20:29 #16
så skal vi have lavet brugersiden=index.asp


' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From tråd Where Id = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)

skal indsættes unde din db funktion og så giver du ellers bare de indputs der er behov for at hente


skal lige siges i din db (for at bruge dette eksempel)
skal du have en tabel med navnet bruger

og i denne skal der være følgende:
id = autonummerering
navn = brugernavn
Password = max 8 cifret password
Avatar billede Slettet bruger
29. april 2002 - 20:29 #17
forstår du dette ?
Avatar billede riishoj Nybegynder
29. april 2002 - 20:38 #18
Ja, det tror jeg nok. Har i hvert fald styr på min db-forbindelse, som jeg har kæmpet længe med. Jeg bruger en DSN og ikke en DSN-less, men det ved jeg godt hvordan jeg skal klare. Har desværre ikke tid til at teste det før i morgen sidst på eftermiddagen. Gider du kigge forbi i morgen?
Avatar billede Slettet bruger
29. april 2002 - 20:39 #19
uha... skal da prøve... men sidder og skriver projekt. men skal da nok lige kigge forbi, hvad tid regner du med ?
Avatar billede riishoj Nybegynder
29. april 2002 - 20:41 #20
Jeg regner med at være på ved 20-tiden. Er det ok?
Avatar billede Slettet bruger
29. april 2002 - 20:43 #21
skal da prøbe ved den tid *SS* men god fornøjelse med det *SS*
Avatar billede riishoj Nybegynder
30. april 2002 - 18:10 #22
Hej igen. Jeg har prøvet at lege lidt med dine forslag, men desværre kan jeg ikke umiddelbart få det til at virke. Det ser sådan her ud.

Først formen:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ny side 1</title>
</head>

<body>

<form target='_parent' action='login.asp?mode=login' method='post'>
<input name='username'>
<p>
<input name='password' maxlength='8' type='password'>
</p>
<p>
<input type='submit' value='login'>



</p>
</form>



</body>

</html>
som sender til login.asp:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ny side 1</title>
</head>

<body>
<%
' bruges til at tjekke om brugeren finde i db ved login
' Sender resultaterne fra tilføj links til databasen
' Database connection
' Skaber DSN forbindelse til DBen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=riishojwebsoftdkdsn"


strUsername = Trim(Replace(Request.Form("username"),"'",""))
strPassword = Trim(Replace(Request.Form("password"),"'",""))
strSQL ="SELECT * FROM forhandler WHERE UCase(navn) = '" & UCase(strUsername) & "' AND UCase(Password) = '" & UCase(strPassword) & "'"
set rs = conn.execute(strSQL)
'først tjekke om brugeren findes ved at tjekke om recordsetet er tomt.
if not rs.EOF then
  if LCase(rs("username")) = LCase(strUsername) then
    'LOGIN OK
    session("brugernavn") = LCase(strUsername)
    Response.Redirect("index.asp?id=('username')")
  else
    'INGEN BRUGER FUNDET
    'Eller en blev fundet men databasen bruger navn passer ikke med det
    'indtastede brugernavn
  end if
else
'brugeren ikke fundet lave det som skal ske hvis brugeren ikke er fundet her
end if
myConn.Close
Set myConn = Nothing

%>


</body>

</html>

Som logger ind på index.asp:

<% Response.Buffer = True %>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ny side 1</title>
</head>

<body>
<%

' Skaber DSN forbindelse til DBen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=riishojwebsoftdkdsn"

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From tråd Where Id = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)
' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>

</body>

</html>

Jeg får følgende fejlmeddelelse, når jeg logger på!

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/Biler_paa_Vestfyn/login.asp, line 23

Kan du gennemskue, hvor det går galt?
Avatar billede riishoj Nybegynder
30. april 2002 - 22:13 #23
Hej questis. Er du med endnu? Hvis ikke, så giv lige et prej.
Avatar billede Slettet bruger
30. april 2002 - 22:17 #24
heg riishoj.... undskyld jeg ikke har svaret, men er lidt stresset over mit projekt, prøver at se på det i morgen, så der ligger noget info til dig til i morgen håber det er i orden, men mit projekt skal afleveres i morgen klokken 8 hvis du forstår
Avatar billede riishoj Nybegynder
30. april 2002 - 22:30 #25
Selvfølgelig. Det var ikke for at presse dig, so just take your time.
Ville bare lige vide, om du var med endnu. Jeg har mistanke om, at min db på serveren ikke fungerer optimalt, så det vil jeg lige checke med min udbyder i morgen. Held og lykke med projektet!!!
Avatar billede Slettet bruger
01. maj 2002 - 20:32 #26
hej riishoj.... har du fundet ud af noget evt. nogle nye fejl ?
Avatar billede riishoj Nybegynder
01. maj 2002 - 20:46 #27
Næh, db'en på min server fungerer ok, så der må være en fejl i scriptet!
Avatar billede Slettet bruger
01. maj 2002 - 20:51 #28
ok, kigger lige på det, har du tid nu ???
Avatar billede riishoj Nybegynder
01. maj 2002 - 20:58 #29
Ja, det vil være fint!
Avatar billede Slettet bruger
01. maj 2002 - 20:59 #30
i denne linei skal du istedet for:
    Response.Redirect("index.asp?id=('username')")

prøve at skrive:

    Response.Redirect("index.asp")

så vi i første omgang kan får login til at virke
Avatar billede Slettet bruger
01. maj 2002 - 21:02 #31
se så hvilken fejl den melder...

den fejl den melder skriver en linie, fortæl mig hvead der står i denne line
Avatar billede riishoj Nybegynder
01. maj 2002 - 21:06 #32
Får stadig

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/Biler_paa_Vestfyn/login.asp, line 23

linje 23 er

set rs = conn.execute(strSQL)

Giver det nogen mening?
Avatar billede Slettet bruger
01. maj 2002 - 21:12 #33
så vil det sige at det er din connecrtion til din db....

hvad hedder dine kolonner i db ?
Avatar billede riishoj Nybegynder
01. maj 2002 - 21:19 #34
De hedder:

Id-forhandlerId-navn-username-password
Avatar billede Slettet bruger
01. maj 2002 - 21:22 #35
hvorfor bruger du både navn og username ? det er der vel igen grund til i denne tabel ?
Avatar billede Slettet bruger
01. maj 2002 - 21:22 #36
du kunne vel nøjes med navn
Avatar billede riishoj Nybegynder
01. maj 2002 - 21:28 #37
Har det nogen betydning for funktionen? Som du kan se har jeg ændret "navn" til "username" i dit script. Grunden til at jeg har en kolonne, der hedder "navn" er at tabellen også skal kunne bruges til andet.
Avatar billede Slettet bruger
01. maj 2002 - 21:31 #38
strSQL ="SELECT * FROM forhandler WHERE UCase(navn) = '" & UCase(strUsername) & "' AND UCase(Password) = '" & UCase(strPassword) & "'"

så skal du jo også ændre den hele vejen igennem, så der kommer til at stå istedet:

strSQL ="SELECT * FROM forhandler WHERE UCase(username) = '" & UCase(strUsername) & "' AND UCase(Password) = '" & UCase(strPassword) & "'"
Avatar billede riishoj Nybegynder
01. maj 2002 - 21:39 #39
Hele scriptet ser sådan ud nu

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ny side 1</title>
</head>

<body>
<%
' bruges til at tjekke om brugeren finde i db ved login
' Sender resultaterne fra tilføj links til databasen
' Database connection
' Skaber DSN forbindelse til DBen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=riishojwebsoftdkdsn"


strUsername = Trim(Replace(Request.Form("username"),"'",""))
strPassword = Trim(Replace(Request.Form("password"),"'",""))
strSQL ="SELECT * FROM forhandler WHERE UCase(username) = '" & UCase(strUsername) & "' AND UCase(Password) = '" & UCase(strPassword) & "'"
set rs = conn.execute(strSQL)
'først tjekke om brugeren findes ved at tjekke om recordsetet er tomt.
if not rs.EOF then
  if LCase(rs("username")) = LCase(strUsername) then
    'LOGIN OK
    session("brugernavn") = LCase(strUsername)
  Response.Redirect("index.asp")
  else
    'INGEN BRUGER FUNDET
    'Eller en blev fundet men databasen bruger navn passer ikke med det
    'indtastede brugernavn
  end if
else
'brugeren ikke fundet lave det som skal ske hvis brugeren ikke er fundet her
end if
myConn.Close
Set myConn = Nothing

%>


</body>

</html>

Er denne linje rigtig?


    session("brugernavn") = LCase(strUsername)
 
Jeg har ikke noget der hedder "brugernavn" nogen steder!
Avatar billede Slettet bruger
01. maj 2002 - 21:44 #40
session("brugernavn") = LCase(strUsername)  er egentligt overflødig i dit tilfælde, da den kun skaber en session, som hedder bruger navn, som indeholder brugerens navn... men hvad med den rettelse jeg gav dig, ud fra dit gamle, det giver samme fejl ?
Avatar billede riishoj Nybegynder
01. maj 2002 - 21:47 #41
Ja, jeg havde glemt at ændre "navn" til "username" et enkelt sted, men det giver samme resultat!
Avatar billede Slettet bruger
01. maj 2002 - 21:49 #42
altså denne fejl:

/Biler_paa_Vestfyn/login.asp, line 23

linje 23 er

set rs = conn.execute(strSQL)
Avatar billede Slettet bruger
01. maj 2002 - 21:50 #43
mente denne:

Jeg får følgende fejlmeddelelse, når jeg logger på!

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/Biler_paa_Vestfyn/login.asp, line 23
Avatar billede riishoj Nybegynder
01. maj 2002 - 21:54 #44
Ja, det er fejlmeddelelsen.
Avatar billede Slettet bruger
01. maj 2002 - 21:55 #45
kan sku ikke se hvo i denne SQL den mangler et "
Avatar billede Slettet bruger
01. maj 2002 - 22:00 #46
ved ikke omd der foreligger nogle andre standarder til en dsn forbindelse, kender slet ikke til denne
Avatar billede Slettet bruger
01. maj 2002 - 22:04 #47
har du på din login.asp lavet en mode=login, ellers skal du rette det i din for, så der kun stå login.asp
Avatar billede riishoj Nybegynder
01. maj 2002 - 22:10 #48
Min dsn-forbindelse er ok. Den virker fint i andre scripts. Det sidste du skriver, forstår jeg desværre ikke! :(
Avatar billede Slettet bruger
01. maj 2002 - 22:11 #49
om du i login asp, har delt siden op i flere side, eller om der kun står det du skrev til mig til sidst. hvis der kun stå det, skal du ændre din form, så der står action='login.asp
Avatar billede riishoj Nybegynder
01. maj 2002 - 22:20 #50
OK-prøver
Avatar billede riishoj Nybegynder
01. maj 2002 - 22:26 #51
Får stadig den samme fejlmeddelelse!
Avatar billede Slettet bruger
01. maj 2002 - 22:30 #52
skulle du da ellers ikke, da det var to forskellige sider, den refererede til.....
Avatar billede Slettet bruger
01. maj 2002 - 22:32 #53
er rendt tør for ideer.... det kunne være at (da jeg ved at koden virker hos mig) at du skulle bygge videre på den, ved at oprette et nyt spm, med disse points under asp, så der var friske øjne der kunne se på det, jeg kan i hvertfald ikke se hvor problemet forfindes

undskylder meget, men som sagt virker det hos mig
Avatar billede riishoj Nybegynder
01. maj 2002 - 22:38 #54
Ikke desto mindre er det det jeg ser.
Jeg er ved at være ked af at bruge din tid. På den anden side ville jeg blive kanon glad hvis jeg fik det til at virke:
Avatar billede Slettet bruger
01. maj 2002 - 22:42 #55
kan kun se det er den SQL det er galt med, og den har jeg nu tjekket på kryds og tværs, oppefra og nedefra, men det giver ikke mening i mit lille hoved hvor den forbanede fejl foreligger
Avatar billede Slettet bruger
01. maj 2002 - 22:49 #56
har du et link til siden hvor login formen er ?
Avatar billede riishoj Nybegynder
01. maj 2002 - 22:55 #57
Ja, den ligger på

http://www.riishojwebsoft.dk/Biler_paa_Vestfyn/login.htm

Har fuld forståelse for at du evt. stopper nu. Du behøver absolut ikke at undskylde. Det er jo dig der brugt en masse tid på mit problem.
Avatar billede Slettet bruger
01. maj 2002 - 22:58 #58
har du et gyldigt password og brugernavn ? &:-D
Avatar billede Slettet bruger
01. maj 2002 - 23:04 #59
eksempelvis opret dette login:
test test
Avatar billede riishoj Nybegynder
01. maj 2002 - 23:15 #60
Prøv med

Opel
Vectra
Avatar billede Slettet bruger
01. maj 2002 - 23:19 #61
må desvære opgive herfra... men eagleeye er online nu, han er lidt rå til asp, så måske du skulle prøve at fange ham, da han sikkert kan løse dette.

jeg s¨tår af nu, da jeg ikke aner hvad jeg skal gøre
Avatar billede Slettet bruger
01. maj 2002 - 23:22 #62
har prøvet at guide ham her til &:-D
Avatar billede riishoj Nybegynder
01. maj 2002 - 23:25 #63
Ok questis, endnu en gang tak for din indsats. Smider lidt point af til dig og prøver at oprette spørgsmålet på ny.
Avatar billede Slettet bruger
01. maj 2002 - 23:27 #64
takker for points, men det havde du da ikke behøvet... har jo ikke kunnet løse dit proble fuldt ud &:-D
Avatar billede eagleeye Praktikant
01. maj 2002 - 23:29 #65
Din Connection hedder: myConn Den har du definere i toppen
' Skaber DSN forbindelse til DBen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=riishojwebsoftdkdsn"

Der hvor du benytter en connection til execute bruger du conn. Det giver fejlen Object Required.

Så ret:
Set rs = Conn.Execute(strSQL)

Til
Set rs = myConn.Execute(strSQL)
Avatar billede Slettet bruger
01. maj 2002 - 23:30 #66
hmmmm.... og så har jeg siddet og knoklet med at få det l... til at virke da jeg var overbevist om at conection var ok, efter sigende
Avatar billede eagleeye Praktikant
01. maj 2002 - 23:33 #67
Hvis man får fejlen: Object Required " 

Så skal man typisk kikker efter om connection er definet som, alle de steder hvor man bruger en conenction om man har stavet det rigitgt:
Set Connection = Server.CreateObject("ADODB.Connection")

Samt hvis man benytter rs.Open connection,sql så skal man også havde defineret rs ved:
Set rs = Server.CreateObject("ADODB.Recordset")
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
Kurser inden for grundlæggende programmering

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