Avatar billede soliduz Nybegynder
13. august 2004 - 09:36 Der er 15 kommentarer

Redigering af login

Hejsa, jeg har et lille problem.

Jeg har lavet et login script, nu vil jeg så mægtigt gerne at brugerne kan logge ind på siden, og derfra både ændre brugernavn og password.

men ak, den fejler her er sætningen den fejler i:


elseif mode = "rediger" then
SQL = "select * from login where loginID = "& request.QueryString("id") &""
set rs = cn.execute(SQL)
%>

<form method="post" action="deleteadmin.asp?mode=rediger2&id=<% Response.Write request.QueryString("id")%>">
<p>Navn:<p><input type="text" name="navn" value="<%=rs("navn")%>">
<p>Password:<p><input type="password" name="password" value="<%=rs("password")%>">
<p><input type="button" onClick="java script:history.go(-1)"  value="<---">
<input type="submit" Value="--->">
</form>
<%
elseif mode = "rediger2" then

SQL = "Update login set navn= '" & Request.Form("navn") & "', password = '" & Request.Form("password") & "' Where loginID = " & Request.Querystring("id") & ""
cn.execute(SQL)

det er altså i den sidste SQL UPDATE at den fejler.. jeg har næsten samme funktion på andre sider hvor den bliver brugt til at redigere i f.eks nyheder, og der virker det fint.

fejlen jeg får er at det er en syntax fejl i sql UPDATE

Jeg bruger access database, med autonummerering af id(loginID) password og navn er indsat som notat(også prøvet med alm. tekst)

nogen ideer? hvad er det jeg ik fatter? :P
Avatar billede erikjacobsen Ekspert
13. august 2004 - 09:39 #1
SQL = "Update login set navn= '" & Request.Form("navn") & "', [password] = '" & Request.Form("password") & "' Where loginID = " & Request.Querystring("id")
Avatar billede amikk Nybegynder
13. august 2004 - 09:47 #2
Hej Soliduz
Blot som note... Sådan som jeg forstår din kode, så er den noget usikker. Forestil dig at browseren gemmer den besøgt adresse, så ville en person som ikke har det loginID blot kunne udskifte det som står anført i adresselinjen og dermed ændre en andens info.

Prøv at kig lidt på sesions, http://www.html.dk/tutorials/asp/lektion12.asp
Avatar billede soliduz Nybegynder
13. august 2004 - 09:47 #3
mother of god.. har siddet og roddet med det lort i flere timer.. !"¤(&%

men tak :D
Avatar billede soliduz Nybegynder
13. august 2004 - 09:49 #4
amikk burde den her ik hjælpe?
((-check.asp-))
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css">
<title></title>
</head>

<body>
<%
if session("login") <> "JA" then
response.Redirect "login.asp"

else

end if

%>

</body>
</html>

inkluderet i starten af de "lukkede" sider :)
Avatar billede erikjacobsen Ekspert
13. august 2004 - 09:54 #5
Den vil blot tillade dem der er logget ind at ændre andres. Du skal sikre dig at den korrekte er logget ind ... hvis du syn's det er et problem ;)
Avatar billede soliduz Nybegynder
13. august 2004 - 09:55 #6
self. rigtigt nok.. må hellere finde ud af noget andet hvis der skal være flere brugere så.. men tak for hjælpen ihvertfald. hvis du lige smider et "svar" :)
Avatar billede erikjacobsen Ekspert
13. august 2004 - 10:00 #7
Mange tak, men jeg samler slet ikke på point. ;)
Avatar billede soliduz Nybegynder
13. august 2004 - 10:05 #8
ja og livet er for kort til asp :P vær nu sød og svar. havde siddet og roddet med det lort flere timer endnu hvis ik du havde svaret jo :)
Avatar billede erikjacobsen Ekspert
13. august 2004 - 10:10 #9
Det er rigeligt for mig at vide. Jeg samler som sagt slet ikke på point. Giv dem
til amikk, som bestemt også har hjulpet, eller tag dem selv.
Avatar billede soliduz Nybegynder
13. august 2004 - 10:19 #10
bliver en lang dag :D
Avatar billede amikk Nybegynder
13. august 2004 - 22:24 #11
Hey...

Prøv at kigge på det her...

i din login-fil kan du fx benytte denne kode hvis vi fx antager du har følgende poster i din database.

- BrugerID (tal - autonummerering * primær nøgle, så det blir et unikt tal)
- BrugerLogin (tekst)
- BrugerKodeord (tekst)

<-- login_template.asp -->
<form method="post" action="login_class.asp">
  <input type="hidden" name="action" value="login">
  <input type="text" name="brugerLogin" value="Login">
  <input type="password" name="brugerKodeord" value="Kodeord">
  <input type="submit" value="Ok!">
</form>

<-- login_class.asp -->
<%
If Request.Form("action")="login" Then
  strBrugerLogin = Request.Form("brugerLogin")
  strBrugerLogin = Trim(Replace(strBrugerLogin ,"'",""))
  strBrugerLogin = Trim(Replace(strBrugerLogin ,"""",""))
  strBrugerKodeord = Request.Form("brugerKodeord")
  strBrugerKodeord = Trim(Replace(strBrugerKodeord ,"'",""))
  strBrugerKodeord = Trim(Replace(strBrugerKodeord ,"""",""))

  If Len(strBrugerLogin) <> 0 And Len(strBrugerKodeord) <> 0 Then
    set cn=Server.CreateObject("ADODB.Connection")
    cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};UID=admin;PWS=admin;DBQ=" & Server.MapPath ("dinDatabase.mdb")
    Set rs = cn.Execute("SELECT BID FROM Brugere WHERE (BLogin = '" & strBrugerLogin & "') AND (BKodeord = '" & strBrugerKodeord & "')")
 
    If Not (rs.BOF Or rs.EOF) Then
      intBrugerID = rs("BrugerID")
    Else
      Session("BrugerID")=""
      %>
      <SCRIPT LANGUAGE="Javascript">
        alert("Ukendt brugernavn eller password!");
      </SCRIPT>
      <%
    End If
 
    If Len(intBrugerID) Then
      Session("BrugerID") = intBrugerID
      Response.Redirect("sikkerside / sikkersti.asp fx")
    End If

  Else
    Session("BrugerID") = ""
    If strBrugerLogin="" AND strBrugerKodeord="" Then
        %>
        <SCRIPT LANGUAGE="Javascript">
            alert("Begge felter skal udfyldes!");
            history.go(-1);
        </SCRIPT>
        <%
    ElseIf strBrugerKodeord="" Then
        %>
        <SCRIPT LANGUAGE="Javascript">
            alert("Kodeord skal udfyldes!");
            history.go(-1);
        </SCRIPT>
        <%
    ElseIf strBrugerLogin="" Then
        %>
        <SCRIPT LANGUAGE="Javascript">
            alert("Login skal udfyldes!");
            history.go(-1);
        </SCRIPT>
        <%
    End If
  End If

End If
%>


På den side du så ønsker at ændre bruger oplysningerne på kan du i din SQL-syntax skrive

SQL = "Update login set navn= '" & Request.Form("navn") & "', password = '" & Request.Form("password") & "' Where loginID = " & Session("BrugerID") & ""

Og så holde dig fra at bruge noget i adresselinjen. På den måde gemmes de data som bruges til at identificere brugeren i en session til serveren.

Ovenstående er muligvis lidt buggy, men så ligger der en opgave i det :-) Om end ikke kan det bruges til lidt inspiration...
Avatar billede soliduz Nybegynder
16. august 2004 - 08:48 #12
Så er jeg tilbage på pinden igen. jeg vil lige prøve at forstå noget somhelst i det du har skrevet amikk :) vender tilbage
Avatar billede amikk Nybegynder
20. august 2004 - 17:45 #13
sure thing :-)
Avatar billede soliduz Nybegynder
26. august 2004 - 09:51 #14
Hej amikk, jeg fandt ud af noget andet :) men jeg brugte en del fra dit eksempel. smid lige et svar så du kan få noget for det :)
Avatar billede amikk Nybegynder
26. august 2004 - 16:09 #15
det var super :-)
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