Avatar billede myth Nybegynder
26. maj 2004 - 10:40 Der er 16 kommentarer og
1 løsning

felt i database skal være lig med form value

<%@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">
   
    <script type="text/javascript">
            function validForm(passForm2)
            {
            if (passForm.oldpassword.value == "")
            {
            alert("du skal skrive et kodeord");
            passForm.oldpassword.focus();
            return false;
            }
            if (passForm.oldpassword.value != <% =administrator("password")%>)
            {
            alert("de indtastede kodeord er ikke ens");
            passForm.oldpassword.focus();
            passForm.oldpassword.select();
            return false;
            }
            return true;
            }
        </script>
   
   
    <!--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">
       
        <b>Skift adgangskode</b>
       
        <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">
           
                gammelt kodeord
       
                </td>
   
                <td align="left">


       
                <input  class="password" type="text" size="15" name="oldpassword"> <----- denne her skal valideres - jeg skal bruge et script i samme stil som det javascript der validerer de 2 andre felter (newpassword & newpassword2). Det der skal ske er at den skal tjekke i databasen om værdien af feltet passer med den indtastede værdi og gi' en alert hvis dette ikke er tilfældet istedet for at submitte formen.
               

</td>
                   
            </tr>

            <tr>
   
                <td width="50%" align="right">
           
                nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input  class="text" type="password" size="15" name="newpassword">
                </td>
                   
            </tr>
           
            <tr>
   
                <td width="50%" align="right">
           
                gentag nyt kodeord
       
                </td>
   
                <td align="left">
       
                <input  class="text" type="password" size="15" name="newpassword2">
                </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
26. maj 2004 - 10:45 #1
<body leftmargin="0" rightmargin="0" topmargin="0" marginwidth="0" marginheight="0">
   
    <script type="text/javascript">
            function validForm(passForm2)
            {
            if (passForm.oldpassword.value == "")
            {
            alert("du skal skrive et kodeord");
            passForm.oldpassword.focus();
            return false;
            }
            if (passForm.oldpassword.value != <% =administrator("password")%>)
            {
            alert("de indtastede kodeord er ikke ens");
            passForm.oldpassword.focus();
            passForm.oldpassword.select();
            return false;
            }
            return true;
            }
        </script>
   
dette eksisterer ikke længere - var et noget halvhjertet forsøg på at gøre det samme kl. 5:30 i morges... so don't mind these lines
Avatar billede fennec Nybegynder
26. maj 2004 - 11:11 #2
af sikkerheds grunde ville jeg ikke gøre det i javascript, da det betyder at kodeorderet vil kunne ses ved at se kildekoden i browseren. Gør det derfor i ASP inden du opdatere databasen.

seudokode:
if request.form("oldpassword") = database("password") then
  updater database med nyt password
else
  response.write "Gammelt password er forkert."
end if
Avatar billede myth Nybegynder
26. maj 2004 - 11:25 #3
jeg tror næsten jeg kan følge dig...

men ved du præcist hvordan jeg kan gøre det? er det i denne fil eller evt. i min updatefil jeg skal tjekke

opuser.asp:

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../connect.asp"-->

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

    administrator("navn")=Request.QueryString("username")
      administrator("password")=Request.QueryString("newpassword")
       
      administrator.Update
   
Response.Redirect("../kontrolpanel/main.htm")
%>
Avatar billede fennec Nybegynder
26. maj 2004 - 11:33 #4
<%
Set administrator = Server.CreateObject("ADODB.Recordset")
administrator.Open "SELECT * FROM administrator WHERE adminid = " & Request.QueryString("admin"), database, 2,2
  if Request.QueryString("oldpassword") = administrator("password") then
    administrator("navn")=Request.QueryString("username")
      administrator("password")=Request.QueryString("newpassword")
      administrator.Update
  else
    response.redirect("DinFormFil.asp?err=Forkert password")
  end if
   
Response.Redirect("../kontrolpanel/main.htm")
%>

hvis du så skriver request.querystring("err") ud på din side, har du også fejlmeddelsen.
Avatar billede myth Nybegynder
26. maj 2004 - 12:01 #5
jeg modtager følgende fejl:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'administrator.adminid ='.

/code/users/users.asp, line 7

linie 7 i users.asp ses herunder:


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

%>
Avatar billede fennec Nybegynder
26. maj 2004 - 12:29 #6
Har du ændret i users.asp??? for det skulle kun være nødvendig at ændre i opuser.asp
Avatar billede myth Nybegynder
26. maj 2004 - 12:31 #7
det skulle jeg ikke mene - men roder jo noget rundt lige nu: filerne ser således ud:

users.asp

<%@language="vbscript" %>

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

<%
Set administrator = Server.CreateObject("ADODB.Recordset")
administrator.Open "SELECT * FROM administrator WHERE 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">
       
        <b>Skift adgangskode</b>
       
        <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">
           
                gammelt kodeord
       
                </td>
   
                <td align="left">
       
                <input  class="password" type="text" size="15" name="oldpassword">
                </td>
                   
            </tr>

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

        </table>

        </form>       

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

       
        </td>

      </tr>

    <tr>
   
        <td>
        <% Request.Querystring("err")%>
        </td>
       
    </tr>
   

</table>   

</div>

</body>

</html>

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

opuser.asp

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../connect.asp"-->

<%
Set administrator = Server.CreateObject("ADODB.Recordset")
administrator.Open "SELECT * FROM administrator WHERE adminid = " & Request.QueryString("admin"), database, 2,2
  if Request.QueryString("oldpassword") = administrator("password") then
    administrator("navn")=Request.QueryString("username")
      administrator("password")=Request.QueryString("newpassword")
      administrator.Update
  else
    response.redirect("users.asp?err=Forkert password")
  end if
   
Response.Redirect("../kontrolpanel/main.htm")
%>
Avatar billede fennec Nybegynder
26. maj 2004 - 12:39 #8
Du får fejlen fordi Request.QueryString("show_id") er tomt. "show_id" skal lige med på url'en i opuser.asp

response.redirect("users.asp?show_id="& Request.QueryString("admin") &"&err=Forkert password")
Avatar billede myth Nybegynder
26. maj 2004 - 12:42 #9
øhm... den kommer stadig ikke frem
Avatar billede myth Nybegynder
26. maj 2004 - 12:42 #10
altså fejlmeddelelsen...
Avatar billede myth Nybegynder
26. maj 2004 - 12:44 #11
ellers lader det til at det virker
Avatar billede fennec Nybegynder
26. maj 2004 - 12:55 #12
mener du denne:
<% Request.Querystring("err")%>
som skal ændres til
<%= Request.Querystring("err")%>

:o)
Avatar billede myth Nybegynder
26. maj 2004 - 12:56 #13
you rock - hit med et svar så du kan få en røvfuld point :)
Avatar billede myth Nybegynder
26. maj 2004 - 12:58 #14
før vi slutter... er der så en måde jeg kan få javascript valideringen af de 2 andre felter til at komme med samme type fejlmelding i stedet for en alertbox?
Avatar billede fennec Nybegynder
26. maj 2004 - 13:05 #15
Sådan:

Set administrator = Server.CreateObject("ADODB.Recordset")
administrator.Open "SELECT * FROM administrator WHERE adminid = " & Request.QueryString("admin"), database, 2,2
  if Request.QueryString("oldpassword") = administrator("password") then
    if Request.QueryString("newpassword") = Request.QueryString("newpassword2") then
      administrator("navn")=Request.QueryString("username")
      administrator("password")=Request.QueryString("newpassword")
      administrator.Update
    else
      response.redirect("users.asp?show_id="& Request.QueryString("admin") &"&err=Password er ikke ens")
    end if
  else
    response.redirect("users.asp?err=Forkert password")
  end if
   
Response.Redirect("../kontrolpanel/main.htm")
Avatar billede fennec Nybegynder
26. maj 2004 - 13:06 #16
glemte lige lidt.

      response.redirect("users.asp?show_id="& Request.QueryString("admin") &"&err=Password er ikke ens")
    end if
  else
    response.redirect("users.asp?show_id="& Request.QueryString("admin") &"&err=Forkert password")
  end if
   
Response.Redirect("../kontrolpanel/main.htm")
Avatar billede myth Nybegynder
26. maj 2004 - 13:21 #17
du er en knag
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