Opret bruger-problemer (ASP/VB-scripting)
Jeg har problemer med at overskue MySQL:- Brugeren skal oprette sig selv v.hj.a. en formular.
- Når der submittes, tjekkes om alle oplysninger er udfyldt.
- Hvis alle informationer er udfyldt korrekt, sendes en mail med bekræftelse og automatisk generet password til brugerens e-mailadresse.
- Data indsættes i database
DOKUMENTET:
<%
On Error Resume Next
Dim adoConn
Set adoConn = Server.CreateObject("ADODB.Connection")
adoConn.Open "DSN=MinDatabase"
Const MaxLengthUser = 16
Const MaxLengthDescription = 2000
%>
If Request.Form("mode") = "create" Then
If Trim(Request.Form("username")) = "" Then
Response.Redirect "/error.asp?msg=Indtast+venligst+et+brugernavn."
ElseIf (Request.Form("accept")) = "" Then
Response.Redirect "/error.asp?msg=Det+er+en+betingelse,+at+du+accepterer+betingelserne+for+anvendelsen+af+include.dk"
ElseIf Trim(Request.Form("email")) = "" Then
Response.Redirect "/error.asp?msg=Indtast+venligst+din+e-mail."
ElseIf InStr(1,Request.Form("email"),"@") = 0 Or InStr(1,Request.Form("email"),".") = 0 Or Len(Request.Form("email")) < 6 Then 'Ugyldig e-mail (virker kun i et vist omfang)
Response.Redirect "/error.asp?msg=Indtast+venligst+en+gyldig+e-mail."
ElseIf Len(Request.Form("description")) > MaxLength Then
Response.Redirect "/error.asp?msg=Din+beskrivelse+af+dig+selv+indeholder+for+mange+tegn."
ElseIf Request.Form("accept") <> "on" Then
Response.Redirect "/error.asp?msg=Du+kan+ikke+oprettes+på+include.dk+hvis+ikke+du+accepterer+vores+betingelser."
End If
If Not Conn.Execute("SELECT username FROM profiles WHERE username = '" & Request.Form("username") & "'").EOF Then
Conn.Close
Response.Redirect "/error.asp?msg=En+bruger+med+samme+brugernavn+eksisterer+allerede.+Indtast+venligst+et+andet+brugernavn."
End If
Dim vPassword
vPassword = RandomString(8)
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.mydomain.dk"
JMail.Sender = "my@domain.dk"
JMail.Subject = "Velkommen til din nye profil"
JMail.AddRecipient Trim(Request.Form("email"))
JMail.AddRecipientBCC "my1@domain.dk"
JMail.Body = _
"........"
Dim Dato
Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time
If JMail.Execute() = True Then
Conn.Execute("INSERT INTO profiles (username, firstname, lastname, pass, gender, email, zip, city, dayofbirth, monthofbirth, yearofbirth, description, created, lastIP) VALUES (" & _
"'" & LTrim(RTrim(SQLEncode(Request.Form("username")))) & "', " & _
"'" & LTrim(RTrim(SQLEncode(Request.Form("firstname")))) & "', " & _
"'" & LTrim(RTrim(SQLEncode(Request.Form("lastname")))) & "', " & _
"'" & SQLEncode(vPassword) & "', " & _
"'" & LTrim(RTrim(SQLEncode(Request.Form("gender")))) & "', " & _
"'" & Trim(SQLEncode(Request.Form("email"))) & "', " & _
"'" & Trim(SQLEncode(Request.Form("zip"))) & "', " & _
"'" & Trim(SQLEncode(Request.Form("city"))) & "', " & _
"'" & LTrim(RTrim(SQLEncode(Request.Form("dayofbirth")))) & "', " & _
"'" & LTrim(RTrim(SQLEncode(Request.Form("monthofbirth")))) & "', " & _
"'" & LTrim(RTrim(SQLEncode(Request.Form("yearofbirth")))) & "', " & _
"'" & LTrim(RTrim(SQLEncode(Request.Form("description")))) & "', " & _
"'" & Dato & "', " & _
"'" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "')")
Conn.Close
Else
Conn.Close
Response.Redirect "/error.asp?msg=E-mailen+med+dine+brugeroplysninger+kunne+ikke+sendes+til+din+e-mail+(" & Trim(Request.Form("email")) & ")+og+din+bruger+kunne+derfor+heller+ikke+oprettes.+Kig+efter+om+du+har+indtastet+den+korrekte+e-mail+adresse+eller+indtast+en+anden+og+prøv+igen."
End If
Set JMail = Nothing
Response.Redirect "/default.asp?msg=Du+er+blevet+oprettet.+Du+vil+inden+for+kort+tid+modtage+en+e-mail+med+dine+brugeroplysninger,+som+du+skal+bruge+første+gang+du+logger+ind."
End If
%>
<html>
<head>
<script type="text/JavaScript" language="JavaScript">
function showLenUser()
{ document.frmUser.countdownuser.value = <%=MaxLengthUser%> - document.frmUser.username.value.length }
</script>
<script type="text/JavaScript" language="JavaScript">
function showLenDescription()
{ document.frmUser.countdowndescription.value = <%=MaxLengthDescription%> - document.frmUser.description.value.length }
</script>
</head>
<body onload="showLenUser"();">
<form name="frmUser" action="/login.asp" method="post" style="margin: 0px;">
<input type="hidden" name="mode" value="create">
<table border="0" cellpadding="0" cellspacing="0" style="width: 568px;">
<tr>
<td colspan="4" style="height: 30px;"></td>
</tr>
<tr>
<td align="left" colspan="4" class="headlinepadding headline" style="width: 568px; padding-bottom: 20px;">Opret mig som bruger</td>
</tr>
<tr>
<td align="left" colspan="4" style="padding-bottom: 20px; width: 568px;"><b>Alle felter skal udfyldes. Det er dog kun brugernavn og alder, der som standard vil blive vist i din profil.</b></td>
</tr>
<tr>
<td align="left" style="padding: 3px 0px 3px 0px; width: 110px;">Brugernavn:</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 220px;"><input tabindex="1" style="width: 208px;" type="text" name="username" onkeydown="showLenUser();" onkeyup="showLenUser();" onchange="showLenUser();" onfocus="showLenUser();" onblur="showLenUser();" class="input1"></td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 50px;"><input type="text" style="width: 38px;" name="countdownuser" readonly value="" class="input1"></td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 188px;"> </td>
</tr>
<tr>
<td align="left" style="padding: 3px 0px 3px 0px; width: 110px;">Fornavn:</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 220px;"><input tabindex="2" type="text" style="width: 208px;" name="firstname" class="input1"></td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 50px;"> </td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 188px;"> </td>
</tr>
<tr>
<td align="left" style="padding: 3px 0px 3px 0px; width: 110px;">Efternavn:</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 220px;"><input tabindex="3" type="text" style="width: 208px;" name="lastname" class="input1"></td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 50px;"> </td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 188px;"> </td>
</tr>
<tr>
<td align="left" style="padding: 3px 0px 3px 0px; width: 110px;">E-mail:</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 220px;"><input tabindex="4" type="text" style="width: 208px;" name="email" class="input1"></td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 50px;"> </td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 188px;"> </td>
</tr>
<tr>
<td align="left" style="padding: 3px 0px 3px 0px; width: 110px;">Gentag e-mail:</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 220px;"><input tabindex="5" type="text" style="width: 208px;" name="confirmemail" class="input1"></td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 50px;"> </td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 188px;"> </td>
</tr>
<tr>
<td align="left" style="padding: 3px 0px 3px 0px; width: 110px;">Postnummer:</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 220px;">
<input tabindex="6" type="text" style="width: 50px;" name="p" onblur="fillPn(this.form);" class="input1">
<input type="text" name="b" onfocus="this.blur();" class="input3" readonly>
</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 50px;"> </td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 188px;"> </td>
</tr>
<tr>
<td align="left" style="padding: 3px 0px 3px 0px; width: 110px;">Fødselsdato:</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 220px;">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="left" style="padding-right: 5px;">
<select tabindex="7" size="1" name="dayofbirth" class="input1">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
</td>
<td align="left" style="padding-right: 5px;">
<select tabindex="8" size="1" name="monthofbirth" class="input1">
<option value="01">januar</option>
<option value="02">februar</option>
<option value="03">marts</option>
<option value="04">april</option>
<option value="05">maj</option>
<option value="06">juni</option>
<option value="07">juli</option>
<option value="08">august</option>
<option value="09">september</option>
<option value="10">oktober</option>
<option value="11">november</option>
<option value="12">december</option>
</select>
</td>
<td align="left">
<select tabindex="9" size="1" name="yearofbirth" class="input1">
<option value="2005">2005</option>
..........
<option value="1900">1900</option>
</select>
</td>
</tr>
</table>
</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 50px;"> </td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 188px;"> </td>
</tr>
<tr>
<td align="left" style="padding: 3px 0px 3px 0px; width: 110px;">Jeg er af:</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 220px;">
<select tabindex="10" size="1" name="gender" class="input1">
<option value="female">hunkøn</option>
<option value="male">hankøn</option>
</select>
</td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 50px;"> </td>
<td align="left" style="padding: 3px 0px 3px 0px; width: 188px;"> </td>
</tr>
<tr>
<td align="left" valign="top" style="padding: 3px 0px 3px 0px; width: 110px;">Egen beskrivelse:</td>
<td align="left" style="padding: 3px 0px 3px 0px;" colspan="3">
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%;">
<tr>
<td><textarea tabindex="11" onkeydown="showLenDescription();" onkeyup="showLenDescription();" onchange="showLenDescription();" onfocus="showLenDescription();" onblur="showLenDescription();" name="description" rows="<%=TXTRows%>" cols="<%=TXTCols%>" class="input1"></textarea></td>
<td align="left" valign="top"><input type="text" style="width: 38px;" name="countdowndescription" readonly value="" class="input1"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" colspan="4" style="width: 568px;"><% If Trim(Request.Form("username")) = "" Then %><b><%=msgUsername%></b><% Else %> <% End If %></td>
</tr>
<tr>
<td align="left" colspan="4" style="width: 568px;">
<table border="0" cellpadding="0" cellspacing="0" style="width: 568px;">
<tr>
<td align="left" valign="top" style="width: 5%; padding: 20px 0px 20px 0px;"><input tabindex="12" type="checkbox" name="accept"></td>
<td align="left" style="width: 95%; padding: 20px 0px 20px 0px;">
Jeg har gennemlæst og accepterer <a href="#" onfocus="this.blur();"><b>betingelserne</b></a> for anvendelsen af include.dk.<br>
Samtidigt vedkender jeg mig at have gennemlæst og accepterer følgende:
<a href="#" onfocus="this.blur();" title="Disclaimer" style="display: block; width: 100%;">Disclaimer</a>
<a href="#" onfocus="this.blur();" title="Ophavsrettigheder" style="display: block; width: 100%;">Ophavsrettigheder</a>
<a href="#" onfocus="this.blur();" title="Etikette findes også på Internettet" style="display: block; width: 100%;">Netetikette</a>
</td>
</tr>
<tr>
<td align="left" style="width: 5%;">
<td align="left" style="width: 95%;"><input tabindex="13" type="submit" name="" value="Opret min profil" class="input2"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
Der bliver ikke gemt noget i DB, og der bliver ikke tjekket for, at oplysningerne er korrekte eller mangelfulde. Og der bliver selvfølgelig ikke sendt nogen e-mail. Håber på hjælp snarest
