Avatar billede krel Nybegynder
12. oktober 2006 - 20:17 Der er 25 kommentarer og
1 løsning

md5 igen igen igen..

Hey Eksperter !
Sorry at jeg bringe dette spørgsmål på banen igen, men jeg kan simpelthen ikke få det til at virke.
Når jeg indtaster password 111111 bliver det gemt i db'en og vist på 'confirm-siden' som 111111 og ikke en lang tråd af blandede tal og bogstaver...

Jeg fandt så et eksempel på et andet spm også omkring md5 hvor
ahv skulle blive til: b2089cddfd024804ad7c6164403a3a49 <- men også her gemmes og skrives blot ahv i stedet for ! hvad gør jeg forkert?

Bruger følgende kode: (kun ASP-delen)
<%
<!--#include file="md5.asp"-->

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("testbase.mdb")
Conn.Open DSN

strSQL = "Insert into Personer (Foedselsdag) values('" & Trim(Replace(Request.Form("Foedselsdag"),"'","''")) & "')"
strSQL = "Insert into Personer (Fornavn) values('" & Trim(Replace(Request.Form("Fornavn"),"'","''")) & "')"
strSQL = "Insert into Personer (Efternavn) values('" & Trim(Replace(Request.Form("Efternavn"),"'","''")) & "')"
strSQL = "Insert into Personer (Adresse) values('" & Trim(Replace(Request.Form("Adresse"),"'","''")) & "')"
strSQL = "Insert into Personer (Postnummer) values('" & Trim(Replace(Request.Form("Postnummer"),"'","''")) & "')"
strSQL = "Insert into Personer (By) values('" & Trim(Replace(Request.Form("By"),"'","''")) & "')"
strSQL = "Insert into Personer (Telefonnummer) values('" & Trim(Replace(Request.Form("Telefonnummer"),"'","''")) & "')"
strSQL = "Insert into Personer (Emailadresse) values('" & Trim(Replace(Request.Form("Emailadresse"),"'","''")) & "')"

strSQL = "Insert into Personer (Adgangskode) values('" & md5(Trim(Replace(Request.Form("Adgangskode"),"'","''"))) & "')"

%>

På forhånd tak
c",) Krisitan

- og så lige et tillægs spm: kan man ikke forkorte alle disse strSQL'er? hvis gerne et lille eksempel.
Avatar billede ldanielsen Nybegynder
12. oktober 2006 - 22:32 #1
Hvis du kører alle disse SQL'er, så opretter du jo 9 poster i tabellen Personer!

Gør sådan:

strSQL = "Insert into Personer (Foedselsdag, Fornavn, Efternavn, Adresse, Postnummer, By, Telefonnummer, Emailadresse, Adgangskode) VALUES('" & Trim(Replace(Request.Form("Foedselsdag"),"'","''")) & "', '" & Trim(Replace(Request.Form("Fornavn"),"'","''")) & "', '" & Trim(Replace(Request.Form("Efternavn"),"'","''")) & "', '" & Trim(Replace(Request.Form("Adresse"),"'","''")) & "', '" & Trim(Replace(Request.Form("Postnummer"),"'","''")) & "', '" & Trim(Replace(Request.Form("By"),"'","''")) & "', '" & Trim(Replace(Request.Form("Telefonnummer"),"'","''")) & "', '" & Trim(Replace(Request.Form("Emailadresse"),"'","''")) & "', '" & md5(Trim(Replace(Request.Form("Adgangskode"),"'","''"))) & "')"

Altså denne form:
INSERT INTO TabelNavn (Kolonne1, Kolonne2, Kolonne3) VALUES ('Værdi1', 'Værdi2', 'Værdi3')

Hvad nu hvis du tester md5-funktionen helt alene:
<!--#include file="md5.asp"-->
<%
Response.Write(md5("tester"))
%>

I øvrigt ser jeg at du har din include indenfor <% %>'erne, det kan ikke passe, for det vil give en fejl. Den skal være udenfor.
Avatar billede krel Nybegynder
12. oktober 2006 - 22:40 #2
helt alene så virker det:
f5d1278e8109edd94e1e4197e04873b9 (resultatet af 'tester')

men hvad gør jeg så forkert ovenfor? jeg har hørt tidligere og der fik jeg dette svar:

Dim strBrugernavn, strPassword
strBrugernavn = MD5(Trim(Replace(request.form("Brugernavn"),"'","''" )))
strPassword = MD5(Trim(Replace(request.form("Password"),"'","''" )))

er det noget der kan skrives lidt om på for som jeg har fået det vist virker det i hvert fald ikke...

c",) Kristian
Avatar billede fennec Nybegynder
13. oktober 2006 - 09:21 #3
strBrugernavn = MD5(Trim(Replace(request.form("Brugernavn"),"'","''" )))
skal være:
strBrugernavn = Replace(MD5(Trim(request.form("Brugernavn"))),"'","''" )
Avatar billede krel Nybegynder
14. oktober 2006 - 16:26 #4
Okey fennec. nu var dette blot hvis det kunne bruges i sammenhæng med det andet...
Hvis nu jeg vil lave det med denne linie:

strSQL = "Insert into Personer (Adgangskode) values('" & md5(Trim(Replace(Request.Form("Adgangskode"),"'","''"))) & "')"

skal jeg så også blot smide 'Replace' foran det hele? har jeg nemlig prøve og igen kodeordet 'testet' forbliver 'testet' og ikke 'cec72b93704f19d7626a9dd6005fab68'

H J Æ L P hvad går der galt ?!

c",) Kristian
Avatar billede krel Nybegynder
15. oktober 2006 - 19:56 #5
Tror lige jeg prøver at vise hele min side.
Kan nogen forklare(skrive) mig hvad jeg helt præcis skal gøre for at det indhold der tastes i feltet 'Adgangskode' kan blive hashed med MD5? for når jeg skriver 'test' forbliver det til test i databasen :(

[test.asp]

<%
' FP_ASP ASP Automatically generated by a Frontpage Component. Do not Edit.

On Error Resume Next
Session("FP_OldCodePage") = Session.CodePage
Session("FP_OldLCID") = Session.LCID
Session.CodePage = 1252
Err.Clear

strErrorUrl = ""

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
If Request.Form("VTI-GROUP") = "0" Then
    Err.Clear

    Set fp_conn =  Server.CreateObject("ADODB.Connection")
    FP_DumpError strErrorUrl, "Cannot create connection"

    Set fp_rs = Server.CreateObject("ADODB.Recordset")
    FP_DumpError strErrorUrl, "Cannot create record set"

    fp_conn.Open Application("TESTbase_ConnectionString")
    FP_DumpError strErrorUrl, "Cannot open database"

    fp_rs.Open "Personer", fp_conn, 1, 3, 2 ' adOpenKeySet, adLockOptimistic, adCmdTable
    FP_DumpError strErrorUrl, "Cannot open record set"

    fp_rs.AddNew
    FP_DumpError strErrorUrl, "Cannot add new record set to the database"
    Dim arFormFields0(9)
    Dim arFormDBFields0(9)
    Dim arFormValues0(9)

    arFormFields0(0) = "Foedselsdag"
    arFormDBFields0(0) = "Foedselsdag"
    arFormValues0(0) = Request("Foedselsdag")
    arFormFields0(1) = "Fornavn"
    arFormDBFields0(1) = "Fornavn"
    arFormValues0(1) = Request("Fornavn")
    arFormFields0(2) = "Efternavn"
    arFormDBFields0(2) = "Efternavn"
    arFormValues0(2) = Request("Efternavn")
    arFormFields0(3) = "Adresse"
    arFormDBFields0(3) = "Adresse"
    arFormValues0(3) = Request("Adresse")
    arFormFields0(4) = "Postnummer"
    arFormDBFields0(4) = "Postnummer"
    arFormValues0(4) = Request("Postnummer")
    arFormFields0(5) = "By"
    arFormDBFields0(5) = "By"
    arFormValues0(5) = Request("By")
    arFormFields0(6) = "Telefonnummer"
    arFormDBFields0(6) = "Telefonnummer"
    arFormValues0(6) = Request("Telefonnummer")
    arFormFields0(7) = "Emailadresse"
    arFormDBFields0(7) = "Emailadresse"
    arFormValues0(7) = Request("Emailadresse")
    arFormFields0(8) = "Adgangskode"
    arFormDBFields0(8) = "Adgangskode"
    arFormValues0(8) = Request("Adgangskode")

    FP_SaveFormFields fp_rs, arFormFields0, arFormDBFields0

    If Request.ServerVariables("REMOTE_HOST") <> "" Then
        FP_SaveFieldToDB fp_rs, Request.ServerVariables("REMOTE_HOST"), "Fjerncomputer"
    End If
    If Request.ServerVariables("HTTP_USER_AGENT") <> "" Then
        FP_SaveFieldToDB fp_rs, Request.ServerVariables("HTTP_USER_AGENT"), "Webbrowsertype"
    End If
    FP_SaveFieldToDB fp_rs, Now, "Tidsstempel"

    fp_rs.Update
    FP_DumpError strErrorUrl, "Cannot update the database"

    fp_rs.Close
    fp_conn.Close

    FP_FormConfirmation "text/html; charset=windows-1252",_
                        "Form Confirmation",_
                        "Thank you for submitting the following information:",_
                        "test.asp",_
                        "Return to the form."

End If
End If

Session.CodePage = Session("FP_OldCodePage")
Session.LCID = Session("FP_OldLCID")

%>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ny side 1</title>
</head>

<body>
<form method="POST" action="--WEBBOT-SELF--">
    <!--webbot bot="SaveDatabase" SuggestedExt="asp" S-DataConnection="TESTbase" S-RecordSource="Personer" U-Database-URL="testbase.mdb" S-Form-Fields="By Adgangskode Adresse Emailadresse Foedselsdag Efternavn Fornavn Telefonnummer Postnummer" S-Form-DBFields="By Adgangskode Adresse Emailadresse Foedselsdag Efternavn Fornavn Telefonnummer Postnummer" U-ASP-Include-Url="../_fpclass/fpdbform.inc" startspan U-Confirmation-Url="test.asp" --><!--webbot bot="SaveDatabase" endspan -->
    -fødselsdag-
<input type="text" name="Foedselsdag"><br>
    -fornavn-
<input type="text" name="Fornavn"><br>
    -efternavn-
<input type="text" name="Efternavn"><br>
    -adresse-
<input type="text" name="Adresse"><br>
    -postnr-
<input type="text" name="Postnummer"><br>
    -by-
<input type="text" name="By"><br>
    -telefonnr-
<input type="text" name="Telefonnummer"><br>
    -mail-
<input type="text" name="Emailadresse"><br>
<br>
    -adgangskode-
<input type="password" name="Adgangskode"><br>
<input type="submit" name="B1" value="opret"><input type="button" name="B3" value="update"><input type="reset" name="B2" value="slet alt">
</form>

<!--#include file="md5.asp"-->

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("testbase.mdb")
Conn.Open DSN

strSQL = "Insert into Personer (Foedselsdag) values('" & Trim(Replace(Request.Form("Foedselsdag"),"'","''")) & "')"
strSQL = "Insert into Personer (Fornavn) values('" & Trim(Replace(Request.Form("Fornavn"),"'","''")) & "')"
strSQL = "Insert into Personer (Efternavn) values('" & Trim(Replace(Request.Form("Efternavn"),"'","''")) & "')"
strSQL = "Insert into Personer (Adresse) values('" & Trim(Replace(Request.Form("Adresse"),"'","''")) & "')"
strSQL = "Insert into Personer (Postnummer) values('" & Trim(Replace(Request.Form("Postnummer"),"'","''")) & "')"
strSQL = "Insert into Personer (By) values('" & Trim(Replace(Request.Form("By"),"'","''")) & "')"
strSQL = "Insert into Personer (Telefonnummer) values('" & Trim(Replace(Request.Form("Telefonnummer"),"'","''")) & "')"
strSQL = "Insert into Personer (Emailadresse) values('" & Trim(Replace(Request.Form("Emailadresse"),"'","''")) & "')"

Conn.Close
Set Conn = Nothing
%>

</body>
</html>

Nu har jeg med vilje undladt en linie med 'adgangskode' for det jeg har forsøgt mig med har ikke givet noget resultat overhovedet!

c",) Kristian
Avatar billede fennec Nybegynder
16. oktober 2006 - 08:59 #6
Din insert fatter jeg minus af. Er det ikke meningen at det skal indsættes på EN rækker, for nu bliver det indsat på 9 selvstændige rækker (medregnet 'adgangskode' linjen). Din kode skulle nærmere være:

strSQL = "Insert into Personer (Foedselsdag,Fornavn,Efternavn,Adresse....) values('" & Trim(Replace(Request.Form("Foedselsdag"),"'","''")) & "','" & Trim(Replace(Request.Form("Fornavn"),"'","''")) & "','" & Trim(Replace(Request.Form("Efternavn"),"'","''")) & "''" & Trim(Replace(Request.Form("Adresse"),"'","''")) & "'....)"
Avatar billede krel Nybegynder
17. oktober 2006 - 13:26 #7
nu snakker du om i selve db'en ikk? for hvis så gør det ingen forskel om det står på ni rækker som mit eller det bliver skrevet sammen som i eksemplet til mit svar i denne tråd..

Men jeg har selv prøvet at smide md5 frem og tilbage og rykke det rundt på krydes og tværs så det hjælper lige fedt :(

Så hvis du (eller en anden) kunne vise (skrive) en linie der passer ind på min side jeg nu har vist her ville det være super rart. Den stump kode:

<start>
strBrugernavn = MD5(Trim(Replace(request.form("Brugernavn"),"'","''" )))
skal være:
strBrugernavn = Replace(MD5(Trim(request.form("Brugernavn"))),"'","''" )
<slut>

kn jeg heller ikke lige få til at passe i nogen større sammenhæng H J Æ L P
Avatar billede krel Nybegynder
18. oktober 2006 - 19:34 #8
anyone? hvis ikke har jeg et andet spm der måske så er nogle der kan hjælpe med.
Hvis nu jeg opretter følgende data:

Fødselsdag: 123456
Fornavn: hans
Efternavn: hansen
Adresse: hansvej 12
Postnummer: 9000
By: Ålborg
Telefonnummer: 87654321
Emailadresse: navn@domiane.land
Password: test

Dette oprettes mandag d. 1
- torsdag d.4 (datoer ligegyldig - princippet)er hans hansen flyttet til hendesvej 8...

Kan man så lave en side (fx update.asp) der vises når hans er logget ind, så først laves et udtræk med hans' data og efter disse udtag vises et input felt der kan skrives i hvis man ønsker en oplysning opdateret?

Altså noget i stil med:

123456
Hans [- felt til at skrive i -]
Hansen [- felt til at skrive i -]
Hansvej 12 [hendesvej 8]
Postnummer [- felt til at skrive i -]
osv.. osv..
hvis det ikke srives noget = ingen opdatering

Håber nogen kan løse lidt ud af deres viden og tid c",)
- som sagt er der tale om et tillæges spørgsmål så har du et svar på det 'første' har det stadig også stor interesse! - sikkerheden kommer jo i første række!

POINT hæves selvfølgelig! - ved ikke helt hvordan man gør, men ellers oprettes separate tråde med pointgivninger..

c",) Kristian
Avatar billede fennec Nybegynder
19. oktober 2006 - 08:47 #9
Her er en kode som viser grundopstillingen til indsættelse af en ny bruger:
<%
if Request.querystring("mode") = "save" then
    birth = SQLDate(Request.Form("birth"))
    navn = replace(Request.Form("navn"),"'","''")
    lastn = replace(Request.Form("lastn"),"'","''")
    adr = replace(Request.Form("adr"),"'","''")
    zip = replace(Request.Form("zip"),"'","''")
    city = replace(Request.Form("city"),"'","''")
    tlf = replace(Request.Form("tlf"),"'","''")
    email = replace(Request.Form("email"),"'","''")
    pass = replace(MD5(Request.Form("pass")),"'","''")
    sql = "insert into "
    oConn.execute("insert into Personer(Foedselsdag,Fornavn,Efternavn,Adresse,Postnummer,[By],Telefonnummer,Emailadresse,adgangskode) "&_
        "values(#"& birth &"#,'"& navn &"','"& lastn &"','"& adr &"','"& zip &"','"& city &"','"& tlf &"','"& email &"','"& pass &"')")
    response.redirect("denneside.asp")
end if

function SQLDate(fDate)
    if isDate(fDate) then
        SQLDate = right("0"& month(fDate)) &"-"& right("0"& day(fDate)) &"-"& year(fDate)
    end if
end function

%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <title>Untitled</title>
</head>
<body bgcolor="#008000">
<form name="myForm" method="post" action="<%= scriptname %>?mode=save">
<input type="Text" name="birth" value=""><br>
<input type="Text" name="navn" value=""><br>
<input type="Text" name="lastn" value=""><br>
<input type="Text" name="adr" value=""><br>
<input type="Text" name="zip" value=""><br>
<input type="Text" name="city" value=""><br>
<input type="Text" name="tlf" value=""><br>
<input type="Text" name="email" value=""><br>
<input type="Password" name="pass" value=""><br>
<input type="Submit" value="Gem">
</form>
</body>
</html>
Avatar billede fennec Nybegynder
19. oktober 2006 - 08:48 #10
Der havde lige sneget sig en
sql = "insert into "

Den kan slettes.
Avatar billede krel Nybegynder
19. oktober 2006 - 18:46 #11
jamen så siger jeg mange tak... vil gerne prøve at undgå alle de der FrontPage komponenter.......
Men mangler der ikke noget til at fortælle hvilken database der er til noget ala:

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("testbase.mdb")
Conn.Open DSN

???

Kan man så bare er statte 'replace' med update når jeg skal lave en 'opdater-data-side' ??

Mvh
c",) Kristian
Avatar billede fennec Nybegynder
20. oktober 2006 - 08:36 #12
1. Ja der mangler en DB connection.
2. Nej. replace har intet med databasen at gøre. Den sikre bare teksten mod SQL-injections (tekst med ' tegnet i), som kan ødelægge din database.

Skal du opdatere en række, skal det gøres med update syntaxen:
conn.execute("update Personer set Foedselsdag=#"& birth &"#, Fornavn='"& navn &"',Efternavn='"& adr &"'..osv.. where ID=123")

Her bestemmer du hvilken række eller rækker der skal opdateres med oplysningerne med where begrundelsen.
Avatar billede krel Nybegynder
20. oktober 2006 - 16:52 #13
okey så DB sonnection sætter jeg bare hvor? i starten af <% eller i <body> ???

Jamen så siger jeg da mere end 1000 tak for din hjælp og ikke mindst din tid.
Her får du lige de 50 point og så må du jo sige til hvis det slet ikke er nok til dette svar på et sådanne spørgsmål.

c",) Kristian
Avatar billede fennec Nybegynder
23. oktober 2006 - 08:30 #14
Det skal smides i starten, så den er initialiseret inden du skal læse/skrive til databasen.
Avatar billede krel Nybegynder
23. oktober 2006 - 19:22 #15
hmmm... jeg får bare den go gamle 500 error..!
Men når jeg nu sidder og kigger på de koder FrontPage laver, så gør den jo brug af en såkaldt 'database-forbindelse' skal jeg lave noget lignende i starten når jeg laver 'opkaldet' til databasen?..

Og så får du altså lige min kode som den ser ud nu.. (din tilrettet)


<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("testbase.mdb")
Conn.Open DSN

if Request.querystring("mode") = "save" then
    Foedselsdag = SQLDate(Request.Form("Foedselsdag"))
    Fornavn = replace(Request.Form("Fornavn"),"'","''")
    Efternavn = replace(Request.Form("Efternavn"),"'","''")
    Adresse = replace(Request.Form("Adresse"),"'","''")
    Postnummer = replace(Request.Form("Postnummer"),"'","''")
    By = replace(Request.Form("By"),"'","''")
    Telefonnummer = replace(Request.Form("Telefonnummer"),"'","''")
    Emailadresse = replace(Request.Form("Emailadresse"),"'","''")
    Adgangskode = replace(MD5(Request.Form("Adgangskode")),"'","''")
    sql = "insert into "
    Conn.execute("insert into Personer(Foedselsdag,Fornavn,Efternavn,Adresse,Postnummer,By,Telefonnummer,Emailadresse,Adgangskode) "&_
        "values(#"& Foedselsdag &"#,'"& Fornavn &"','"& Efternavn &"','"& Adresse &"','"& Postnummer &"','"& By &"','"& Telefonnummer &"','"& Emailadresse &"','"& Adgangskode &"')")
    response.redirect("denneside.asp")
end if

function SQLDate(fDate)
    if isDate(fDate) then
        SQLDate = right("0"& month(fDate)) &"-"& right("0"& day(fDate)) &"-"& year(fDate)
    end if
end function

%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <title>Untitled</title>
</head>
<body>
<form name="myForm" method="post" action="<%= scriptname %>?mode=save">
<input type="Text" name="Foedselsdag" value=""><br>
<input type="Text" name="Fornavn" value=""><br>
<input type="Text" name="Efternavn" value=""><br>
<input type="Text" name="Adresse" value=""><br>
<input type="Text" name="Postnummer" value=""><br>
<input type="Text" name="By" value=""><br>
<input type="Text" name="Telefonnummer" value=""><br>
<input type="Text" name="Emailadresse" value=""><br>
<input type="Password" name="Adgangskode" value=""><br>
<input type="Submit" value="Gem">
</form>
</body>
</html>

hvad går galt?
Avatar billede fennec Nybegynder
24. oktober 2006 - 10:17 #16
Du mangler md5 includen:

<!--#include file="md5.asp"-->
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("testbase.mdb")
Conn.Open DSN
...
...
Avatar billede krel Nybegynder
24. oktober 2006 - 18:26 #17
ok. desværre får jeg stadig en 500 error....

Nu ved jeg ikke lige hvad der er sket, men jeg postede faktisk et spørgsmål mere lige bagefter det forrige... men det kommer så her:

For da jeg ikke kunne få 'opret' til at virke kastede jeg mig over projekt 'update' men også her meldes der fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/Apage/teste.asp, line 35

så her må jeg el igen lige vise min kode (sorry det bliver så langt!)
- først henter jeg data som de er at finde i databasen og herefter en ny 'opringning' for at lave updateproceduren....

<% Response.Buffer = True %>
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Page-Enter" content="blendTrans(Duration=0.2)">
<link rel="stylesheet" type="text/css" href="../Apage/style.css">
<title>HH3B |</title>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../LOGtest/testbase.mdb")
Conn.Open DSN
SQL = "Select * FROM Personer"
Set rs = Conn.Execute(SQL)
Response.Write "Fødselsdag " & rs("Foedselsdag") & "<br><br>Fornavn " & rs("Fornavn") & "<br><br>Efternavn " & rs("Efternavn") & "<br><br>" & rs("Adresse") & "<br><br>" & rs("Postnummer") & "<br><br>" & rs("By") & "<br><br>" & rs("Telefonnummer") & "<br><br>" & rs("Emailadresse") & "</a> "
Conn.Close
Set Conn = Nothing
%>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../LOGtest/testbase.mdb")
Conn.Open DSN
if Request.querystring("mode") = "update" then
    birth = SQLDate(Request.Form("birth"))
    navn = replace(Request.Form("navn"),"'","''")
    lastn = replace(Request.Form("lastn"),"'","''")
    adr = replace(Request.Form("adr"),"'","''")
    zip = replace(Request.Form("zip"),"'","''")
    city = replace(Request.Form("city"),"'","''")
    tlf = replace(Request.Form("tlf"),"'","''")
    email = replace(Request.Form("email"),"'","''")
    sql = "update Personer set "
[linie35]conn.execute("update Personer set Foedselsdag=#"& birth &"#, Fornavn='"& navn &"',Efternavn='"& lastn &"',Adresse='"& adr &"',Postnummer='"& zip &"',By='"& city &"',Telefonnummer='"& tlf &"',Emailadresse='"& email &"' where ID=123")
    response.redirect("teste.asp")
end if
function SQLDate(fDate)
    if isDate(fDate) then
    SQLDate = right("0"& month(fDate)) &"-"& right("0"& day(fDate)) &"-"& year(fDate)
    end if
end function
%>
<div style="position: absolute; width: 100px; height: 100px; z-index: 1" id="lag1">
<form name="myForm" method="post" action="<%= scriptname %>?mode=update">

<p><input type="Text" name="birth" value=""><br></p>
<p><input type="Text" name="navn" value=""><br></p>
<p><input type="Text" name="lastn" value=""><br></p>
<p><input type="Text" name="adr" value=""><br></p>
<p><input type="Text" name="zip" value=""><br></p>
<p><input type="Text" name="city" value=""><br></p>
<p><input type="Text" name="tlf" value=""><br></p>
<p><input type="Text" name="email" value=""><br></p>
<p><input type="Submit" value="Gem"></p>

</form>
</div>
</body>
</html>

Er det mig det bare fatter minus eller hva'??

Vh.
Kristian
Avatar billede fennec Nybegynder
25. oktober 2006 - 07:50 #18
Havde lige overset By, som er et reserveret ord i SQL. Den skal have [] omkring:

Conn.execute("insert into Personer(Foedselsdag,Fornavn,Efternavn,Adresse,Postnummer,[By],Telefonnummer,Emailadresse,Adgangskode) "&_
        "values(#"& Foedselsdag &"#,'"& Fornavn &"','"& Efternavn &"','"& Adresse &"','"& Postnummer &"','"& By &"','"& Telefonnummer &"','"& Emailadresse &"','"& Adgangskode &"')")

Det samme gælder for updateen.

Har du kun EN række i Personer?? Ellers mangler du en oplysning som fortæller dig hvilken række det er du vil opdatere (primærnøgle).
Avatar billede krel Nybegynder
25. oktober 2006 - 19:02 #19
nej der kommer selvfølgelig flere rækker med forskellige personer, men det leder mig frem til mit næste spm omkring updaten....

For den side hvor en person kan update bliver kun vist når han har logget ind med sit login, så kan man ikke på en eller anden måde gemme login info og dermed sige at det er rækken hvor brugernavn = xxx der skal updateres???

/
Kristian
Avatar billede krel Nybegynder
25. oktober 2006 - 19:12 #20
\ har du evt. msn?
går lidt hurtigere end her og kan se du er umiddelbart formiddags menneske.. *heh
Avatar billede fennec Nybegynder
26. oktober 2006 - 08:27 #21
Jeg har ikke MSN. Og jeg er et "formiddags menneske" fordi jeg sidder på arbejdet :o)

På login siden skal du gemme ID (primærnøglen) fra databasen i en session variabel. Kunne jeg forstille mig at du allerede gør.
Avatar billede krel Nybegynder
26. oktober 2006 - 18:50 #22
ja der er en såkaldt brugeradgang der bliver sat = true og så har alle de 'hemmelige sider' en lille funktion der tjekker om denne værdi nu også er "true"...

men hvad har det med opret og/eller update at gøre?
er lidt tabt lige nu?...

/Kristian
Avatar billede fennec Nybegynder
27. oktober 2006 - 08:30 #23
Det skal du bruge for at få brugerens ID.

1. Du skal tjekke om brugerne er logget ind (det tjek har du)
2. Du skal kun vise denne brugeres oplysninger (mangler du et ID til)
3. Du skal kun gemme denne brugers oplysninger (mangler du et ID til)
(4). Du skal have en admin side hvor administrator (dig) kan ændre alle brugers oplysninger (mangler du et adminID til)

Kan du vise mig din login kode...
Avatar billede krel Nybegynder
28. oktober 2006 - 15:53 #24
jeg har en login side hvor brugerens data indtastes og så tjekkes de via denne side:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("testbase.mdb")
Conn.Open DSN

Dim strBrugernavn, strPassword
strBrugernavn = (Trim(Replace(request.form("Brugernavn"),"'","''" )))
strPassword = (Trim(Replace(request.form("Password"),"'","''" )))

SQL = "SELECT * FROM Personer where Brugernavn= '" & strBrugernavn & "' AND Password= '" & strPassword& "'"
Set rs = Conn.Execute(SQL)

If Not (rs.BOF Or rs.EOF) Then
Session("ID") = rs("ID")
Session("Brugeradgang") = True
Response.redirect "logged.asp"

Else

Response.redirect "loginfejl.asp"
End If

Conn.Close
Set Conn = Nothing
%>

alle de ID'er du snakker om har jeg ingen ide om?
er det nogle der skal laves når en bruger opretter sig/ændre data?

/ Kristian c",)
Avatar billede fennec Nybegynder
30. oktober 2006 - 09:23 #25
Nej. Alle (næsten) tabeller i en database skal have en primærnøgle, for at overholde DB opbygningen. Dette vil i de fleste tilfælde være et felt med Autonummerering og være navngivet "ID". Hvilket også passer på din database.

Det ID bliver allerede gemt i session("ID"), når brugeren logger ind, så du har brugerens ID i denne variabel. Du kan altså bruge dette til at trække værdierne i database ud og gemme dem:

Hente data ud:
set rs = conn.execute("select * from Personer where id="& session("ID"))

Updatere data:
conn.execute("update Personer set Foedselsdag=#"& birth &"#, Fornavn='"& navn &"',Efternavn='"& lastn &"',Adresse='"& adr &"',Postnummer='"& zip &"',By='"& city &"',Telefonnummer='"& tlf &"',Emailadresse='"& email &"' where ID="& session("ID"))
Avatar billede krel Nybegynder
30. oktober 2006 - 23:51 #26
det er lige præcis det jeg har - altså et felt ved navn ID der er autonr... prøver lige at indsætte det sidste du har skrevet og ser om det hjælper... mit webhotel har lige være nede igen... længe leve W3.. når nej nu har en anden jo overtaget igen igen ige.... n..

/kristian
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