Avatar billede c-lund Nybegynder
07. december 2002 - 21:00 Der er 22 kommentarer og
1 løsning

Login

Halløjsa.
jeg har lavet en tilmeldings formular, hvor en bruger kan indtaste sine data i en database.
men er der så nogen der ved hvordan man ved hjælp af et login script, kan komme ind og rette sine data i databasen, og derefter gemme det igen.
dvs. at hente den allerede gemte data frem i den samme formular, og gemme den, så den over skriver den gamle data linie
Avatar billede thb Nybegynder
07. december 2002 - 21:06 #1
Det er jo ikke noget problem... Du skal bruge:

SQL = "Update tabelnavn set tabel_1='hey', tabel_2='' where id=4"

til at overskrive de gamle informationer

Det er meget kortfattet, for det er lidt svært at forklare uden at skrive mange linjer kode... :)

Thomas
Avatar billede c-lund Nybegynder
07. december 2002 - 21:09 #2
Ja, jeg forstår det ikke helt, for jeg er ret ny i asp
Avatar billede eagleeye Praktikant
07. december 2002 - 21:14 #3
Du laver en form som den hvor man indtaster oplysninger og hendter oplysninger ud af Databasen for den person som er logget ind.

SQL = "SELECT * FORM bruger WHERE id = " & logget_ind_id
set rs = Conn.Execute(SQL)


og så formen, hvor man skal kan gemme id på den person som rettes:

<form method="POST" action="">
<input type="hidden" name="id" value="<%=rs("id")%>">
Adresse : <input type="text" name="adresse" value="<%=rs("adresse")%>">
Email : <input type="text" name="email" value="<%=rs("email")%>">
<input type="submit" name="send" value="send">
</form>


------
Og der hvor du vil gemme de nye data skal du lave en UPDATE SQL..:

adresse = replace(Request.Form("adresse"),"'","")
email = replace(Request.Form("email"),"'","")

SQL = "update bruger set adresse = '" & adresse & "', email = '" & email & "' where id = " & request.form("id")

conn.execute(SQL)
Avatar billede thb Nybegynder
07. december 2002 - 21:17 #4
Prøver lige på en anden måde... :)

1) laver en login, når man bliver logget ind oprettes der en session som ex kan være = id

2) laver side, hvor folk kan rette i der informationer, ved hjælp af en form, før formen laver du forbindelse til din db, og bruger denne sql

SQL = "select * from information where id=" & session("id")
set info = conn.Execute(SQL)

i formfelterne skal du så putte informationer ind. ex:

<input type="text" name="navn" size="25" value="<%=info("navn")%>">

3) laver asp kode som fylder de nye informationer ind i dben ved hjælp af UPDATE funktionen.

SQL = "Update information set navn='" & request.form("navn") & "' where id=" & session("id")
conn.Execute(SQL)

Håber at det var bedre..

Thomas
Avatar billede c-lund Nybegynder
07. december 2002 - 21:22 #5
men, hvordan laver jeg det login så den enkelte bruger kun for fat i sin egen data.
Avatar billede c-lund Nybegynder
07. december 2002 - 21:23 #6
det skal virke ligesom på f.eks. chart, når du har tilmeldt en hjemmeside, og så vil rette i den igen
Avatar billede thb Nybegynder
07. december 2002 - 21:40 #7
prøv at gemme de koder som login.asp og så ret lige SQL sætningerne så de passer med din database... Så skulle det virke...

Thomas

-----------------------------------------------------

<html>
<body>

<%
    if request("mode") = "" then
        if request("err") = 1 then
            response.write "Fejl i login, prøv igen.<br><br>"
        end if
%>

<form method="POST" action="?mode=check">
Brugernavn: <input type="text" name="bruger">
Pass : <input type="password" name="pass">
<input type="submit" value="Login">
</form>

<%
    elseif request("mode") = "check" then
        bruger = request.form("bruger")
        pass = request.form("pass")
   
        SQL = "select * from login where bruger='" & bruger & "' and pass='" & pass
        set check = conn.Execute(SQL)
   
        if check.bof or check.eof then
            session("id") = check("id")
   
            response.redirect "etellerandet.asp"
        else
       
            response.redirect "login.asp?err=1"
   
        end if
    end if
%>

</body>
Avatar billede c-lund Nybegynder
07. december 2002 - 22:02 #8
response.redirect "etellerandet.asp"
hvad skal der så stå her, hvilken side "eretellerandet.asp"
Avatar billede thb Nybegynder
07. december 2002 - 22:12 #9
Det kan være siden hvor der står "velkommen du er logget ind, og nu kan du rette dine infomationer..." eller en helt anden side...

Det er siden som brugeren skal smides hen til, hvis personen har skrevet det rigtige brugernavn & password.

Thomas
Avatar billede c-lund Nybegynder
07. december 2002 - 22:18 #10
jeg kan ikke få det til at virke, den siger.
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'conn'
/Temp/login.asp, line 23
Avatar billede c-lund Nybegynder
07. december 2002 - 22:44 #11
skal scripet ikke ind og åbne databasen.
Avatar billede cyberkox Nybegynder
08. december 2002 - 16:37 #12
Jeg vil mene, at før du begiver dig ud i ASP verdenen, skal man vide hvad man laver. Læs nogle gode bøger om ASP.
Avatar billede c-lund Nybegynder
08. december 2002 - 18:11 #13
Det har jeg også cyberkox, men man lære ikke alt lige med det samme, og man skal jo starte et sted
Avatar billede eagleeye Praktikant
08. december 2002 - 18:49 #14
Jeg hader IE, nu har jeg skrevet 3 gange men der er en eller anden skod shortcut som går back i IE som er tæt p å noget man skriver....


Du mangler et object og når det hedder conn er det nok selv connection til databasen som mangler.

Du mangler sikker denne linie eller har du en tilsvarne bare med et anden navn end conn ???:

Set Conn = Server.CreateObject("ADODB.Connection")
Avatar billede eagleeye Praktikant
08. december 2002 - 18:51 #15
For at kunne hendte/indsætte data i en databasen skal der være en connection til den.
Avatar billede c-lund Nybegynder
08. december 2002 - 18:56 #16
Kan ikke helt få det til at virke. men ser det her rigtigt ud:

<html>
<body>

<%


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

    if request("mode") = "" then
        if request("err") = 1 then
            response.write "Fejl i login, prøv igen.<br><br>"
        end if
%>

<form method="POST" action="?mode=check">
Brugernavn: <input type="text" name="bruger">
Pass : <input type="password" name="pass">
<input type="submit" value="Login">
</form>

<%
 


elseif request("mode") = "check" then
        bruger = request.form("bruger")
        pass = request.form("pass")
   
SQL = "select * from links where bruger='" & bruger & "' and pass='" & pass
        set check = conn.Execute(SQL)
   
        if check.bof or check.eof then
            session("id") = check("id")
   
            response.redirect "search form.asp"
        else
       
            response.redirect "login.asp?err=1"
   
        end if
end if
 
%>

</body>

For denne fejltype:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i strengen i forespørgselsudtrykket "bruger='lund' and pass='lund".
/Temp/login.asp, line 32
Avatar billede eagleeye Praktikant
08. december 2002 - 19:00 #17
Ja det ser rigtigt ud.

Nu får du en syntax fejl i linien som tjekke brugeren og felen er i SQL = "sele.. linien hvor der mangler et ' efter pass sådan her:


SQL = "select * from links where bruger='" & bruger & "' and pass='" & pass & "'"
Avatar billede c-lund Nybegynder
08. december 2002 - 19:16 #18
nu er det kommet så langt at den faktist reagere, men hvis man skriver et rigtig bruger og adgangs kode, sider den at man er forkert logget ind (response.write "Fejl i login, prøv igen."). og hvis man skriver noget der ikke findes, for man denne feljtype:

Fejltype:
ADODB.Field (0x80020009)
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.
/Temp/login.asp, line 36
Avatar billede eagleeye Praktikant
08. december 2002 - 19:19 #19
Prøv at lave denne if sætning:

        if check.bof or check.eof then
            session("id") = check("id")
   
            response.redirect "search form.asp"
        else
       
            response.redirect "login.asp?err=1"
   
        end if



om til dette såden tjekke "rigtigt" på eof og bof:

        if check.bof or check.eof then
            response.redirect "login.asp?err=1"
        else
            session("id") = check("id")
   
            response.redirect "search form.asp"
        end if
Avatar billede c-lund Nybegynder
08. december 2002 - 19:25 #20
tak for hjælpen, nu virker det. nu mangler jeg bare at kunne få mine brugere til at redigere i databasen. men der vil jeg oprette et nyt spørgsmål
Avatar billede thb Nybegynder
09. december 2002 - 00:16 #21
jeg synes at det er meget sjovt at du bruger min kode, men afviser mit svar... :) :)

Underligt...

Thomas
Avatar billede c-lund Nybegynder
09. december 2002 - 10:51 #22
det må du undskylde thomas, du skal nok få dine point, når jeg for nogle flere.
Avatar billede thb Nybegynder
09. december 2002 - 16:26 #23
Det er lige meget... jeg er faktisk lige glad med dem...
Jeg måtte bare lige skrive... :)

Thomas
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