Avatar billede eyes Nybegynder
11. november 2002 - 19:27 Der er 3 kommentarer og
1 løsning

Validering i ASP

Jeg har lavet en side hvorpå jeg skal have indsamlet navn og email som brugeren taster ind.

Mit problem er nu at siden ikke virker med include i asp.
her skal det antydes at jeg benytter JScript istedet for VBScript.

Den kommer med følgende fejl

Microsoft JScript compilation error '800a03ed'

Expected '('

/htx/main.asp, line 2

Main ser således ud

<% @language=javascript %>
<% function Theme_Start %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>HTX</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="Style.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--



function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
</head>

<style>
.streg2 { border-width: 0px 0px 0px 1px; border-style: solid; border-color: #337D9D; }
.streg1 { border-width: 0px 1px 0px 0px; border-style: solid; border-color: #337D9D; }

</style>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td height="100%" rowspan="2" background="tile.jpg" bgcolor="#CCCCCC" class="streg1">&nbsp;</td>
    <td width="690" height="100"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="690" height="100">
        <param name="movie" value="logo.swf">
        <param name="quality" value="low">
        <embed src="logo.swf" quality="low" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="690" height="100"></embed></object></td>
    <td height="100%" rowspan="2" background="tile.jpg" bgcolor="#CCCCCC" class="streg2">&nbsp;</td>
  </tr>
  <tr>
    <td width="690" align="left" valign="top">
          <%
end function
function Theme_End
%>
  </tr>
</table>
</body>
</html>

<% end function %>





2. problem

Det virker fint med at oprette i databasen. Men der mangler at tjekke på om der er @ i mailen og at der er noget foran og bagved. hvordan gøres dette i asp med jscript ?

3. Problem

Hvordan tjekker man at de 2 felter på hovedsiden er blevet udfyldt.
Avatar billede mm12010 Nybegynder
11. november 2002 - 19:36 #1
Jeg kan ikke se din include kode nogen steder...

resten kan nemt klares med JavaScript, men jeg kan heller ikke se nogen <form>...

og desuden er "end function" mv. VB og ikke JavaScript.

Du må forklare dig lidt bedre hvis jeg skal kunne hjælpe...
Avatar billede eyes Nybegynder
11. november 2002 - 19:48 #2
Her er form siden (default.asp) som submittes til bruger.asp .. vises længere nede

_________________


<!-- #include virtual="/htx/main.asp" -->   

<% Theme_Start %>

<script language="JavaScript" type="text/JavaScript">
</script>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="Style.css" rel="stylesheet" type="text/css">
</head>

<body leftmargin="10" topmargin="10">
<table width="100%" border="0" cellpadding="0" cellspacing="10">
  <tr>
    <td>
    <h1>Velkommen til infosiden for HTX VIBY 3.X.</h1>
        <p>Efter den første gamle elevfest var blevet afholdt,, tænkte jeg om det
        ikke ville være en god ide, at have en side hvorpå man kunne finde indformationer
        om hvad de forskellige "gamle klassekammerater" går og laver. Det blev
        grundlag for denne side, hvorp&aring; man i fremtiden vil kunne se klasselisten
        som indeholder informationer som, navn. adresse, besk&aelig;ftigelse og
        tlf mm. Ud over klasselisten vil der ogs&aring; komme et forum hvor folk
        vil hav mulighed for at snakke om det de nu har lyst til. </p>
      <table width=100% border=0 cellpadding=0 cellspacing=0>
        <tr>
          <td align="center">
   
            <form name ="formular1" method="post" action="bruger.asp">
              <table width="175" border="0" cellspacing="10" cellpadding="0" valign="top">
                <tr>
                  <td align="right" valign="top"> <b>Navn:</b> 
                  </td>
                  <td align="left" valign="top"> <input type="text" name="Navn" maxlength="50" style="border:1px solid #337D9D;width:100px;height:18px;font-size:9px;color:#000000;background-color: #FFFFFF;" value="Indtast Navn">
                   
                  </td>
                <tr>
                  <td align="right" valign="top"><input type="image" src="email.gif" border="0" name="Submit" alt="Tilmeld E-mail"></td>
                  <td align="left" valign="top"><input type="text" name="email" maxlength="50" style="border:1px solid #337D9D;width:100px;height:18px;font-size:9px;color:#000000;background-color: #FFFFFF;" value="din@e-mail.dk"></td>
              </table>
            </form><br><br>
            <a href="java script:;" onMouseOver="MM_swapImage('klassen','','klassefoto1.jpg',1)" onMouseOut="MM_swapImgRestore()"><img src="klassefoto.jpg" name="klassen" border="1" id="klassen"></a>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</body>
</html>
<% Theme_End %>



Bruger.asp

_____________________


<% @language=javascript %>

<!-- #include virtual="/htx/main.asp" -->   

<% Theme_Start %>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="Style.css" rel="stylesheet" type="text/css">
</head>

<body leftmargin="10" topmargin="10">
<%
//læs opl fra form

email = Request("email");
Navn = Request("Navn");

//åbn DBforbindelse
    conn = Server.CreateObject("ADODB.Connection");
      DBPath = "DBQ=" + Server.mappath("nyheder.mdb");
      conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; " + DBPath);

// lås appl
Application.Lock;

//find største NyId og læg 1 til

rs = conn.Execute("SELECT MAX(brugerid)AS x FROM Bruger");
if(!rs.EOF){
    brugerid = rs.Fields("x");
    brugerid = brugerid + 1;
}

//Indsæt i DB:

conn.Execute("INSERT INTO Bruger VALUES ("+brugerid+",'"+Navn+"','"+email+"')");

// lås appl op
Application.Unlock;

// bekræftelse

rsx = conn.Execute("SELECT * FROM Bruger WHERE brugerid ="+brugerid);

%> <b>Følgende email er blevet tilmeldt nyhedsbrevet: </b><br>
<p><b>Navn: </b><%=rsx.Fields("Navn")%>&nbsp;&nbsp;&nbsp;<b>E-mail: </b><%=rsx.Fields("email")%></p>


<%
//luk DBforbindelse
conn.Close();

%> </body>
</html>

<% Theme_End %>



Main siden bliver includeret på alle de andre sider med funktionen theme..
men jeg tror det er fordi noget af det er VB, men hvad ?
Avatar billede medions Nybegynder
12. november 2002 - 09:53 #3
Hvis du vil ha' lavet det fra VBScript om til JScript, så ser en Function() Sådan her ud.

function FunktionNavn {

}

Altså:

<% @language=javascript %>
<% function Theme_Start { %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>HTX</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="Style.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--



function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
</head>

<style>
.streg2 { border-width: 0px 0px 0px 1px; border-style: solid; border-color: #337D9D; }
.streg1 { border-width: 0px 1px 0px 0px; border-style: solid; border-color: #337D9D; }

</style>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td height="100%" rowspan="2" background="tile.jpg" bgcolor="#CCCCCC" class="streg1">&nbsp;</td>
    <td width="690" height="100"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="690" height="100">
        <param name="movie" value="logo.swf">
        <param name="quality" value="low">
        <embed src="logo.swf" quality="low" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="690" height="100"></embed></object></td>
    <td height="100%" rowspan="2" background="tile.jpg" bgcolor="#CCCCCC" class="streg2">&nbsp;</td>
  </tr>
  <tr>
    <td width="690" align="left" valign="top">
          <%
}
function Theme_End {
%>
  </tr>
</table>
</body>
</html>

<% } %>

//>Rune
Avatar billede mm12010 Nybegynder
12. november 2002 - 19:06 #4
default.asp:
----------------------
<!-- #include file="Main.asp" -->

<script language="JavaScript" type="text/JavaScript">
<!--
    function Email(email) {
        ugyldigeTegn = " /:,;<>"
       
        for (i=0; i<ugyldigeTegn.length; i++) {   
            fejlTegn = ugyldigeTegn.charAt(i)
            if (email.indexOf(fejlTegn,0) > -1) {
            return false
            }
        }
       
        paaPos = email.indexOf("@",1)
        if (paaPos == -1) {
            return false
        }
       
        if (email.indexOf("@",paaPos+1) != -1) {
            return false
        }
       
        punktumPos = email.indexOf(".",paaPos)
        if (punktumPos == -1) {
            return false
        }
       
        if (punktumPos+3 > email.length)    {
            return false
        }
        return true
    }
   
    function tilmeld(form) {
        if (form.navn.value == "" ) {
            alert("Du skal indtaste dit navn.")
            form.navn.focus()
            return false
        }
       
        for (var i = 0; i < form.navn.value.length; i++) {
            var _123 = form.navn.value.substring(i, i + 1);
            if((((((((((_123 < "a" || "z" < _123)
                && (_123 < "A" || "Z" < _123)) && _123 != ' ')
                && _123 != 'æ')
                && _123 != 'ø')
                && _123 != 'å')
                && _123 != 'Æ')
                && _123 != 'Ø')
                && _123 != 'Å')
                && _123 != '.')
                {
                alert("Indtast venligst dit navn korrekt.")
                form.navn.focus()
                form.navn.select()
                return false
                }
            }                   
       
        if (form.email.value == "") {
            alert("Indtast venligst din e-mail adresse.")
            document.formular1.email.focus()
            return false
        }
   
        if (!Email(form.email.value)) {
            alert("Ugyldig e-mail adresse.")
            form.email.focus()
            form.email.select()
            return false
        }
    }
//-->
</script>

<table width="100%" border="0" cellpadding="0" cellspacing="10">
  <tr>
    <td>
    <h1>Velkommen til infosiden for HTX VIBY 3.X.</h1>
            <p>Efter den første gamle elevfest var blevet afholdt, tænkte jeg
              om det ikke ville være en god ide, at have en side hvorpå man kunne
              finde indformationer om hvad de forskellige gamle klassekammerater
              går og laver. Det blev grundlag for denne side, hvorp&aring; man
              i fremtiden vil kunne se klasselisten som indeholder informationer
              som, navn. adresse, besk&aelig;ftigelse og tlf mm. Ud over klasselisten
              vil der ogs&aring; komme et forum hvor folk vil hav mulighed for
              at snakke om det de nu har lyst til. </p>
      <table width=100% border=0 cellpadding=0 cellspacing=0>
        <tr>
          <td align="center">
            <form name ="formular1" method="post" action="bruger.asp" onSubmit="return tilmeld(this)">
              <table width="175" border="0" cellspacing="10" cellpadding="0" valign="top">
                <tr>
                  <td align="right" valign="top"> <b>Navn:</b> 
                  </td>
                  <td align="left" valign="top"> <input type="text" name="navn" maxlength="50" style="border:1px solid #337D9D;width:100px;height:18px;font-size:9px;color:#000000;background-color: #FFFFFF;" value="Indtast Navn">
                   
                  </td>
                <tr>
                  <td align="right" valign="top"><input type="image" src="email.gif" border="0" name="Submit" alt="Tilmeld E-mail"></td>
                  <td align="left" valign="top"><input type="text" name="email" maxlength="50" style="border:1px solid #337D9D;width:100px;height:18px;font-size:9px;color:#000000;background-color: #FFFFFF;" value="din@e-mail.dk"></td>
              </table>
            </form><br><br>
            <img src="klassefoto.jpg" name="klassen" border="1" id="klassen">
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
    </td>
  </tr>
</table>


</body>
</html>

------------------
Main.asp:
------------------

<% @language=javascript %>

<html>
<head>
<title>HTX</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="Style.css" rel="stylesheet" type="text/css">

<style>
.streg2 { border-width: 0px 0px 0px 1px; border-style: solid; border-color: #337D9D; }
.streg1 { border-width: 0px 1px 0px 0px; border-style: solid; border-color: #337D9D; }

</style>
</head>


<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td height="100%" rowspan="2" background="tile.jpg" bgcolor="#CCCCCC" class="streg1">&nbsp;</td>
    <td width="690" height="100"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="690" height="100">
        <param name="movie" value="logo.swf">
        <param name="quality" value="low">
        <embed src="logo.swf" quality="low" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="690" height="100"></embed></object></td>
    <td height="100%" rowspan="2" background="tile.jpg" bgcolor="#CCCCCC" class="streg2">&nbsp;</td>
  </tr>
  <tr>
    <td width="690" align="left" valign="top">

---------------
bruger.asp:
---------------

<!-- #include file="Main.asp" -->   


<%
//læs opl fra form

email = Request("email");
Navn = Request("navn");

//åbn DBforbindelse
    conn = Server.CreateObject("ADODB.Connection");
      DBPath = "DBQ=" + Server.mappath("nyheder.mdb");
      conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; " + DBPath);

// lås appl
Application.Lock;

//find største NyId og læg 1 til

rs = conn.Execute("SELECT MAX(brugerid)AS x FROM Bruger");
if(!rs.EOF){
    brugerid = rs.Fields("x");
    brugerid = brugerid + 1;
}

//Indsæt i DB:

conn.Execute("INSERT INTO Bruger VALUES ("+brugerid+",'"+Navn+"','"+email+"')");

// lås appl op
Application.Unlock;

// bekræftelse

rsx = conn.Execute("SELECT * FROM Bruger WHERE brugerid ="+brugerid);

%> <b>Følgende email er blevet tilmeldt nyhedsbrevet: </b><br>
<p><b>Navn: </b><%=rsx.Fields("Navn")%>&nbsp;&nbsp;&nbsp;<b>E-mail: </b><%=rsx.Fields("email")%></p>


<%
//luk DBforbindelse
conn.Close();

%> </body>
</html>
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