Slettet bruger
25. januar 2005 - 17:52
Der er
10 kommentarer og 1 løsning
Problemer med ASP'en.
Jeg har en form der sender til denne asp kode, for at opdatere oplysninger om brugeren i en Database. Problemet er at de 2 password felter skal være ens for at blive godkendt men nu bliver jeg hele tiden sendt til "opdater_fejl.asp" siden også hvis passwords er ens i begge form felter når man trykker opdater. Nogen der kan finde årsagen? (Her er koden til begge asp filer) ---------------------------------------------------------- ********** Opdater_check.asp (funktionen) ********** <% @language=javascript %> <% navn=Request.form("navn"); adresse=Request.form("adresse"); city=Request.form("by"); email=Request.form("email"); pass=Request.form("password"); pass2=Request.form("password2"); b = Request.Cookies("bruger"); if(pass==pass2) conn = Server.CreateObject("ADODB.Connection"); DBPath = "DBQ=" + Server.mappath("db/database.mdb"); conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; " + DBPath); rs = conn.Execute("DELETE FROM BRUGER WHERE Brugernavn='"+b+"' "); rs = conn.Execute("INSERT INTO BRUGER (brugernavn, password, navn, adresse, city, email) VALUES ('"+b+"','"+pass+"','"+navn+"','"+adresse+"','"+city+"','"+email+"') " ); Response.Redirect("opdater_ok.asp"); conn.Close(); }else{ Response.Redirect("opdater_fejl.asp"); } %> ---------------------------------------------------------- ********** Opdater.asp (formen) ********** <% b = Request.Cookies("bruger"); conn = Server.CreateObject("ADODB.Connection"); DBPath = "DBQ=" + Server.mappath("db/database.mdb"); conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; " + DBPath); rs = conn.Execute("SELECT * FROM BRUGER WHERE BRUGERNAVN='"+b+"'" ); %> <form name="form" method="post" action="opdater_check.asp"> <table cellspacing="0" cellpadding="0"> <tr> <td width="111">Navn:</td> <td><input type="text" name="navn" size="20" value="<%=rs.fields('NAVN')%>"></td> </tr> <tr> <td>Adresse:</td> <td><input type="text" name="adresse" size="20" value="<%=rs.fields('ADRESSE')%>"></td> </tr> <tr> <td>Postnummer & By:</td> <td><input type="text" name="by" size="20" value="<%=rs.fields('CITY')%>"></td> </tr> <tr> <td>Email:</td> <td><input type="text" name="email" size="20" value="<%=rs.fields('EMAIL')%>"></td> </tr> <tr> <td>Brugernavn:</td> <td height="19"><%=rs.fields('BRUGERNAVN')%></td> </tr> <tr> <td>Password:</td> <td><input type="text" name="password" size="20" value="<%=rs.fields('PASSWORD')%>"></td> </tr> <tr> <td>Gentag Password:</td> <td><input type="text" name="password2" size="20" value="<%=rs.fields('PASSWORD')%>"></td> </tr> <tr> <td></td> <td height="29"><input type="submit" name="Submit" value="Opdater"></td> </tr> </table> </form> <% conn.Close(); %>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
25. januar 2005 - 23:26
#1
Prøv at lave Response.Write(pass + ", " + pass2); Response.End(); i stedet for at navigere til opdater_fejl.asp, så kan du muligvis komme nærmere hvorfor den ikke reagerer som du ønsker.
25. januar 2005 - 23:27
#2
Du mangler også en tuborg-start umiddelbart efter if-sætningen... if(pass==pass2) conn = Server.CreateObject("ADODB.Connection"); det skal vel være: if(pass==pass2) { conn = Server.CreateObject("ADODB.Connection");
25. januar 2005 - 23:28
#3
Desuden skal Server.mappath skrives Server.MapPath (da JavaScript er case sensitive, men det ved du nok allerede :))...
25. januar 2005 - 23:29
#4
Er der i øvrigt en grund til at du ikke benytter UPDATE i stedet for DELETE og INSERT?
25. januar 2005 - 23:31
#5
Husk i øvrigt at lukke din databaseforbindelse inden du redirecter (når nu det går godt) :)
Slettet bruger
26. januar 2005 - 01:08
#6
Har prøvet det men jeg bliver stadig sendt til opdater_fejl.asp siden. :-/
26. januar 2005 - 22:29
#7
må jeg se den kode du er kommet frem til nu?
27. januar 2005 - 16:34
#8
Har du prøvet med TheForm??? Det virkede for mig... Indsæt dette javescript i stedet for : --------------------------------------------------------------------------------- <script LANGUAGE="JavaScript"> <!-- HIDE FROM OTHER BROWSERS function validate(theForm) { if (theForm.navn.value == "") { alert("Navn kræves. Tak."); theForm.navn.focus(); return (false); } if (theForm.adresse.value == "") { alert("Adresse kræves. Tak."); theForm.adresse.focus(); return (false); } if (theForm.city.value == "") { alert("By kræves. Tak."); theForm.city.focus(); return (false); } if (theForm.email.value == "") { alert("E-Mail kræves. Tak."); theForm.email.focus(); return (false); } if(theForm.password.value == "") { alert("Password kræves. Tak."); theForm.password.focus(); return (false); } if(theForm.password2.value == "") { alert("Skriv dit Password igen. Tak."); theForm.password2.focus(); return (false); } if(theForm.password2.value != theForm.password.value) { alert("Password er IKKE ens..."); theForm.password.focus(); return (false); } return (true); } // STOP HIDING FROM OTHER BROWSERS --> </script> ---------------------------------------------------------------------------------
27. januar 2005 - 16:37
#9
Hvis et felt ikke er udfyldt korrekt får du besked med det sammeog curseren "stiller" sig der hvor en indtastning mangler. Du behøver altså ikke din "opdater_fejl.asp" mere...
27. januar 2005 - 16:45
#10
Du kan også skifte if(theForm.password.value == "") { alert("Password kræves. Tak."); theForm.password.focus(); return (false); } ud med følgende if (theForm.password.value.length < 6) { alert("Password skal være på mindst 6 tegn."); theForm.password.focus(); return (false); }
25. september 2010 - 04:25
#11
Lukketid ???
Kurser inden for grundlæggende programmering