Avatar billede plobber Nybegynder
23. juli 2003 - 22:08 Der er 14 kommentarer og
1 løsning

Update Sætning - 100 p

Hej.
Gider I lave en update sætning der opdaterer alle felterne...

her er koden

Update.asp
:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("dbuserkt.mdb")
Conn.Open DSN
strSQL = "Select * from dkuser Where Login = session('username')"
Set rs = Conn.Execute(strSQL)
%>
<form method='POST' action='update.asp'>
<input type='hidden' name='mode' value='changeit'>
  <table border='0' width='100%' cellspacing='0' cellpadding='0'>
    <tr>
      <td width='50%'>Nick / Login</td>
      <td width='50%'><input type='text' name='T1' size='40' value='<%= rs("Login") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Password</td>
      <td width='50%'><input type='text' name='T2' size='40' value='<%= rs("Password") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Realname</td>
      <td width='50%'><input type='text' name='T3' size='40' value='<%= rs("Navn") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Age</td>
      <td width='50%'><input type='text' name='T4' size='7' value='<%= rs("Alder") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Processor</td>
      <td width='50%'><input type='text' name='T5' size='40' value='<%= rs("Processor") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Ram</td>
      <td width='50%'><input type='text' name='T6' size='40' value='<%= rs("Ram") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Graphics</td>
      <td width='50%'><input type='text' name='T7' size='40' value='<%= rs("Gfxkort") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Monitor</td>
      <td width='50%'><input type='text' name='T8' size='40' value='<%= rs("Skærm") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Sound</td>
      <td width='50%'><input type='text' name='T9' size='40' value='<%= rs("Lydkort") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Mouse</td>
      <td width='50%'><input type='text' name='T10' size='40' value='<%= rs("Mus") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Mousepad</td>
      <td width='50%'><input type='text' name='T11' size='40' value='<%= rs("Muspad") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Keyboard</td>
      <td width='50%'><input type='text' name='T12' size='40' value='<%= rs("Tastatur") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Inet</td>
      <td width='50%'><input type='text' name='T13' size='40' value='<%= rs("Inet") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Fav. Map</td>
      <td width='50%'><input type='text' name='T14' size='40' value='<%= rs("Map") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Fav. Gun</td>
      <td width='50%'><input type='text' name='T15' size='40' value='<%= rs("Våben") %>'></td>
</tr>
<tr>
      <td width='50%'>Change</td>
      <td width='50%'><input type='submit' value='Do It'></td>
    </tr>
  </table>
</form>
<%
Conn.Close
Set Conn = Nothing
%>

helst hurtigt... jeg kan ikk finde ud af det, og skal bruge det hurtigst muligt
Avatar billede eagleeye Praktikant
23. juli 2003 - 22:37 #1
Din kode til at opdatere kunne se sådan her ud:
Denne kode forudsætter at alle kolonnerne er tekst kolonner.:



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

if Request.Form("mode") = "changeit" then&
  login = Replace(Request.Form("T1"),"'","''")
  Password = Replace(Request.Form("T2"),"'","''")
  Navn = Replace(Request.Form("T3"),"'","''")
  Alder = Replace(Request.Form("T4"),"'","''")
  Processor = Replace(Request.Form("T5"),"'","''")
  Ram = Replace(Request.Form("T6"),"'","''")
  Gfxkort= Replace(Request.Form("T7"),"'","''")
  Skaerm = Replace(Request.Form("T8"),"'","''")
  Lydkort = Replace(Request.Form("T9"),"'","''")
  Mus = Replace(Request.Form("T10"),"'","''")
  Muspad = Replace(Request.Form("T11"),"'","''")
  Tastatur = Replace(Request.Form("T12"),"'","''")
  Inet = Replace(Request.Form("T13"),"'","''")
  Map = Replace(Request.Form("T14"),"'","''")
  Vaaben = Replace(Request.Form("T15"),"'","''")

  SQL = "UPDATE dkuser SET Login = '" & login & "', "
  SQL = SQL & "[Password] = '" & Password & "', "
  SQL = SQL & "Navn = '" & Navn & "', "
  SQL = SQL & "Alder = '" & Alder & "', "
  SQL = SQL & "Processor = '" & Processor & "', "
  SQL = SQL & "Ram = '" & Ram & "', "
  SQL = SQL & "Gfxkort = '" & Gfxkort & "', "
  SQL = SQL & "[Skærm] = '" & Skaerm & "', "
  SQL = SQL & "Lydkort = '" & Lydkort & "', "
  SQL = SQL & "Mus = '" & Mus & "', "
  SQL = SQL & "Muspad = '" & Muspad & "', "
  SQL = SQL & "Tastatur = '" & Tastatur & "', "
  SQL = SQL & "Inet = '" & Inet & "', "
  SQL = SQL & "Map = '" & Map & "', "
  SQL = SQL & "[Våben] = '" & Vaaben & "' "
  SQL = SQL & "WHERE Login = '" & session("username") & "'"

  Conn.Execute(SQL)
end if
%>
Avatar billede eagleeye Praktikant
23. juli 2003 - 22:38 #2
Der er en lille fejl i din første SQL sætning

strSQL = "Select * from dkuser Where Login = session('username')"

Den skal være sådan her så den hendter det rigtige login som ligger i session og ikke loginnanvet "session('username')"

strSQL = "Select * from dkuser Where Login = '" & session("username") & "'"
Avatar billede plobber Nybegynder
23. juli 2003 - 22:56 #3
alder er ikk Tekst... hva gør jeg så`???

Min første strSQL sætning virker... kan der så være fejl i den ???
Avatar billede eagleeye Praktikant
23. juli 2003 - 22:58 #4
ok så behold den som den er...

Hvis en kolonne er tal skal der ikke ' omkring eks hvis alder er defineret som tal skal denne linje :
  SQL = SQL & "Alder = '" & Alder & "', "


resttes til dette, uden 'erne :
  SQL = SQL & "Alder = " & Alder & ", "
Avatar billede plobber Nybegynder
23. juli 2003 - 23:06 #5
Damn... du er gud Eagle. :P
Thx så mange gange...
Avatar billede squashguy Nybegynder
23. juli 2003 - 23:08 #6
eagleeye, nu gik det lige så godt med disse der replace... man skal lige huske også at kontrollere at alder rent faktisk er et tal. f.eks. hvis

alder=2;delete * from mintabel

så kan der gå ged i den... nu kan jeg så ikke lige huske om access undersøtter brugen af ;
Avatar billede plobber Nybegynder
23. juli 2003 - 23:11 #7
Squashguy.. hva mener du ???
Avatar billede squashguy Nybegynder
23. juli 2003 - 23:13 #8
jeg kan ikke lade være med at kommentere, når folk skriver kode som muliggør sql injektion. det er en "hacker" teknik, som godt og grundigt kan lægge et website ned.

http://www.google.dk/search?q=sql+injection
Avatar billede plobber Nybegynder
23. juli 2003 - 23:19 #9
og det er muligt på det jeg har sat ind på min hp ???
Avatar billede plobber Nybegynder
23. juli 2003 - 23:20 #10
hvis ja.. så skriv hva der skal rettes...
Avatar billede squashguy Nybegynder
23. juli 2003 - 23:25 #11
Du kan indsætte

If Not IsNumber(alder) Then alder=0

sætter alder=0 hvis alder ikke er et gyldigt tal.
Avatar billede eagleeye Praktikant
23. juli 2003 - 23:28 #12
Ja det er rigtigt men Access understytter ikke ; så man kan udføre flere SQL sætninger i samme kald, men man kan måske med lidt snilde få lusket det ind.

Alle de kolonne der er defineret som tal skal rettes som dette eks med alder:

  Alder = Replace(Request.Form("T4"),"'","''")

Laves om til denne:

  Alder = Request.Form("T4")
  if isNumeric(Alder) = false then Alder = 0
Avatar billede plobber Nybegynder
23. juli 2003 - 23:31 #13
k.. jeg havde glemt Email så nu ser koden sådan her ud... hva skal jeg added i strSQL sætningen... jeg har prøvet
  SQL = SQL & "Email = '" & Email & "', "
mmen det virker ikk


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

if Request.Form("mode") = "changeit" then
  login = Replace(Request.Form("T1"),"'","''")
  Password = Replace(Request.Form("T2"),"'","''")
  Navn = Replace(Request.Form("T3"),"'","''")
  Alder = Replace(Request.Form("T4"),"'","''")
  Processor = Replace(Request.Form("T5"),"'","''")
  Ram = Replace(Request.Form("T6"),"'","''")
  Gfxkort= Replace(Request.Form("T7"),"'","''")
  Skaerm = Replace(Request.Form("T8"),"'","''")
  Lydkort = Replace(Request.Form("T9"),"'","''")
  Mus = Replace(Request.Form("T10"),"'","''")
  Muspad = Replace(Request.Form("T11"),"'","''")
  Tastatur = Replace(Request.Form("T12"),"'","''")
  Inet = Replace(Request.Form("T13"),"'","''")
  Map = Replace(Request.Form("T14"),"'","''")
  Vaaben = Replace(Request.Form("T15"),"'","''")
  Email = Replace(Request.Form("T16"),"'","''")

  SQL = "UPDATE users SET Login = '" & login & "', "
  SQL = SQL & "[Password] = '" & Password & "', "
  SQL = SQL & "Navn = '" & Navn & "', "
  SQL = SQL & "Alder = " & Alder & ", "
  SQL = SQL & "Processor = '" & Processor & "', "
  SQL = SQL & "Ram = '" & Ram & "', "
  SQL = SQL & "Gfxkort = '" & Gfxkort & "', "
  SQL = SQL & "[Skærm] = '" & Skaerm & "', "
  SQL = SQL & "Lydkort = '" & Lydkort & "', "
  SQL = SQL & "Mus = '" & Mus & "', "
  SQL = SQL & "Muspad = '" & Muspad & "', "
  SQL = SQL & "Tastatur = '" & Tastatur & "', "
  SQL = SQL & "Inet = '" & Inet & "', "
  SQL = SQL & "Map = '" & Map & "', "
  SQL = SQL & "[Våben] = '" & Vaaben & "' "
  SQL = SQL & "WHERE Login = '" & session("username") & "'"

  Conn.Execute(SQL)

Session("username") = login
end if
%>
<!-- #include file='topdesign.asp' -->
<!-- #include file='menu.asp' -->

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("db/users.mdb")
Conn.Open DSN
strSQL = "Select * from users Where Login = '" & session("username") & "'"
Set rs = Conn.Execute(strSQL)
%>
<form method='POST' action='update.asp'>
<input type='hidden' name='mode' value='changeit'>
  <table border='0' width='100%' cellspacing='0' cellpadding='0'>
    <tr>
      <td width='50%'>Nick / Login</td>
      <td width='50%'><input id=update type='text' name='T1' size='40' value='<%= rs("Login") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Password</td>
      <td width='50%'><input id=update type='text' name='T2' size='40' value='<%= rs("Password") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Realname</td>
      <td width='50%'><input id=update type='text' name='T3' size='40' value='<%= rs("Navn") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Age</td>
      <td width='50%'><input id=update type='text' name='T4' size='7' value='<%= rs("Alder") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Processor</td>
      <td width='50%'><input id=update type='text' name='T5' size='40' value='<%= rs("Processor") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Ram</td>
      <td width='50%'><input id=update type='text' name='T6' size='40' value='<%= rs("Ram") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Graphics</td>
      <td width='50%'><input id=update type='text' name='T7' size='40' value='<%= rs("Gfxkort") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Monitor</td>
      <td width='50%'><input id=update type='text' name='T8' size='40' value='<%= rs("Skærm") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Sound</td>
      <td width='50%'><input id=update type='text' name='T9' size='40' value='<%= rs("Lydkort") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Mouse</td>
      <td width='50%'><input id=update type='text' name='T10' size='40' value='<%= rs("Mus") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Mousepad</td>
      <td width='50%'><input id=update type='text' name='T11' size='40' value='<%= rs("Muspad") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Keyboard</td>
      <td width='50%'><input id=update type='text' name='T12' size='40' value='<%= rs("Tastatur") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Inet</td>
      <td width='50%'><input id=update type='text' name='T13' size='40' value='<%= rs("Inet") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Fav. Map</td>
      <td width='50%'><input id=update type='text' name='T14' size='40' value='<%= rs("Map") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Fav. Gun</td>
      <td width='50%'><input id=update type='text' name='T15' size='40' value='<%= rs("Våben") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Email</td>
      <td width='50%'><input id=update type='text' name='T16' size='40' value='<%= rs("Email") %>'></td>
    </tr>
    <tr>
      <td width='50%'>Change</td>
      <td width='50%'><input id=update type='submit' value='Do It'></td>
    </tr>
  </table>
</form>
<%
Conn.Close
Set Conn = Nothing
%>
<!-- #include file='bunddesign.asp' -->
Avatar billede eagleeye Praktikant
23. juli 2003 - 23:41 #14
Den skal bare ind et sted, bare husk der skal komma mellem hver kolonne dog ikke før WHERE:


  SQL = "UPDATE users SET Login = '" & login & "', "
  SQL = SQL & "[Password] = '" & Password & "', "
  SQL = SQL & "Navn = '" & Navn & "', "
  SQL = SQL & "Alder = " & Alder & ", "
  SQL = SQL & "Processor = '" & Processor & "', "
  SQL = SQL & "Ram = '" & Ram & "', "
  SQL = SQL & "Gfxkort = '" & Gfxkort & "', "
  SQL = SQL & "[Skærm] = '" & Skaerm & "', "
  SQL = SQL & "Lydkort = '" & Lydkort & "', "
  SQL = SQL & "Mus = '" & Mus & "', "
  SQL = SQL & "Muspad = '" & Muspad & "', "
  SQL = SQL & "Tastatur = '" & Tastatur & "', "
  SQL = SQL & "Inet = '" & Inet & "', "
  SQL = SQL & "Map = '" & Map & "', "
  SQL = SQL & "Email = '" & Email & "', "
  SQL = SQL & "[Våben] = '" & Vaaben & "' "
  SQL = SQL & "WHERE Login = '" & session("username") & "'"
Avatar billede plobber Nybegynder
23. juli 2003 - 23:49 #15
lol-- det var det komma jeg glemte...
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