Avatar billede myth Nybegynder
24. maj 2004 - 21:59 Der er 82 kommentarer og
1 løsning

validering samt check i database

jeg ønsker at validere feltet 'oldpassword' med det der er i databasen i forvejen - hvis disse ikke er ens skal der komme en fejlmelding.

samtidig ønsker jeg at validere de to felter 'newpassword' og 'newpassword2' - disse skal være ens og ikke tomme ellers skal der komme en fejlmelding.

jeg har siddet og rodet med dette i et stykke tid nu uden resultat. har ingen ide om hvordan jeg tjekker i databasen da alt det her asp bare er held fra min side :) og validerings scriptet lader ikke til at køre.


<%@language="vbscript" %>

<!--#include file="../connect.asp"-->

<%
Set administrator = Server.CreateObject("ADODB.Recordset")
administrator.Open "SELECT * FROM administrator WHERE administrator.adminid = " & Request.QueryString("show_id"), database

%>

<html>

<head>

    <title></title>
       
    <!--henter eksterns CSS stylesheet-->
       
    <link rel="stylesheet" type="text/css" href="../main.css">

    <!--javascript der validerer felterne 'newpassword' og 'newpassword2'-->

        <script type="text/javascript">
            function validForm(passForm)
            {
            if (passForm.newpassword.value == "")
            {
            alert("du skal skrive et kodeord");
            passForm.newpassword.focus();
            return false;
            }
            if (passForm.newpassword.value != passForm.newpassword2.value)
            {
            alert("de indtastede kodeord er ikke ens");
            passForm.newpassword.focus();
            passForm.newpassword.select();
            return false;
            }
            return true;
            }
        </script>

</head>

<body leftmargin="0" rightmargin="0" topmargin="0" marginwidth="0" marginheight="0">
   
    <!--overordnet tabel der viser indholdet af databasen placeret i CSS layer-->

<div id="user" style="position:absolute; left:0px; top:0; width:600px; height:430px; z-index:5; overflow: hidden; border=;visibility: visible;"0"; scrolling="no";>

<table width="600" height="430" border="0" cellspacing="0" cellpadding="0" valign="top" align="left">
   
    <tr valign="top">
       
        <td align="center">
       
        <h1>Skift adgangskode</h1>
       
        <form name="user" action="opuser.asp" method="get" onsubmit="return validForm(this)">
   
        <input type="hidden" name="admin" value="<% =administrator("adminid") %>">
   
        <table width="600" width="430" border="0" valign="top" align="center">
           
            <tr>
   
                <td width="50%" align="right">
                <% =administrator("adminid") %>
                brugernavn
   
                </td>
   
                <td align="left">
   
                <input type="text" size="10" name="username" value="<% =administrator("navn") %>">
   
                </td>
   
            </tr>
 
              <tr>
   
                <td width="50%" align="right">
           
                gammelt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="oldpassword">
                </td>
                   
            </tr>

            <tr>
   
                <td width="50%" align="right">
           
                nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="password" size="10" name="newpassword">
                </td>
                   
            </tr>
           
            <tr>
   
                <td width="50%" align="right">
           
                gentag nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="password" size="10" name="newpassword2">
                </td>
                   
            </tr>

        </table>

        </form>       
       
        <a href="#" onclick="document.user.submit();return false;"><b>gem ændringer</b></a>  <---- er dette måske problemet - jeg vil helst ikke bruge en knap da det bryder mit design
       
        </td>

      </tr>

</table>   

</div>

</body>

</html>
Avatar billede thesurfer Nybegynder
24. maj 2004 - 22:06 #1
hmm.. den eneste form for validering jeg kan se, er i JavaScript..

Med mindre at du har noget ASP kode vi skal kigge på, ville det være bedst at flytte dette spm til http://www.eksperten.dk/spm/Programmering/Script/JavaScript/

Du flytter et spm ved at:
1) lægge et svar
2) markere dit navn  <-- MEGET VIGTIGT!!
3) klikke på Accepter-knappen

Husk at check om dit svar er accepteret, inden du går videre.

- Hvis alt er i orden, opretter du samme spm, bare i den rette kategori.
- Læg et link i dette spm, der peger på det nye spm, så folk kan finde det.
Avatar billede myth Nybegynder
24. maj 2004 - 22:08 #2
ok det gør jeg
Avatar billede thesurfer Nybegynder
24. maj 2004 - 22:11 #3
hmm.. jeg læste dit spm igen.. der er 2 dele.. den ene del er ASP, og den anden JavaScript..

Denne del er ASP:
"jeg ønsker at validere feltet 'oldpassword' med det der er i databasen i forvejen - hvis disse ikke er ens skal der komme en fejlmelding."

Med lidt mere info, kan ASP delen godt løses her..

Jeg kigger lige på ASP delen lige om lidt.. ok?
Avatar billede myth Nybegynder
24. maj 2004 - 22:18 #4
det ville være sweetness :)
Avatar billede thesurfer Nybegynder
24. maj 2004 - 22:45 #5
hmm.. hvad er det lige at der skal ske..?
er det administrator, der skal oprette en ny bruger, eller er det en bruger der skal skifte password?
Avatar billede myth Nybegynder
24. maj 2004 - 23:01 #6
det er en bruger der skal ændre password - eneste brugere der fines er 2 administratorer
Avatar billede thesurfer Nybegynder
25. maj 2004 - 00:16 #7
Hej.. undskyld jeg først skriver nu.. men jeg er løber ind i nogle hardware problemer..

Jeg vil kigge på dit spm lidt senere, og ham muligvis et svar, engang i morgen eftermiddag..

Undskyld ventetiden..
Avatar billede thesurfer Nybegynder
25. maj 2004 - 21:50 #8
Online demo: http://frip.dk/thesurfer/e/q/502058/index.asp

Indholdet af "db_conn.asp":

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

function dbclose()
conn.close
set conn = nothing
set rs = nothing
end function
%>



Til tabellen er brugt:
tabel: navn=tblProfil
felt: navn=brugernavn, type=tekst
felt: navn=kode, type=tekst


koden:

<%
option explicit
%>
<!-- #include file="db_conn.asp" -->
<%
dim strSQL, rs, conn, dsn
dim tmpInfo

function HentBrugere()

dbopen
strSQL = "select * from tblProfil"
set rs = conn.execute(strSQL)

if not (rs.bof or rs.eof) then
tmpInfo = ""
do while not rs.eof
  tmpInfo = tmpInfo & "brugernavn: <b>" & rs("brugernavn") & "</b>, kode: <b>" & rs("kode") & "</b><br>"
  rs.movenext
loop
end if
dbclose
tmpInfo = tmpInfo
end function

HentBrugere ' hent brugere

dim besked

if request.servervariables("request_method") = "POST" then

    dim oldpw, newpw, fejl
    fejl = "nej"

    oldpw = replace(request.form("oldpassword"), "'", "")
    newpw = replace(request.form("newpassword"), "'", "")

    if len(oldpw) > 0 and len(newpw) > 0 then
     



dbopen

      strSQL = "Select * from tblProfil where kode = '" & oldpw & "'"
      set rs = conn.execute(strSQL)

      if not (rs.bof or rs.eof) and fejl = "nej" then
        dim strSQL_Update
        strSQL_Update = "Update tblProfil Set kode = '" & newpw & "' Where kode = '" & oldpw & "'"
        conn.execute(strSQL_Update)
      else
        fejl = "ja"
      end if ' rs-check

dbclose
HentBrugere ' hent brugere

      besked = "<font color='#009000'>Profilen er nu opdateret</font>"
    else
      fejl = "ja"
    end if ' len pw

if fejl = "ja" then
  besked = "<font color='#ff0000'>Der er fejl i password. Ret venligst data'ene og prøv igen.</font>"

  dim oldpass, tmpuser, newpass, newpass2
  oldpass = oldpw
  tmpuser = request.form("username")
  newpass = request.form("newpassword")
  newpass2 = request.form("newpassword2")
end if

end if ' POST
%>


<html>

<head>

    <title></title>
       
    <!--henter eksterns CSS stylesheet-->
       
    <link rel="stylesheet" type="text/css" href="../main.css">

    <!--javascript der validerer felterne 'newpassword' og 'newpassword2'-->

        <script type="text/javascript">
            function validForm(passForm)
            {
            if (passForm.newpassword.value == "")
            {
            alert("du skal skrive et kodeord");
            passForm.newpassword.focus();
            return false;
            }
            if (passForm.newpassword.value != passForm.newpassword2.value)
            {
            alert("de indtastede kodeord er ikke ens");
            passForm.newpassword.focus();
            passForm.newpassword.select();
            return false;
            }
            return true;
            }
        </script>

</head>

<body leftmargin="0" rightmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <!--overordnet tabel der viser indholdet af databasen placeret i CSS layer-->

<div id="user" style="position:absolute; left:0px; top:0px; width:600px; height:430px; z-index:5; overflow: hidden; border=;visibility: visible;"0"; scrolling="no";>

<table width="600" height="430" border="0" cellspacing="0" cellpadding="0" valign="top" align="left">
   
    <tr valign="top">
       
        <td align="center">
       
        <h1>Skift adgangskode</h1>
       
        <form name="user" action="index.asp" method="post" onsubmit="return validForm(this)">
   
        <input type="hidden" name="admin" value="<% '=administrator("adminid") ' jeg forstår ikke helt denne linie %>">
   
        <table width="600" width="430" border="0" valign="top" align="center">
           
            <tr>
   
                <td width="50%" align="right">
                <% '=administrator("adminid") ' jeg forstår ikke helt denne linie%>
                brugernavn
   
                </td>
   
                <td align="left">
   
                <input type="text" size="10" name="username" value="<%=tmpuser%>">
   
                </td>
   
            </tr>
 
              <tr>
   
                <td width="50%" align="right">
           
                gammelt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="oldpassword" value="<%=oldpass%>">
                </td>
                   
            </tr>

            <tr>
   
                <td width="50%" align="right">
           
                nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="newpassword" value="<%=newpass%>">
                </td>
                   
            </tr>
           
            <tr>
   
                <td width="50%" align="right">
           
                gentag nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="newpassword2" value="<%=newpass2%>">
                </td>
                   
            </tr>

        </table>

        </form>       
       
        <a href="#" onclick="document.user.submit();return false;"><b>gem ændringer</b></a>  <---- er dette måske problemet - jeg vil helst ikke bruge en knap da det bryder mit design
       
        </td>

      </tr>

</table>   

</div>

<%
response.write "<span style='position: absolute; top: 300px;'><hr>Brugere i databsen (inkl. kodeord):<br>" & tmpInfo
if besked <> "" then response.write "<br><br>" & besked
response.write "</span>"
%>

</body>

</html>
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:16 #9
Nogle ting som du måske undrer dig over
* layoutet på online demo
- jeg har ikke din css fil

* <input type="hidden" name="admin" value="<% '=administrator("adminid") ' jeg forstår ikke helt denne linie %>">
- ja, jeg forstod ikke helt meningen med linien..

* <form name="user" action="index.asp" method="post"
- Jeg har ændret action til "index.asp", da jeg ikke gider at skrive filnavnet, når jeg tester på min maskine.. og normalt bruger man POST som submit-metoden, når man bruger brugernavn/kodeord
Avatar billede myth Nybegynder
25. maj 2004 - 22:19 #10
den linie du ikke forstår var bare en test jeg har glemt at fjerne for at se om den tod adminid med.

nu får jeg denne fejlmeddelelse. har lavet en db_conn.asp fil som du gav koden til. og egentlig bare pasted det du har lavet der.

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0xccc Thread 0xe40 DBC 0x2474f74 Jet'.

/code/users/db_conn.asp, line 6
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:20 #11
Det er fordi min database fil hedder "db1.mdb".. ret navnet så det passer med navnet (husk stien!) på din database.
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:25 #12
hmm.. manglede at slette "tmpInfo = tmpInfo" fra funktionen HentBrugere:

dbclose
tmpInfo = tmpInfo
end function

Den kan du godt fjerne..
Avatar billede myth Nybegynder
25. maj 2004 - 22:25 #13
Til tabellen er brugt:
tabel: navn=tblProfil
felt: navn=brugernavn, type=tekst
felt: navn=kode, type=tekst

det her er dine navne i db'en korrekt?

/code/users/users.asp, line 13

får nemlig ham her :) men det er jo lige til at ændre - tror jeg - hvis det bare er dine tabelnavne

Microsoft OLE DB Provider for ODBC Drivers error '80040e37'

[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot find the input table or query 'tblProfil'. Make sure it exists and that its name is spelled correctly.
Avatar billede myth Nybegynder
25. maj 2004 - 22:29 #14
tmpInfo = ""
do while not rs.eof
  tmpInfo = tmpInfo & "brugernavn: <b>" & rs("brugernavn") & "</b>, kode: <b>" & rs("kode") & "</b><br>"  <-----------hvad med denne linie? der bruger du også tempinfo
  rs.movenext
loop
end if
dbclose
tmpInfo = tmpInfo
end function
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:29 #15
Korrekt.

Har du oprettet tabellen "tblProfil"? Hvis ikke, så skal du gøre det først..
Inde i tblProfil, skal du oprette 2 felter ("brugernavn" og "kode"), begge af typen tekst.
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:31 #16
tmpInfo indeholder brugernavn og kode ord fra databasen.. værdierne gemmes, så de kan udskrives i bunden af siden, med:

response.write "<span style='position: absolute; top: 300px;'><hr>Brugere i databsen (inkl. kodeord):<br>" & tmpInfo
if besked <> "" then response.write "<br><br>" & besked
response.write "</span>"


Det med "position: absolute; top: 300px;" kom jeg først på, efter at jeg havde lavet koden..
Avatar billede myth Nybegynder
25. maj 2004 - 22:31 #17
jeg har allerede en tabel der hedder administrator med felterne adminid (autonumber) navn (text) og password (text)
Avatar billede myth Nybegynder
25. maj 2004 - 22:32 #18
//
tmpInfo indeholder brugernavn og kode ord fra databasen.. værdierne gemmes, så de kan udskrives i bunden af siden, med:

response.write "<span style='position: absolute; top: 300px;'><hr>Brugere i databsen (inkl. kodeord):<br>" & tmpInfo
if besked <> "" then response.write "<br><br>" & besked
response.write "</span>"


Det med "position: absolute; top: 300px;" kom jeg først på, efter at jeg havde lavet koden..
//

ok så den kan slettes?
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:33 #19
tmpInfo-koden kan slettes, sammen med funktionen HentBrugere, og alle henvisninger til funktionen.


Erstat alle steder hvor der står "brugernavn" med "navn", og "kode" med "[password]"..
Grunden til at man bruger [], er fordi "password" er et reserveret ord..
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:34 #20
Avatar billede myth Nybegynder
25. maj 2004 - 22:35 #21
hmmm men password navnet virker da ellers fint som ("password")
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:35 #22
hmm.. min fejl.. "password" er IKKE et reserveret ord.. der skal så ikke [] udenom :-)
Avatar billede myth Nybegynder
25. maj 2004 - 22:41 #23
Variable is undefined: 'administrator'

/code/users/users.asp, line 108




<input type="hidden" name="admin" value="<% =administrator("adminid") %>">

øhm hvad fanden er der nu galt her?
Avatar billede myth Nybegynder
25. maj 2004 - 22:42 #24
jeg skal bruge denne linie for at min opdatering virker
Avatar billede myth Nybegynder
25. maj 2004 - 22:42 #25
tror nu lige du får hele kode igen.

<%
option explicit
%>
<!-- #include file="../db_conn.asp" -->
<%
dim strSQL, rs, conn, dsn


dim besked

if request.servervariables("request_method") = "POST" then

    dim oldpw, newpw, fejl
    fejl = "nej"

    oldpw = replace(request.form("oldpassword"), "'", "")
    newpw = replace(request.form("newpassword"), "'", "")

    if len(oldpw) > 0 and len(newpw) > 0 then
     



dbopen

      strSQL = "Select * from administrator where password = '" & oldpw & "'"
      set rs = conn.execute(strSQL)

      if not (rs.bof or rs.eof) and fejl = "nej" then
        dim strSQL_Update
        strSQL_Update = "Update tblProfil Set password = '" & newpw & "' Where password = '" & oldpw & "'"
        conn.execute(strSQL_Update)
      else
        fejl = "ja"
      end if ' rs-check

dbclose
HentBrugere ' hent brugere

      besked = "<font color='#000000'>Profilen er nu opdateret</font>"
    else
      fejl = "ja"
    end if ' len pw

if fejl = "ja" then
  besked = "<font color='#000000'>Der er fejl i kodeordet. Ret venligst og prøv igen.</font>"

  dim oldpass, tmpuser, newpass, newpass2
  oldpass = oldpw
  tmpuser = request.form("username")
  newpass = request.form("newpassword")
  newpass2 = request.form("newpassword2")
end if

end if ' POST
%>


<html>

<head>

    <title></title>
       
    <!--henter eksterns CSS stylesheet-->
       
    <link rel="stylesheet" type="text/css" href="../main.css">

    <!--javascript der validerer felterne 'newpassword' og 'newpassword2'-->

        <script type="text/javascript">
            function validForm(passForm)
            {
            if (passForm.newpassword.value == "")
            {
            alert("du skal skrive et kodeord");
            passForm.newpassword.focus();
            return false;
            }
            if (passForm.newpassword.value != passForm.newpassword2.value)
            {
            alert("de indtastede kodeord er ikke ens");
            passForm.newpassword.focus();
            passForm.newpassword.select();
            return false;
            }
            return true;
            }
        </script>

</head>

<body leftmargin="0" rightmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <!--overordnet tabel der viser indholdet af databasen placeret i CSS layer-->

<div id="user" style="position:absolute; left:0px; top:0px; width:600px; height:430px; z-index:5; overflow: hidden; border=;visibility: visible;"0"; scrolling="no";>

<table width="600" height="430" border="0" cellspacing="0" cellpadding="0" valign="top" align="left">
   
    <tr valign="top">
       
        <td align="center">
       
        <h1>Skift adgangskode</h1>
       
        <form name="user" action="opuser.asp" method="post" onsubmit="return validForm(this)">
   
        <input type="hidden" name="admin" value="<% =administrator("adminid") %>">
   
        <table width="600" width="430" border="0" valign="top" align="center">
           
            <tr>
   
                <td width="50%" align="right">
               
                brugernavn
   
                </td>
   
                <td align="left">
   
                <input type="text" size="10" name="username" value="<%=tmpuser%>">
   
                </td>
   
            </tr>
 
              <tr>
   
                <td width="50%" align="right">
           
                gammelt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="oldpassword" value="<%=oldpass%>">
                </td>
                   
            </tr>

            <tr>
   
                <td width="50%" align="right">
           
                nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="newpassword" value="<%=newpass%>">
                </td>
                   
            </tr>
           
            <tr>
   
                <td width="50%" align="right">
           
                gentag nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="newpassword2" value="<%=newpass2%>">
                </td>
                   
            </tr>

        </table>

        </form>       
       
        <a href="#" onclick="if(validForm(document.user)){document.user.submit()};return false;"><b>gem ændringer</b></a>
       
        </td>

      </tr>

</table>   

</div>

</body>

</html>
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:44 #26
Som du sikkert kan se, har jeg fjernet din del af koden, og laver hele koden fra bunden..
"administrator", som et recordset, eksisterer ikke mere..

Opdater-rutinen er her:

        strSQL_Update = "Update tblProfil Set password = '" & newpw & "' Where password = '" & oldpw & "'"
        conn.execute(strSQL_Update)
Avatar billede myth Nybegynder
25. maj 2004 - 22:44 #27
ok og opdagede så at jeg havde en tblProfil og noget hent bruger jeg havde over set... men får stadig den her:

Variable is undefined: 'administrator'

/code/users/users.asp, line 108




<input type="hidden" name="admin" value="<% =administrator("adminid") %>">
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:45 #28
"administrator", som et recordset, eksisterer ikke mere..
Avatar billede myth Nybegynder
25. maj 2004 - 22:46 #29
strSQL_Update = "Update tblProfil Set password = '" & newpw & "' Where password = '" & oldpw & "'"
        conn.execute(strSQL_Update)
//

er blevet ændret til:

//
strSQL_Update = "Update administrator Set password = '" & newpw & "' Where password = '" & oldpw & "'"
        conn.execute(strSQL_Update)

men stadig samme fejl
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:48 #30
Hvad hedder tabelle med "navn" og "password"?
Avatar billede myth Nybegynder
25. maj 2004 - 22:48 #31
administrator
Avatar billede thesurfer Nybegynder
25. maj 2004 - 22:53 #32
er du sikker på at du opretter forbindelse til den rigtige database..?
Avatar billede myth Nybegynder
25. maj 2004 - 22:54 #33
jep - hvis jeg udkommenterer <% =administrator("adminid") %> fra

  <input type="hidden" name="admin" value="<% =administrator("adminid") %>">

fungerer det fint - men så kan jeg ikke opdatere da min opdate fil kræver denne post ("adminid") som er primary key i tabellen
Avatar billede myth Nybegynder
25. maj 2004 - 22:57 #34
db_conn.asp

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

function dbclose()
conn.close
set conn = nothing
set rs = nothing
end function
%>

//////////////
users.asp

<%
option explicit
%>
<!-- #include file="../db_conn.asp" -->
<%
dim strSQL, rs, conn, dsn


dim besked

if request.servervariables("request_method") = "POST" then

    dim oldpw, newpw, fejl
    fejl = "nej"

    oldpw = replace(request.form("oldpassword"), "'", "")
    newpw = replace(request.form("newpassword"), "'", "")

    if len(oldpw) > 0 and len(newpw) > 0 then
     



dbopen

      strSQL = "Select * from administrator where password = '" & oldpw & "'"
      set rs = conn.execute(strSQL)

      if not (rs.bof or rs.eof) and fejl = "nej" then
        dim strSQL_Update
        strSQL_Update = "Update administrator Set password = '" & newpw & "' Where password = '" & oldpw & "'"
        conn.execute(strSQL_Update)
      else
        fejl = "ja"
      end if ' rs-check

dbclose

      besked = "<font color='#000000'>Profilen er nu opdateret</font>"
    else
      fejl = "ja"
    end if ' len pw

if fejl = "ja" then
  besked = "<font color='#000000'>Der er fejl i kodeordet. Ret venligst og prøv igen.</font>"

  dim oldpass, tmpuser, newpass, newpass2
  oldpass = oldpw
  tmpuser = request.form("username")
  newpass = request.form("newpassword")
  newpass2 = request.form("newpassword2")
end if

end if ' POST
%>


<html>

<head>

    <title></title>
       
    <!--henter eksterns CSS stylesheet-->
       
    <link rel="stylesheet" type="text/css" href="../main.css">

    <!--javascript der validerer felterne 'newpassword' og 'newpassword2'-->

        <script type="text/javascript">
            function validForm(passForm)
            {
            if (passForm.newpassword.value == "")
            {
            alert("du skal skrive et kodeord");
            passForm.newpassword.focus();
            return false;
            }
            if (passForm.newpassword.value != passForm.newpassword2.value)
            {
            alert("de indtastede kodeord er ikke ens");
            passForm.newpassword.focus();
            passForm.newpassword.select();
            return false;
            }
            return true;
            }
        </script>

</head>

<body leftmargin="0" rightmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <!--overordnet tabel der viser indholdet af databasen placeret i CSS layer-->

<div id="user" style="position:absolute; left:0px; top:0px; width:600px; height:430px; z-index:5; overflow: hidden; border=;visibility: visible;"0"; scrolling="no";>

<table width="600" height="430" border="0" cellspacing="0" cellpadding="0" valign="top" align="left">
   
    <tr valign="top">
       
        <td align="center">
       
        <h1>Skift adgangskode</h1>
       
        <form name="user" action="opuser.asp" method="post" onsubmit="return validForm(this)">
   
        <input type="text" name="admin" value="<% =administrator("adminid") %>">
   
        <table width="600" width="430" border="0" valign="top" align="center">
           
            <tr>
   
                <td width="50%" align="right">
               
                brugernavn
   
                </td>
   
                <td align="left">
   
                <input type="text" size="10" name="username" value="<%=tmpuser%>">
   
                </td>
   
            </tr>
 
              <tr>
   
                <td width="50%" align="right">
           
                gammelt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="oldpassword" value="<%=oldpass%>">
                </td>
                   
            </tr>

            <tr>
   
                <td width="50%" align="right">
           
                nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="newpassword" value="<%=newpass%>">
                </td>
                   
            </tr>
           
            <tr>
   
                <td width="50%" align="right">
           
                gentag nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input type="text" size="10" name="newpassword2" value="<%=newpass2%>">
                </td>
                   
            </tr>

        </table>

        </form>       
       
        <a href="#" onclick="if(validForm(document.user)){document.user.submit()};return false;"><b>gem ændringer</b></a>
       
        </td>

      </tr>

</table>   

</div>

</body>

</html>
Avatar billede myth Nybegynder
25. maj 2004 - 22:59 #35
tænkte det måske var fordi jeg ikke definerer language i db_connect.asp... men skriver jeg <% language="vbscript" %> får jeg:

Microsoft VBScript runtime error '800a01f4'

Variable is undefined: 'language'

/code/db_conn.asp, line 1
Avatar billede thesurfer Nybegynder
25. maj 2004 - 23:02 #36
Der skulle stå: <%@ language="VBScript"%>
Men nu er VBSript standard sproget i ASP, så den linie behøver man ikke..

Skriv lige indholdet af din "db_conn.asp".. men husk at erstatte evt brugernavne, stier, password med f.eks. "***"

Jeg bliver nød til at smutte.. jeg skal se "Band of Brothers" på DR2.. fed serie! :-)

Jeg er sikkert tilbage efter serien..
Avatar billede myth Nybegynder
25. maj 2004 - 23:08 #37
<%@ language="VBScript"%>

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

function dbclose()
conn.close
set conn = nothing
set rs = nothing
end function
%>


og denne fejlmeddelelse

Active Server Pages error 'ASP 0140'

Page Command Out Of Order

/code/db_conn.asp, line 1

The @ command must be the first command within the Active Server Page.
Avatar billede thesurfer Nybegynder
25. maj 2004 - 23:11 #38
Fjern linien.
@-linier skal være de først, på hoved-siden.. dvs, den indlæser de andre sider..
Da "db_conn.asp" er en underside, som er inkluderet via <!-- #include file="../db_conn.asp" -->, må der IKKE være @-linier, eller "Option Explicit"..


"Band of Brothers" på DR2 er lige startet.. ses! :-)
Avatar billede myth Nybegynder
25. maj 2004 - 23:15 #39
ok så var det ikke den linie altså der skabte problemet...

jeg modtager stadig denne her igen:

Microsoft VBScript runtime error '800a01f4'

Variable is undefined: 'administrator'

/code/users/users.asp, line 107

fra denne linie

<input type="hidden" name="admin" value="<% =administrator("adminid") %>">
Avatar billede myth Nybegynder
25. maj 2004 - 23:16 #40
nyd din band of brothers... :) har aldrig selv fået set den - men har kun hørt godt
Avatar billede myth Nybegynder
25. maj 2004 - 23:27 #41
iøvrigt...

dette er den sql sætning jeg havde før:

<%
Set administrator = Server.CreateObject("ADODB.Recordset")
administrator.Open "SELECT * FROM administrator WHERE administrator.adminid = " & Request.QueryString("show_id"), database

%>

jeg har brug for den Request.QueryString("show_id") da jeg tager brugerens id med fra login. sagen er den at denne fil vi roder med nu åbnes fra et fælles kontrolpanel med 2 administratorer. det skal ikke være muligt for dem at ændre hinandens password jo.

kan det måske skyldes at denne sql skal bruges på en eller anden måde?
Avatar billede thesurfer Nybegynder
25. maj 2004 - 23:53 #42
Når man bruge login osv, bruger man gerne sessions.. f.eks. her på Eksperten.dk.. når browseren lukkes ned, slettes sessionen, og man skal logge ind næste gang..
Til en auto-login, som her på eksperten, bruges der cookies..

Din situation:
Jeg går ud fra, at man først skal logge ind? Der kan du sætte en session, til at holde øje med hvem der er logget ind.. og så kan du bruge noget i stil med:

"select * fom administrator where navn = "' & session("bruger_som_er_logget_ind") & "'"

osv..

Sessions: http://html.dk/tutorials/asp/lektion12.asp
Cookies: http://html.dk/tutorials/asp/lektion13.asp
Avatar billede myth Nybegynder
25. maj 2004 - 23:58 #43
ja det har jeg allerede lavet noget i stil med... men det virker heller ikke. :D jeg troede jeg havde oprettet et spørgsmål med dette herinde men lader ikke til det. nå men tilbage til det her:

hvorfor vil den ikke forbinde til min tabel?
Avatar billede myth Nybegynder
25. maj 2004 - 23:59 #44
jeg vil tro at det er den sql sætning..
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:02 #45
hmm.. dette kontrolpanel.. hvad kan det?
hvis det bare er et "navn, info, skift password"-ting, burde det ikke være så svært at lave..
Avatar billede myth Nybegynder
26. maj 2004 - 00:03 #46
www.zaphirs.dk/myth log innd med malene/0000
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:05 #47
gjort.. hvad så?
Avatar billede myth Nybegynder
26. maj 2004 - 00:05 #48
hvis vi nu går tilbage til min oprindelige kode... er der så ikke en simplere måde at få den til at tjekke om feltet er ens med det der bliver indtastet? den javascript validator jeg har fået i javascript kategorien fungere fint selvom det er klart fede med den tekst løsning du bruger i stedet for en alertbox... sagen er den at dette er til min hovedopgave der skal afleveres torsdag kl 12 :)
Avatar billede myth Nybegynder
26. maj 2004 - 00:06 #49
ville bare vise kontrolpanelet så du kunne se hvad det blev brugt til
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:08 #50
ok.. jeg har lige lavet koden om til 1111
hvordan logge man ud?
Avatar billede myth Nybegynder
26. maj 2004 - 00:09 #51
den logger ud når du forlader siden...
Avatar billede myth Nybegynder
26. maj 2004 - 00:10 #52
men kan der ikke laves en simplere løsning end det du havde kodet der? for jeg kan ikke få det til at virke. Det der ligger på nettet er version fra igår
Avatar billede myth Nybegynder
26. maj 2004 - 00:16 #53
hmmm næ den logger ikke ud... det skulle den jo helst når man lukker vinduet med kontrolpanelet... hvordan den gøres er så endnu et mysterie - herligt at kaste sig ud i sådan noget her når man er en total asp noob :)
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:20 #54
mht "Variable is undefined: 'administrator'".. prøv min metode med:
set rs = conn.execute("SELECT * FROM administrator WHERE administrator.adminid = " & Request.QueryString("show_id"), database"

mht logout: normalt er det først når hele browseren (læs: alle browserens vinduer) lukkes.. dermed nedlægges sessionerne..

Jeg har engang lavet et login system, der bruger sessions.. der kan man logge ind, og skifte nogle data.. bl.a passwordet der hører til den konto/profil, som man har brugt til login.. man kan altså ikke skifte de andres passwords..
Avatar billede myth Nybegynder
26. maj 2004 - 00:24 #55
mht "Variable is undefined: 'administrator'".. prøv min metode med:
set rs = conn.execute("SELECT * FROM administrator WHERE administrator.adminid = " & Request.QueryString("show_id"), database"

ok det der fangede jeg ikke? mener du jeg skal ændre

strSQL = "Select * from administrator where password = '" & oldpw & "'"
      set rs = conn.execute(strSQL)

til

strSQL = "Select * from administrator where password = '" & oldpw & "'"
      set rs = conn.execute("SELECT * FROM administrator WHERE administrator.adminid = " & Request.QueryString("show_id"), database"


???
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:29 #56
hmm.. når du bruger "FROM administrator" behøver du vel kun "WHERE adminid"..?

Ja/Nej, det tror jeg ikke, er hvad jeg mener :-)
Jeg mener formen, ikke nøjagtig den kode..

Se (og selv om du mener at du "kan det der"):
Lektion 19: Hent data fra databasen - http://html.dk/tutorials/asp/lektion19.asp
Avatar billede myth Nybegynder
26. maj 2004 - 00:31 #57
ja du har ret... jeg behøver ikke administrator.adminid...

jeg har aldrig påstået jeg kan det her - tvært imod fatter jeg ikke så meget? men hvor er det du vil have

set rs = conn.execute("SELECT * FROM administrator WHERE administrator.adminid = " & Request.QueryString("show_id"), database"

sat ind?
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:35 #58
i 25/05-2004 23:27:59 skriver du:

<%
Set administrator = Server.CreateObject("ADODB.Recordset")
administrator.Open "SELECT * FROM administrator WHERE administrator.adminid = " & Request.QueryString("show_id"), database

%>

I stedet for at bruge administrator.Open, brug:
set rs = conn.execute("SELECT * FROM administrator WHERE administrator.adminid = " & Request.QueryString("show_id"))

Så kan du bruge rs("adminid")..

Hvad er "database" i din linie?: "& Request.QueryString("show_id"), database"
Avatar billede myth Nybegynder
26. maj 2004 - 00:42 #59
ja... men den sql eller set rs eller hvad det nu bliver er jo fra min oprindelige kode... jeg kan slet ikke finde hoved eller hale i det her mere...

mht database... jeg ved det heller ikke... noget min lærer har lært os tror jeg nok... ved ikke hvad den gør, men tror det er en henvisning til linien over?

jeg vil bare så gerne vide hvordan jeg får den her til at finde mine værdier fra databasen igen... det gør den bestemt ikke nu.
Avatar billede myth Nybegynder
26. maj 2004 - 00:48 #60
jeg er så tabt...
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:48 #61
Jeg har lært det med ASP og database vha html.dk.. den metode du bruger der, kender jeg ikke så godt.. eller, ikke nok til at jeg kan bruge den..
Når man bruge den metode, plejer men at bruge den sådan her: noget.open "selec...", 1, 3
jeg kan ikke huske hvad 1 og 3 gør.. noget med at låse nogle felter eller noget i den stil..

Jeg tror at jeg kan lave, et funktionelt login system med sessions, i morgen.. det bliver med "set rs = conn.execute" metoden..

- Er du interesseret i det, eller vil du beholde "noget.open" metode (som jeg desværre ikke kan hjælpe med) ?

PS: hvad er det for en uddannelse du er igang med?
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:51 #62
Du kan naturligvis også vente på at andre kommer forbi.. eagleeye, olebole, erikjacobsen og roenving er vist gode til der her..
Avatar billede myth Nybegynder
26. maj 2004 - 00:51 #63
nej det er fint nok med den anden metode... jeg tror bare jeg har kastet mig ud i nogen forskellige former da jeg henter det meste af min kode fra eksempler og prøver at tilpasse. Jeg har været alle html.dk tutorials igennem - men jeg lærer åbenbart aldrig asp, og det samme gælder javascript :)

jeg er 3 uger fra at være multimedie designer - men hver sikker på at de fremtidige jobs ikke skal indeholde kode :D
Avatar billede myth Nybegynder
26. maj 2004 - 00:53 #64
hvis du har tid lidt endnu... så lad os lige prøve noget andet hvis det er ok - hvis du ser på min oprindelige kode... hvordan ændrer jeg så den til rs? og hvordan kan jeg validere formen uden al den ekstra kode - det virker for mig - correct me if i'm wrong - som om at det meste af det du har kodet er til fejlmeldingerne?
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:54 #65
hehehe :-)

hmm.. "multimedie designer".. var det ikke den uddannelse, som ingen vidste hvad gik ud på..? mener at have hørt noget om det for lang tid siden..

hvis det haster, kan du prøve på at få fat, på en af de ovennævnte person, ved at se hvilke tråede de har oprettet..
Avatar billede myth Nybegynder
26. maj 2004 - 00:57 #66
jo lige præcis det er den... :D

ja det haster en del da al kode helst skulle være færdig i morgen aften :)

men du mener altså ikke der er en simplere måde at lave den der validering af feltet? det eneste jeg jo mangler er validering af feltet med det gamle password. den javascript der kører giver fint alert hvis de 2 sidste ikke stemmer. kunne man lave noget lignende?
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:58 #67
Der er mange ting, som skal være iorden, før man "korrekt" kan ændre en værdi..
man skal jo sørge for, at de felter i databasen, man vil arbejde med, ikke er tomme.. og så skal ' tegnet enten erstattes med ingenting, eller med dobbelt ' tegn, som opfattes som et enkelt ' tegn..

Så, jo, der er en masse kode til fejlmeldinger..

Jeg ville helt klart bruge sessions til dette eksempel..
Avatar billede thesurfer Nybegynder
26. maj 2004 - 00:59 #68
med andre ord: man skal ikke skrive navnet på den person, hvis password man vil skifte, da det er ens eget password..
Avatar billede myth Nybegynder
26. maj 2004 - 01:00 #69
ja... det bruges også... men den fungere ikke... login.asp ser ud som følger:

<html>

<head>

    <title>Hansen & Pedersen - Film & Fjernsyn Online - Kontrolpanel</title>
   
    <!--Henter eksternt Stylesheet-->
    <link rel="stylesheet" type="text/css" href="../main.css">

</head>

<body leftmargin="0" rightmargin="0" topmargin="0" marginwidth="0" marginheight="0" style=overflow:hidden; background="../../images/kpback.jpg">

<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/db/hpff.mdb")

If Request("mode") = "Check" then

Function unQuote(strTekst)
  strTekst = Trim(strTekst)
  unQuote = Replace(strTekst,"%","53")
End Function

    ' Gemmer formfelterne i Variabler
        strBrugernavn = unQuote(request("username"))
        strPassword = unQuote(request("password"))

       
       
  Sql = "SELECT COUNT(*) as Found from administrator WHERE (navn = '" & strBrugernavn  & "') and (password ='" & strPassword  & "')"
  Set LO = RS.Execute(Sql)
  if LO("Found") = 0 then
    Session("login") = "NO"
    error = "Det indtastede brugernavn eller kodeord er ikke korrekt"
  else
  strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/db/hpff.mdb")
  Set myConn = Server.CreateObject("ADODB.Connection")
  myConn.Open strDSN
  strSQL = "SELECT * FROM administrator where (navn = '" & Request("navn") & "') and (password ='" & Request("password") & "')"
  Set ez = myConn.Execute(strSQL)
    Session("login") = "YES"
    Session("strAdminid") = 1
    Response.Redirect "../kontrolpanel/kontrolpanel.asp"
    EZ.Close
    RS.Close
    myConn.Close
  end if
end if
%>

<div id="login" style="position:absolute; left:37px; top:5; width:300px; height:200px; z-index:5; overflow: hidden; border=;visibility: visible;"0"; scrolling="no";>

<form method="POST" action="login.asp" name="login">

    <input type="hidden" name="mode" VALUE="Check">

<table>

    <tr height="28">

        <td></td>
   
    </tr>

    <tr>

        <td align="right">

            brugernavn:

        </td>

        <td align="left">

            <input class='text' type='text' name='username' size='15' value="<%=strBrugernavn%>">

        <td>

    </tr>

    <tr>

        <td align="right">
       
            kodeord:

        </td>

        <td align="left">

            <input class="text" type="password" value="<%=strPassword%>" name="password" size="15">

        </td>

    </tr>

    <tr>
       
        <td></td>

        <td align="right">

            <a href="#" onclick="document.login.submit();return false;"><b>login</b></a>

        </td>
    </tr>

</table>

<%=error%>

</form>

</div>

<div id="hp" style="position:absolute; left:5px; top:300; width:37px; height:173px; z-index:4; overflow: hidden; border=;visibility: visible;"0"; scrolling="no";>

            <img src="../../images/hpnavn.jpg">

</div>

</body>

</html>
Avatar billede myth Nybegynder
26. maj 2004 - 01:01 #70
Session("login") = "YES"
    Session("strAdminid") = 1 <--- denne linie virker KUN hvis jeg forudbestemmer værdien
    Response.Redirect "../kontrolpanel/kontrolpanel.asp"
Avatar billede myth Nybegynder
26. maj 2004 - 01:01 #71
nej - navn feltet skulle også udelukkes
Avatar billede myth Nybegynder
26. maj 2004 - 01:02 #72
det er jo adminid der er den interessante da denne er det eneste unikke (teoretisk)
Avatar billede thesurfer Nybegynder
26. maj 2004 - 01:05 #73
Jeg faldt lige over denne her:

    Response.Redirect "../kontrolpanel/kontrolpanel.asp"
    EZ.Close
    RS.Close
    myConn.Close

Jeg tror ikke at dine database-forbindelser bliver lukket, da man sendes til kontrolpanel.asp, iden "lukke"-koden..

Det er nok bedre at bruge det sådan her:

    EZ.Close
    RS.Close
    myConn.Close
    Response.Redirect "../kontrolpanel/kontrolpanel.asp"

Kigger lige på resten af koden, og ser om jeg kan finde ud af noget..
Avatar billede thesurfer Nybegynder
26. maj 2004 - 01:08 #74
En rettelse/tilføjelse til din funktion:

Function unQuote(strTekst)
  strTekst = Trim(strTekst)
  strTekst = replace(strTekst, "'", "")
  strTekst = replace(strTekst,"%","53")
  unQuote = strTekst
End Function

Hvis ' tegnet ikke erstattes, kan databasen "hackes", idet man kun behøver at kende ENTEN brugernavn ELLER kodeord..
Avatar billede myth Nybegynder
26. maj 2004 - 01:09 #75
oh :|
Avatar billede thesurfer Nybegynder
26. maj 2004 - 01:13 #76
Jeg har f.eks. lige logget ind med:
brugernavn: malene
password: ' or '' = '
Avatar billede myth Nybegynder
26. maj 2004 - 01:16 #77
ok... den er jo ikke så fin... har ændret det... men kan ikke få

Session("strAdminid") =

til at virke... jeg har prøvet næsten alt -

Response.Write rs("adminid")

Response.Write("adminid")

rs ("adminid")

ez ("adminid")
Avatar billede thesurfer Nybegynder
26. maj 2004 - 01:20 #78
Jeg kan ikke lige gennemskue din kode.. jeg tror at du skal have fat i en af de andre..

Du kan se hvilke spm de har oprette, ved at kopiere og indsætte dette link, i url-området af dit browser vindue, og erstatte BRUGERNAVN med navnet på brugeren:

http://www.eksperten.dk/list.phtml?spm_creator=BRUGERNAVN&status_1=on&status_2=on&status_3=on&status_4=on

De tidligere nævnte brugere er: eagleeye, olebole, erikjacobsen, roenving
Avatar billede myth Nybegynder
26. maj 2004 - 01:20 #79
ok det prøver jeg så... men 1000 tak for din assistance - den har jo været abnorm!
Avatar billede thesurfer Nybegynder
26. maj 2004 - 01:23 #80
Det var så lidt.. er dog ked af ikke at kunne løse dit problem.
Avatar billede myth Nybegynder
26. maj 2004 - 01:24 #81
måske du kan løse det næste :) hold endelig øje med mit navn der jeg er ved at spamme det her forum :D
Avatar billede thesurfer Nybegynder
26. maj 2004 - 01:26 #82
Vi mødes nok igen.. :-)
Avatar billede myth Nybegynder
26. maj 2004 - 01:28 #83
hahaha i bet
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