12. juli 2003 - 21:15Der er
18 kommentarer og 1 løsning
Formular skal lave opslag i database og sende data retur
Hej eksperter!
Jeg vil gerne have en formular til at lave opslag i min medlemsdatabase, så medlemmerne kan se de oplysninger jeg har registreret på dem, og rette evt. fejl. De nye oplysninger der er valgt, skal så sendes retur til databasen.
Hvad er det for en database du arbejder med? Understøtter det websted, hvor du har din side liggende ASP eller ASPX? Jeg har et lille ASP-skript, der kan vise enhver Access-database.
Her er så scriptet. For at bruge det skal du blot kende den præcise placering af din database på serveren. Hvis du ikke gør det skal der laves en lille ændring. Jeg kan ikke huske det lille nu, men jeg kan slå det op.
<% 'Denne ASP-side viser hele databasen.
Option Explicit Dim conn, rs, SQL, field, Nr, ID, DB_Filnavn
'Databasens placering gemmes i variablen DB_Filnavn 'Det kan f.eks. være DB_Filnavn="d:/data/Fik.mdb"
set conn =server.CreateObject("ADODB.Connection") Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ ";Data Source=" & DB_Filnavn SQL="select * from tblMedlem" set rs=conn.execute(SQL) %> <html> </script> <body> <table width=50% cellspacing=1 cellpadding=5 border=1> <tr> <% for each field in rs.fields Response.write("<th>" & field.name & "</th> " & VbCrLf) next %> </tr> <% while not rs.EOF %> <tr> <% for each field in rs.fields %> <td><%= field.value %></td> <% next %> </tr> <% rs.MoveNext wend rs.close conn.close set conn=nothing %> </body> </html>
Jeg har i øvrigt også sider, der kan bruges til at editere poster i din database. Men så kommer der jo et sikkerheds problem. Du skal jo sørge for at et medlem kun kan rette i sine egne data, Dvs et medlem skal logge ind, og så kun have mulighed for at rette i sine egne data. Så der er en del ting der skal gennemtænkes.
Din seneste kommentar lyder alletiders. Det er faktisk det jeg er ved at forsøge at lave. Jeg har mere eller mindre fået opbygget et log-on, men mangler mangler også den funktionalitet, at medlemmet kun får sine egne data præsenteret. Men hele database-siden er oprettet. Jeg kikker på ovenstående nu, og vender tilbage i aften.
Det jeg specifikt er ude efter, synes at være den løsning du har lavet, jf. din kommentar af 13/07-2003 23:26:46. Hvis du har lavet en fuld funktionalitet, hvor et medlem logger på, får præsenteret sine egne oplysninger (og kun disse), kan rette i disse og gemme i databasen, vil jeg meget gerne sende flere point afsted. Det er lige det jeg er ude efter...
Hvor mange medlemmer er der i databasen? Må et medlem se data fra de andre medlemmer? Har hvert medlem et entydigt medlemsnummer som kan fungere som identifikation af medlemmet? Du skal nok lave endnu et felt i databsen, hvor medlemmernes adgangskoder kan gemmes. Du skal overveje hvordan du får givet medlemmerne ders adgangskode. Hvis der ikke er risiko for at nogel medlemmer vil drille og de gerne må se hinandens data kan du jo starte med den samme kode til alle. Den enkelte bruger kan så efterfølgende rette sin adgangskode til en personlig kode.
Databsen indeholde ca. 500 medlemmer. Et medlem må ikke se andre medlemmers data, kun deres egne data. Ja, hvert medlem har et unikt medlemsnr og jeg vil anvende en adgangskontrol med medlemsnr og fødselsdato - begge felter i databasen. Medlemmerne kender således allerede deres brugernavn og adgangskode. Hvormeget jeg selv kan lave er et godt spørgsmål. Jeg er nybegynder med ASP, men forholdsvis godt med i FrontPage. Så det jeg kan vedr. ASP, er ting som er fundet i diverse tutorials og Tips%Triks. 1. Jeg har en ASP funktionalitet vedr. adgangskontrollen, som jeg regner med jeg kan anvende. 2. Den anden del jeg er igang med er netop denne funktionalitet, som dette spørgsmål vedrører. 3. Oprindeligt var min tanke, at via login at overføre denne til databasen og lave et opslag med kun det medlemsnr, at præsentere data i en FrontPage genereret form, således at medlemmerne havde mulighed for såvel at se som at rette fejlagtige oplysninger. Hvis dette kunne lykkes, har jeg - tror jeg nok - styr på hvordan jeg ville få det til at lykkes...
Nu fandt jeg mine gamle ting frem. Det drejer sig om et lille ASP-system, der oprindelig blev lavet for at vise en anvendelse af asp. Man kan vise en database, vælge hvilket felt der skal sorteres efter i visningen, editere en post, gemme den editerede post samt indtaste nye poster.
Hvis du vil indtaste nye poster, skal du vælge side IndRecord.asp.
Systemet kan let tilrettes til det, du har brug for. Så vidt jeg kan se er det kun asp-siden, der viser hele databasen, der skal rettes til kun at vise en udvalgt post.
Men som du selv siger, skal du nok ryste op med en del flere point.
Vi skal også finde en måde, hvor du kan hente filerne. Det vil blive et FTP-sted. Jeg har forstået, at det, der foregår her på eksperten, skal være tilgængeligt for alle.
Hej igen! Det vil bestemt kunne anvendes. Hvis jeg smider 200 point i alt, vil du så ændre scriptet til mig, så jeg kan få den funktionalitet jeg har brug for?
Jeg har lavet en forespørgsel i databasen, så der kun fremgår de felter jeg vil have frem: Forespørgsel: Q_Medlem - som indeholder følgende felter: MedlemsNr, Navn, Adresse, Adresse2, FK_postnr, Distrikt, Telefon, Telefon2, Email, IndmeldtDato, Foedselsdato, Aargang, Haederstegn, Lokalafdeling
Nedenfor har jeg indsat det logon-script, som jeg vil have siden til at fungere sammen med:
' Authes user, password, and fixed a known securitybug to many login systems. strUsername = Trim(Replace(request("username"),"'","''" )) strPassword = Trim(Replace(request("password"),"'","''" ))
Sql = "Select Count(*) as Found from tblMedlem where (MedlemsNr = '" & strUsername & "') and (Foedselsdato ='" & strPassword & "')" Set LO = RS.Execute(Sql) if LO("Found") = 0 then Session("login") = "" error = "Brugernavn eller adgangskode er forkert" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("fpdb/fik.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM tblMedlem where (MedlemsNr = '" & Request("username") & "') and (Foedselsdato ='" & Request("password") & "')" Set ez = myConn.Execute(strSQL) Session("login") = "Authed" Response.Redirect "modtag.asp" EZ.Close RS.Close Conn.Close End if End if %> ------------- Mange tak for hjælpen...
Mht password=medlemsnr & fødselsdato: Hvis dine medlemsnumre er blot er fortløbende er det nok ikke så sikkert endda. Men det gør måske ikke så meget om en person, der gider prøve med en masse fødselsdatoer, får set oplyninger for et andet medlem. Jeg sidder lige nu og retter min tin til. Jeg vil igen lægge det på nettet, så du kan lege med det.
Medlemsnr er ikke fortløbende, så der er ikke noget problem i det. Jeg glæder mig til at se resultatet... Hvis det er nemmere kan du sende det til mig på rbb@adslhome.dk
I reglerne for eksperten står at løsninger, skal være tilgængelige for alle. Hvis der er nogle, der ønsker filerne, lægger jeg dem gerne på en FTP-server eller sender den hvorhen, det ønskes.
Synes godt om
Ny brugerNybegynder
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.