Avatar billede tblaster Nybegynder
14. maj 2002 - 19:33 Der er 21 kommentarer og
1 løsning

Ændring af kode

Hvordan gør jeg så en bruger selv kan ændre hans kode til et login system? Koden ligger i en database.

Følgende er hvad skal bruges til at hente oplysningerne:

Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
   
SQL = "SELECT Grupper.Gruppenavn, Bruger.Brugernavn, Bruger.Brugerkode, Bruger.Initial, Bruger.Fornavn, Bruger.Efternavn FROM Bruger INNER JOIN Grupper ON Bruger.Gruppenavn = Grupper.GruppeId
rs.Open SQL, Conn

Det der er vigtigt er at siden først checker for følgende oplysninger:

        Session("auth_Brugernavn") = sBrugernavn
        Session("auth_Gruppenavn") = sGruppenavn
        Session("auth_Initial") = sInitial
        Session("auth_Fornavn") = sFornavn
        Session("auth_Efternavn") = sEfternavn

Når man åbner kode ændre siden skal den altså find frem til hvem er logget ind og derved skal brugern kun få adgang til at ændre sin egen kode. Sammentidig skal han først angive sin gamle kode og så skrive den nye kode 2 gange som et sikkerheds check. Derefter skal den nye kode lagres. Hvordan skal det laves?

Avatar billede jim.west Nybegynder
15. maj 2002 - 10:45 #1
Du skal vel bare have et link som updater hans kode, med en simpel sql sætning. f.eks:
strSQL = "update bruger set brugerkode =" & nyKodefelt & " where brugernavn =" & session("auth_brugernavn")

if gkodefelt1 = gkodefelt2 then
  allowKodeSkift = 1
else
  allowKodeSkift = 0
End if

Så skal du bare lave en enkelt if-sætning til, som så sender koden ind til databasen.

Håber du kan bruge det
Avatar billede tblaster Nybegynder
16. maj 2002 - 16:24 #2
Jeg skal gerne bruge hele koden ... det er derfor jeg giver 125 point!
Avatar billede tblaster Nybegynder
22. maj 2002 - 20:47 #3
Der må da være en eller anden som kan hjælpe mig!
Avatar billede tuctoh Nybegynder
26. maj 2002 - 18:22 #4
oky, så lad os gå i gang :)

Ok, kopier det her ind i en ny fil.
Det burde virke.







<html>
<head>
<title>changing password</title>
    <script language="javascript">
<!--

function validate(){
var errors=0

        // passwordcheck below:
if (document.forms.members.newpassword.value != document.forms.members.newpassword2.value){
alert("Your passwords doesn't match!");
return false
}
//end
    }
   
    //-->
    </script>
</head>
<body marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" rightmargin="0">



    <%
    if trim(request.form("password")) = "" then
    %>
<form method="post" name="members" onsubmit="return validate()">

Brugernavn: <input type="text" name="brugernavn">   
Gammelt Password: <input type="password" name="oldpassword"><br>
Nyt Password: <input type="password" name="newpassword"><br>
Nyt Password Igen: <input type="password" name="newpassword2">    <br>
<br>
      <input type="submit" value="Fuldfør">
  </form>

  <%
  else


  Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT Brugernavn, Brugerkode FROM Bruger WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"' AND Brugerkode = '"&replace(request.form("oldpassword"), "'", "''")&"'"
rs.Open SQL, Conn

if not rs.EOF then
dbConnection.execute("UPDATE Bruger SET Brugerkode = '"&replace(request.form("newpassword"), "'", "''")&"' WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"'")
response.write("Din kode er nu ændret.")
else
response.write("Du skrev den forkerte kode. Prøv igen.")
end if

 
end if%>
 
</body>
</html>
Avatar billede tblaster Nybegynder
26. maj 2002 - 18:33 #5
Siden melder ingen fejl ... men der sker ikke noget når man har angivet oplysningerne og trykket fuldfør ... og den ændre ikke koden :-(
Avatar billede tuctoh Nybegynder
26. maj 2002 - 18:34 #6
sker der slet ikke noget?
Så fortæl lige hvad filen det hele sker i hedder, og jeg retter det til :) skal bare have filnavnet
Avatar billede tblaster Nybegynder
26. maj 2002 - 18:37 #7
hvad mener du?
Jeg har smidt det hele ind i en fil der hedder "kode.asp" er det det?
Avatar billede tuctoh Nybegynder
26. maj 2002 - 18:38 #8
find linien:
<form method="post" name="members" onsubmit="return validate()">
og ændre den til:
<form action="kode.asp" method="post" name="members" onsubmit="return validate()">

prøv så igen
Avatar billede tblaster Nybegynder
26. maj 2002 - 18:44 #9
Der sker bare det samme ... ingen fejl eller meddelser og koden ændres ikke!
Avatar billede tuctoh Nybegynder
26. maj 2002 - 18:55 #10
<html>
<head>
<title>changing password</title>
    <script language="javascript">
<!--
function validate(){
        // passwordcheck below:
if (document.forms.members.newpassword.value != document.forms.members.newpassword2.value){
alert("Dine 2 kodeord er ikke ens!");
return false
}
else{return true}
//end
    }
   
    //-->
    </script>
</head>
<body marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" rightmargin="0">
Her kan du ændre dit kodeord:<br>
<br>
<br>

    <%
    if trim(request.form("password")) = "" then
    %>
<form action="kode.asp" method="post" name="members" onsubmit="return validate()">


Brugernavn: <input type="text" name="brugernavn">   
Gammelt Password: <input type="password" name="oldpassword"><br>
Nyt Password: <input type="password" name="newpassword"><br>
Nyt Password Igen: <input type="password" name="newpassword2">    <br>
<br>
      <input type="submit" value="Fuldfør">
  </form>

  <%
  else


  Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT Brugernavn, Brugerkode FROM Bruger WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"' AND Brugerkode = '"&replace(request.form("oldpassword"), "'", "''")&"'"
rs.Open SQL, Conn

if not rs.EOF then
dbConnection.execute("UPDATE Bruger SET Brugerkode = '"&replace(request.form("newpassword"), "'", "''")&"' WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"'")
response.write("Din kode er nu ændret.")
else
response.write("Du skrev den forkerte kode. Prøv igen.")
end if

 
end if%>
 
</body>
</html>
Avatar billede tuctoh Nybegynder
26. maj 2002 - 18:58 #11
^^^ prøv det ^^^
Avatar billede tblaster Nybegynder
26. maj 2002 - 19:57 #12
nope den kan stadig ikke ændre koden ... der sker bare det samme!
Avatar billede tuctoh Nybegynder
26. maj 2002 - 19:59 #13
det kan ikke passe at der ikke sker noget.
Prøv at uploade det, og giv mig adressen; lige meget hvad, vil skulle der ALTID stå noget på siden!
Avatar billede tuctoh Nybegynder
26. maj 2002 - 19:59 #14
<html>
<head>
<title>changing password</title>
    <script language="javascript">
<!--
function validate(){
        // passwordcheck below:
if (document.forms.members.newpassword.value != document.forms.members.newpassword2.value){
alert("Dine 2 kodeord er ikke ens!");
return false
}
else{return true}
//end
    }
   
    //-->
    </script>
</head>
<body marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" rightmargin="0">
Her kan du ændre dit kodeord:<br>
<br>
<br>

    <%
    if trim(request.form("password")) = "" then
    %>
<form action="kode.asp" method="post" name="members" onsubmit="return validate()">


Brugernavn: <input type="text" name="brugernavn">   
Gammelt Password: <input type="password" name="oldpassword"><br>
Nyt Password: <input type="password" name="newpassword"><br>
Nyt Password Igen: <input type="password" name="newpassword2">    <br>
<br>
      <input type="submit" value="Fuldfør">
  </form>

  <%
  else


  Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT Brugernavn, Brugerkode FROM Bruger WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"' AND Brugerkode = '"&replace(request.form("oldpassword"), "'", "''")&"'"
rs.Open SQL, Conn

if not rs.EOF then
Conn.execute("UPDATE Bruger SET Brugerkode = '"&replace(request.form("newpassword"), "'", "''")&"' WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"'")
response.write("Din kode er nu ændret.")
else
response.write("Du skrev den forkerte kode. Prøv igen.")
end if

 
end if%>
 
</body>
</html>
Avatar billede tblaster Nybegynder
26. maj 2002 - 21:20 #15
Du kan jo prøve her:

http://www.just2funny.dk/login/kode.asp

Brugernavn: 12
Brugerkode: asd
Avatar billede tuctoh Nybegynder
26. maj 2002 - 21:42 #16
så burde det virke:



<html>
<head>
<title>changing password</title>
    <script language="javascript">
<!--
function validate(){
        // passwordcheck below:
if (document.forms.members.newpassword.value != document.forms.members.newpassword2.value){
alert("Dine 2 kodeord er ikke ens!");
return false
}
else{return true}
//end
    }
   
    //-->
    </script>
</head>
<body marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" rightmargin="0">
Her kan du ændre dit kodeord:<br>
<br>
<br>

    <%
    if trim(request.form("newpassword")) = "" then
    %>
<form action="kode.asp" method="post" name="members" onsubmit="return validate()">


Brugernavn: <input type="text" name="brugernavn">   
Gammelt Password: <input type="password" name="oldpassword"><br>
Nyt Password: <input type="password" name="newpassword"><br>
Nyt Password Igen: <input type="password" name="newpassword2">    <br>
<br>
      <input type="submit" value="Fuldfør">
  </form>

  <%
  else


  Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT Brugernavn, Brugerkode FROM Bruger WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"' AND Brugerkode = '"&replace(request.form("oldpassword"), "'", "''")&"'"
rs.Open SQL, Conn

if not rs.EOF then
Conn.execute("UPDATE Bruger SET Brugerkode = '"&replace(request.form("newpassword"), "'", "''")&"' WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"'")
response.write("Din kode er nu ændret.")
else
response.write("Du skrev den forkerte kode. Prøv igen.")
end if

 
end if%>
 
</body>
</html>
Avatar billede tblaster Nybegynder
26. maj 2002 - 22:57 #17
Sådan skal det da bare laves ... det virker nu ... kan du lige hurtig så fortælle mig hvordan jeg gør det nye kodeord skal være over f.eks 4?
Avatar billede tuctoh Nybegynder
26. maj 2002 - 23:02 #18
ja, sagtens.

if not rs.EOF then
Conn.execute("UPDATE Bruger SET Brugerkode = '"&replace(request.form("newpassword"), "'", "''")&"' WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"'")
response.write("Din kode er nu ændret.")
else
response.write("Du skrev den forkerte kode. Prøv igen.")
end if



skal erstattes med:



if not rs.EOF then
if trim(len(request.form("newpassword"))) => 4 then
Conn.execute("UPDATE Bruger SET Brugerkode = '"&replace(request.form("newpassword"), "'", "''")&"' WHERE Brugernavn = '"&replace(request.form("brugernavn"), "'", "''")&"'")
response.write("Din kode er nu ændret.")
else
response.write("Dit kodeord skal være minium 4 bogstaver")
end if
else
response.write("Du skrev den forkerte kode. Prøv igen.")
end if
Avatar billede tblaster Nybegynder
26. maj 2002 - 23:21 #19
Håber ikke jeg går dig meget på .... men kan du også hjælpe med dette:

Når den skriver at man skrev den forkerte kode ... hvordan laver jeg så et link som man kan trykke på for at åbne kode.asp?
Avatar billede tuctoh Nybegynder
26. maj 2002 - 23:23 #20
response.write("Du skrev den forkerte kode. <a href="kode.asp">Prøv igen.</a>")
Avatar billede tblaster Nybegynder
26. maj 2002 - 23:29 #21
Det har jeg prøvet ... så skrive den følgende når man åbner siden:

Microsoft VBScript compilation error '800a03ee'

Expected ')'

/login/kode.asp, line 170

response.write("Du skrev den forkerte kode. <a href="kode.asp">Prøv igen.</a>")
Avatar billede tblaster Nybegynder
26. maj 2002 - 23:55 #22
Bare glem det ... jeg fandt ud af det!
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