Avatar billede myth Nybegynder
24. maj 2004 - 22:09 Der er 4 kommentarer og
1 løsning

validering og 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:16 #1
Jeg har lige skrevet en besked, i ASP kategorien, ang:

"jeg ønsker at validere feltet 'oldpassword' med det der er i databasen i forvejen - hvis disse ikke er ens skal der komme en fejlmelding."
Avatar billede macho Praktikant
25. maj 2004 - 00:37 #2
Det er helt klart p.gr.a. din javascript-submit tekst, at du har problemer! I øvrigt skal du huske, at sætte submit-funktionen inden "closing form": </form> og ikke bagefter. Men i dette tilfælde er det ikke det eneste problem. Det kan løses, hvis du indsætter en alm. submit-knap før </form>.
Avatar billede olebole Juniormester
25. maj 2004 - 00:47 #3
<ole>

Sludder ... et link, der submitter en form, må stå i Roskilde, hvis det nu skulle være sjovt  :)

Næhh ... problemet er, at en forms onsubmit-event aldrig fyres af, når formen submittes via JavaScript. Det kan løses ved at skrive:
  <a href="#" onclick="if(validForm(document.user)){document.user.submit()};return false;"><b>gem ændringer</b></a>
/mvh
</bole>
Avatar billede myth Nybegynder
25. maj 2004 - 00:52 #4
olebole du er en knag :D hvis nogen kan svare på asp delen er den også meget velkommen... samme spørgsmål er oprettet under ASP - dog har jeg selv svaret for at rykke spørgsmålet men er der nogen der kommer med en løsning skal pointene nok falde
Avatar billede olebole Juniormester
25. maj 2004 - 02:23 #5
Nu skriver jeg JScript og ikke VBScript, når jeg skriver ASP, så jeg kan kun give dig nogle hints:

Når brugeren har submittet formen og den rammer dit ASP-script, udfører dette et kald i databasen og hiver data ud om brugeren - udfra brugernavnet.

I en IF-sætning checker du om det, der står i databasens password-felt er lig med det, brugeren har skrevet i 'oldpassword'.

Er det tilfældet, opdaters password-feltet med den nye værdi.

Er det ikke tilfældet sendes brugeren tilbage med noget 'Response.Redirect-noget' og en querystreng à la: "en_fil.asp?error=idioooot"

Hvis dokumentet bliver kaldt med denne query, skrives en fejl-meddelelse ud til brugeren, der så kan prøve igen.

Kan du ikke selv skrive det efter denne anvisning, kan du jo spørge i ASP-kategorien  :)
/mvh
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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