Hej
Jeg har en side hvor man skal indtaste et password og derefter
gentage det. Der skal så ske en sammenligning på den næste side
og hvis de to værdier ikke er ens skal der udskrives en
fejlmeddelelse. Dette sker imidlertid ikke og jeg kan ikke helt
forstå hvorfor..Håber der er nogen, der kan hjælpe..
Jeg har en formular på første side som følgende :
<form name=afsend action=modtag.asp>
<input type=password name=kodeord1>
<input type=password name=kodeord2>
</form>
Siden modtag.asp ser sådan her ud :
<% @language=JavaScript %>
<!-- #include file="database.js" --> // connection til DB
<!-- #include file="string.js" --> // validering af de to kodeord
<%
OK = 0;
FORKERT_KODEORD = 1;
KUNDE_EKSISTERER = 2;
con = createDatabaseConnection();
// kontroller først, om kunden er logget ind
id = -1;
if (Request.Cookies("kundeid") != "") {
id = opdaterKunde(Request.Cookies("kundeid"));
} else {
id = tilfojKunde();
}
// registrer ordren
Application.Lock();
con.execute("INSERT INTO ordre (kunde, dato) VALUES (" + id + ",
" + toSqlDate(new Date()) +")");
res = con.execute("SELECT id FROM ordre WHERE kunde=" + id + "
ORDER BY id DESC");
ordrenummer = res.Fields("id");
Application.Unlock();
albumantal = Session("albumantal");
for (i = 0; i < albumantal; i++) {
sql = "INSERT INTO ordrelinie (album, antal, ordre) VALUES (";
sql += Session("album"+i);
sql += ", ";
sql += Session("antal"+i);
sql += ", ";
sql += ordrenummer;
sql += ")";
con.execute(sql);
}
printResult(OK);
function opdaterKunde(id) {
sql = "UPDATE kunde SET ";
sql += "Navn='" + Request.Form("Navn") + "', "
sql += "Adresse='" + Request.Form("Adresse") + "', ";
sql += "Postnummer=" + Request.Form("Postnummer") + " , ";
sql += "Postdistrikt='" + Request.Form("Postdistrikt") + "', ";
sql += "Email='" + Request.Form("Email") + "'";
sql += " WHERE id=" + id;
con.execute(sql);
return id;
}
// for funktionen strcmp, se nederst..
function tilfojKunde(id) {
if (!strcmp(Request.Form("kodeord1"), Request.Form("kodeord2")))
{
printResult(FORKERT_KODEORD);
}
// kontroller, at der ikke allerede eksisterer en kunde med den
email-adresse
res = con.execute("SELECT id FROM kunde WHERE email='" +
Request.Form("Email") + "'");
if (!res.EOF) { // kunden eksisterer
printResult(KUNDE_EKSISTERER);
}
sql = "INSERT INTO kunde (Navn, Adresse, Postnummer,
Postdistrikt, Email, Kodeord) VALUES (";
sql += "'" + Request.Form("Navn") + "', ";
sql += "'" + Request.Form("Adresse") + "', ";
sql += Request.Form("Postnummer") + ", ";
sql += "'" + Request.Form("Postdistrikt") + "', ";
sql += "'" + Request.Form("Email") + "', ";
sql += "'" + Request.Form("kodeord1") + "')";
con.execute(sql);
res = con.execute("SELECT id FROM kunde WHERE Email='" +
Request.Form("Email") + "'");
return res.Fields("id");
}
function printResult(status) {
%>
<html>
<head>
</head>
<body>
<% if (status == OK) { %>
Din ordre er afsendt. Den vil blive tildelt ordrenummer
<%=ordrenummer%>.
<%
} else if (status == FORKERT_KODEORD || status ==
KUNDE_EKSISTERER) {
%>
Der opstod en fejl i forbindelse
med afsendelse af din ordre. Din ordre er ikke afsendt
<%
if (status == FORKERT_KODEORD) {
%>
De to indtastede kodeord var ikke ens.
<%
} else {
%>
Der er allerede registreret en kunde med den angivne
email-adresse (<%=Request.Form("Email")%>).
<%
}
}
%>
</body>
</html>
<%
Response.End();
}
%>
den inkluderede fil string.js ser sådan ud :
<%
function strcmp(s1, s2) {
if (s1.length != s2.length) {
return false;
}
for (i = 0; i < s1.length; i++) {
if (s1[i] != s2[i]) {
return false;
}
}
return true;
}
%>
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials