Avatar billede eds Nybegynder
02. december 2003 - 16:18 Der er 22 kommentarer og
2 løsninger

Opret bruger funktion

hej, jeg bruger dette login system: http://www.miljopose.dk/rasmus/pass_redirect.zip ,men jeg syntes det er ret besværligt når man skal oprette brugere til folk, så jeg ville blive glad hvis der var nogle herinde der gad lave en opret bruger funktion til mig, altså det skal bare være en form der indsætter et brugernavn og et password i db-filen, og den side den skal gå hen til når man logger in skal bare være den samme for alle brugere.

På forhånd tak...
Avatar billede mr-super Nybegynder
02. december 2003 - 16:19 #1
Kig lidt rundt
feks.
www.Solutions2all.dk
www.asp.dk
www.google.com < Søg efter ASP opret bruger
www.hotscript.com
Avatar billede thesurfer Nybegynder
02. december 2003 - 16:26 #2
Læs lektionerne 17-22 på http://html.dk/tutorials/asp/
De omhandler brugen af en Access database; hvordan man indsætter data, henter data, osv..
Avatar billede eds Nybegynder
02. december 2003 - 16:29 #3
Ok det kogger jeg lige på...
Avatar billede thesurfer Nybegynder
02. december 2003 - 16:35 #4
Jeg smutter lige.. er muligvis først tilbage omkring kl 20..
- Jeg ligger et svar, hvis du nu kan bruger mit indlæg.. Ellers afviser du bare.
Avatar billede eds Nybegynder
02. december 2003 - 16:40 #5
ok
Avatar billede eds Nybegynder
02. december 2003 - 16:44 #6
Jeg har prøvet at lave noget her:

indsaet.asp:

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("protect97.mdb")
Conn.Open DSN

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

' Skriv personens data
strSQL = "Insert into Username (Username) values('" & Request.Form("Username") & "')"
strSQL = "Insert into Password (Password) values('" & Request.Form("Password") & "')"

Conn.Close
Set Conn = Nothing
%>

<html>

<head>
<title>No title</title>
</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p>&nbsp;</p>
</body>

</html>


og opretbruger.htm:

<html>

<head>
<title>No title</title>
<meta name="generator" content="Namo WebEditor v5.0(Trial)">
</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p>&nbsp;</p>
<form action="indsaet.asp" method="post">
<input type="text" name="Username"> <input type="text" name="Password">
<input type="submit" value="Gem">
</form>&nbsp;</body>
</html>

men det virker ikke den siger bare siden kan ikke vises...
Avatar billede eds Nybegynder
02. december 2003 - 16:45 #7
Er der nogen der kan fortælle mig hvad der er galt?
Avatar billede thesurfer Nybegynder
02. december 2003 - 22:16 #8
- Din SQL sætninger er forkert (med mindre at du har 2 tabeller, hvilket er unødvendigt).
- Du mangler at execute SQL sætningerne..

Her er et eksempel med 1 tabel (tblUserPass) der har 2 felter (username og password):

<%
' koden til at åbne forbindelse, osv, her..

dim strUsername, strPassword
strUsername = replace(request.form("username"), "'", "")
strPassword = replace(request.form("password"), "'", "")

strSQL = "Insert into tblUserPass (username, password) values('" & strUsername & "', '" & strPassword & "')"
Conn.execute(strSQL)

conn.close
set conn = nothing

response.write "<br>Brugeren '" & strUsername & "' er nu tilføjet."
%>

Jeg kan ikke se hvorfor du henter data fra en bestemt id i urlen når du skal indsætte en ny bruger?
Hvis det er for at checke om brugeren allerede eksisterer, kan du bruge følgende:

<%
dim strUsername, strPassword
strUsername = replace(request.form("username"), "'", "")
strPassword = replace(request.form("password"), "'", "")

strSQL = "Select * From tblUserPass Where username = '" & strUsername & "'"
Set rs = Conn.Execute(strSQL)

if (rs.bof) or (rs.eof) then
  ' Der er ikke fundet en eksisterende bruger..
  strSQL = "Insert into tblUserPass (username, password) values('" & strUsername & "', '" & strPassword & "')"
  Conn.execute(strSQL)

  conn.close
  set conn = nothing

  response.write "<br>Brugeren '" & strUsername & "' er nu tilføjet."
else
  ' Brugeren eksisterer allerede..
  response.write "Brugeren '" & strUsername & "' eksisterer allerede."
end if
Avatar billede thesurfer Nybegynder
02. december 2003 - 22:46 #9
rettelse:
if (not rs.bof) or (not rs.eof) then
Avatar billede thesurfer Nybegynder
02. december 2003 - 22:47 #10
dammit.. hvis bare jeg kunne læs og programmere.. :)
her er endnu en rettelse:
if (not rs.bof) and (not rs.eof) then

"or" skal være "and".
Avatar billede eds Nybegynder
03. december 2003 - 14:27 #11
Undskyld jeg kan simpelthen ikke finde ud af det, gider du ikke godt sætte det hele sammen sådan så jeg kan se hvordan det skal være...?
Avatar billede thesurfer Nybegynder
03. december 2003 - 15:45 #12
Her er et eksempel med en database (protect97.mdb) med 1 tabel (tblUserPass) der har 2 felter (username og password)..
Databasen ligger i samme mappe som indsaet.asp.

indsaet.asp:

<%
Option Explicit ' Bør altid bruges, og definer altid dine variabler.

dim Conn, rs, strSQL, DSN
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("protect97.mdb")
Conn.Open DSN

dim strUsername, strPassword
strUsername = replace(request.form("username"), "'", "")
strPassword = replace(request.form("password"), "'", "")

strSQL = "Select * From tblUserPass Where username = '" & strUsername & "'"
Set rs = Conn.Execute(strSQL)

if (not rs.bof) and (not rs.eof) then
  ' Brugeren eksisterer allerede..
  response.write "Brugeren '" & strUsername & "' eksisterer allerede."
else
  ' Der er ikke fundet en eksisterende bruger..
  strSQL = "Insert into tblUserPass (username, password) values('" & strUsername & "', '" & strPassword & "')"
  Conn.execute(strSQL)
  response.write "<br>Brugeren '" & strUsername & "' er nu tilføjet."
end if

Conn.Close
Set Conn = Nothing
%>

<html>

<head>
<title>No title</title>
</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p>&nbsp;</p>
</body>

</html>
Avatar billede eds Nybegynder
03. december 2003 - 15:48 #13
Så siger den: der opstod en intern HTTP 500-serverfejl
Avatar billede thesurfer Nybegynder
03. december 2003 - 15:57 #14
Gå ind i Funktioner > Internet indstillinger > Avanceret > fjern "x" fra "Vis meddelelser om uskadelige HTTP-fejl"

Hvad skriver den så?

Under Option explicit linien skriver du:
response.buffer = false

Det er meget vigtigt at der ikke står noget kode før:
<%
Option explicit
response.buffer = true

De 3 linier skal stå øverst.
Avatar billede eds Nybegynder
03. december 2003 - 16:54 #15
Så siger den:



Microsoft OLE DB Provider for ODBC Drivers error '80040e37'

[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot find the input table or query 'tblUserPass'. Make sure it exists and that its name is spelled correctly.

/trovaerdig/nyt igen/opret/indsaet.asp, line 18
Avatar billede eds Nybegynder
03. december 2003 - 16:55 #16
Men, hvis man også skal ind i instillinger for at få det til at virke, kan dette script jo heller ikke bruges fordi det er jo ikke alle der kan finde ud af at de skal det...
Avatar billede thesurfer Nybegynder
03. december 2003 - 16:58 #17
Det er fordi du ikke har tilføjet en tabel der hedder "tblUserPass" i din database.. hvilket betyder at du heller ikke har oprettet felterne "username" og "password" i tabellen "tblUserPass".

Det skal du lige gøre først.


Husk....:

Når du får en fejlmelding skal du skrive:
- fejlmeldingen
- linie nr
- hvad der står på linien
- evt "hjemmelavede" funktioner du brugte da der opstod fejl
- variablers indholder, hvis du brugte variabler ved fejlen
Avatar billede eds Nybegynder
03. december 2003 - 17:04 #18
Jeg har desværre ingen mulighed for at bruge access her hvor jeg befinder mig, så det ville være rart hvis du kunne gøre det:

http://frip.dk/trovaerdig/nyt%20igen/opret/protect97.zip
Avatar billede thesurfer Nybegynder
03. december 2003 - 17:24 #19
Jeg har lige kigget i din database.. du skal bare ændre "tblUserPass" til "Users". Så skulle det gerne virke.
Avatar billede eds Nybegynder
03. december 2003 - 17:55 #20
ok går det noget hvis jeg først venner tilbage i morgen jeg skal nemlig lige ordne noget...
Avatar billede thesurfer Nybegynder
03. december 2003 - 18:10 #21
Du gør du bare.
Avatar billede eds Nybegynder
03. december 2003 - 20:19 #22
Hej, theserfer det vriker godt nok ikke med det her login system emn et andet jeg har fundet så du får bare points nu...
Avatar billede thesurfer Nybegynder
03. december 2003 - 20:30 #23
OK. Takker for points.
Havde håbet på at det virkede..

Nogen anelse om hvad der gik galt?
Avatar billede eds Nybegynder
03. december 2003 - 20:32 #24
Jo jo det virkede fint bare ikke sammen med det login system jeg havde valgt, så jeg fandt et andet og der virkede det med det samme.
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