Jeg har lavet en profil oprettelse side og den virker nu fint men der er lige nogle ting jeg ikke kan få den til.
1: Kigge om alle felter er udfyldt og se om det er et gyldig email adresse og om den er skrevet rigtig 2 gange samt se om username er brugt og om e-mailen har været brugt. Nogle af felterne er drop down box med valg.
2: Når den så har oprettet profilen så skal den sende password og username til den tilmeldte bruger og det gør den også fint men der efter så skal den skrive en besked og så skriver den:
SELECT * FROM member WHERE useremail = 'nnnn';En mail med dit password er send til dig.
Du vil automatisk bliver stillet om til login siden inden for 5 sekuner.
og det er det jeg ikke helt kan forstå at den gør. feltet useremail i databasen er text.
Randomize Str_Password="" For x=1 to 10 Password=Password&Chr(Int(26*rnd)+65) Next Password=Lcase(Password) ' #### END ## Generate random password ####
' #### BEGIN ## If no errors, create account #### If Err_Message="" Then
%> <% function fixString(strInput) if len(strInput) > 0 then outString = replace(strInput,"'","''") fixString = outString else fixString = strInput end if end function
if Request.ServerVariables("REQUEST_METHOD") = "POST" then %> <% Set rs = Server.CreateObject("ADODB.RecordSet")
useremail = fixString(Request.Form("useremail"))
strSQL= "SELECT * FROM member WHERE useremail = '" & useremail & "';"
Response.write strSQL
Set rs = Conn.Execute (strSQL)
if not rs.EOF then 'send password til brugeren Set JMail= Server.CreateObject("JMail.SMTPMail") JMail.ServerAddress = "post1.wendt-net.dk" JMail.Sender = "thai-estate@thai-estate.info" JMail.SenderName = "thai dating" JMail.Subject = "Password til thai estate" JMail.AddRecipient rs("useremail") JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
if len(navn)<3 OR len(navn2)<3 then formvalidate=false html_fejl="Navn for kort" elseif navn<>navn2 then formvalidate=false html_fejl="Navn og navn2 matcher ikke hinanden" end if
if formvalidate then 'opdater 'send mail end if
mhs til en email tjekker googlede jeg en her, kan garanteres findes meget simpler, også i javascript, men det var bare noget af det første der dukkede op:
'******************************************************************* '* emailcheck.inc - JFM - Canvas Interactive ApS. - Version 1.3 * '* Usage: If EmailCheck("jan@canvas.dk",0) Then Mailer.Sendmail * '******************************************************************* Function EmailCheck(Value, ValueMaxLength) If (IsNull(Value)) Or (IsArray(Value)) Then Value = "" If (CharPos(Value)) Or (MaxLength(Value, ValueMaxLength)) Or (CountAts(Value)) Or (IligalChars(Value)) Then EmailCheck = False Else EmailCheck = True End If End Function
Function CharPos(Value) If ((Instr(Value, "@") + 2) > InstrRev(Value, ".")) Or (Instr(Value, "@") <= 1) Or (Instr(Value, ".") <= 1) Or (InstrRev(Value, "@") = Len(Value)) Or (InstrRev(Value, ".") = Len(Value)) Then CharPos = True Else CharPos = False End If End Function
Function MaxLength(Value, ValueMaxLength) If (Len(Value) <= ValueMaxLength) Or (ValueMaxLength = 0) Then MaxLength = False Else MaxLength = True End If End Function
Function CountAts(Value) AtsPos = 1 Count = 0 Do While AtsPos > 0 If Count = 0 Then AtsPos = 0 AtsPos = Instr(AtsPos+1, Value, "@") If AtsPos > 0 Then Count = Count + 1 Loop If Count <> 1 Then CountAts = True Else CountAts = False End Function
Function IligalChars(Value) ValueCopy = Value LegalChars = "abcdefghijklmnopqrstuvwxyz0123456789.@-_" For Counter = 1 To Len(LegalChars) ValueCopy = Replace(ValueCopy,LCase(Mid(LegalChars,Counter,1)),"") ValueCopy = Replace(ValueCopy,UCase(Mid(LegalChars,Counter,1)),"") Next If Len(ValueCopy) = 0 Then IligalChars = False Else IligalChars = True End Function
Så kan den f.eks bruges således:
if not EmailCheck(request.form("email"),0) then formvalidate = false html_fejl = "- Husk at udfylde en korret mail" end if
2)
Den skriver dette fordi du unde rdin sqp har dette
set rs = server.CreateObject("adodb.recordset") sql ="select * from member"
nu indsætter den i databasen og det virker, men om det er den rigtige måde ved jeg ikke.
Jeg ville gerne have at den gå ind og laver et check med asp om username og useremail ikke er i databasen og hvis en af dem er så skal den komme med en fejl og et tilbage link så det kan blive rettet.
alle andre felter skal checkes om de indholder et valg der ikke er: (Choose)
så den står med: <option VALUE="-" selected>(Choose)</option> og dette skal ikke være et valg men kun Female og Male...
Min from ser sådan ud og det er det der skal kigges efter om er udfyld rigtigt med et svar og email og brugernavn ikke er i databasen og er udfyld rigtigt:
<option value="75">75</option> <option value="76">76</option> <option value="77">77</option> <option value="78">78</option> <option value="79">79</option> <option value="80">80 ></option> </select> </div></td> </tr> <tr> <td class="smallredtext"><div align="center">My height is:<br> <select name="height" class="smallgraytext"> <option value="-" selected>(Choose)</option> <option value="140">140 cm (4'7")</option> <option value="141">141 cm (4'8")</option> <option value="142">142 cm (4'8")</option> <option value="143">143 cm (4'8")</option> <option value="144">144 cm (4'9")</option> <option value="145">145 cm (4'9")</option> <option value="146">146 cm (4'9")</option> <option value="147">147 cm (4'10")</option> <option value="148">148 cm (4'10")</option> <option value="149">149 cm (4'11")</option> <option value="150">150 cm (4'11")</option> <option value="151">151 cm (4'11")</option> <option value="152">152 cm (5'0")</option> <option value="153">153 cm (5'0")</option> <option value="154">154 cm (5'1")</option> <option value="155">155 cm (5'1")</option> <option value="156">156 cm (5'1")</option> <option value="157">157 cm (5'2")</option> <option value="158">158 cm (5'2")</option> <option value="159">159 cm (5'3")</option> <option value="160">160 cm (5'3")</option> <option value="161">161 cm (5'3")</option> <option value="162">162 cm (5'4")</option> <option value="163">163 cm (5'4")</option> <option value="164">164 cm (5'5")</option> <option value="165">165 cm (5'5")</option> <option value="166">166 cm (5'5")</option> <option value="167">167 cm (5'6")</option> <option value="168">168 cm (5'6")</option> <option value="169">169 cm (5'7")</option> <option value="170">170 cm (5'7")</option> <option value="171">171 cm (5'7")</option> <option value="172">172 cm (5'8")</option> <option value="173">173 cm (5'8")</option> <option value="174">174 cm (5'9")</option> <option value="175">175 cm (5'9")</option> <option value="176">176 cm (5'9")</option> <option value="177">177 cm (5'10")</option> <option value="178">178 cm (5'10")</option> <option value="179">179 cm (5'10")</option> <option value="180">180 cm (5'11")</option> <option value="181">181 cm (5'11")</option> <option value="182">182 cm (6'0")</option> <option value="183">183 cm (6'0")</option> <option value="184">184 cm (6'0")</option> <option value="185">185 cm (6'1")</option> <option value="186">186 cm (6'1")</option> <option value="187">187 cm (6'2")</option> <option value="188">188 cm (6'2")</option> <option value="189">189 cm (6'2")</option> <option value="190">190 cm (6'3")</option> <option value="191">191 cm (6'3")</option> <option value="192">192 cm (6'4")</option> <option value="193">193 cm (6'4")</option> <option value="194">194 cm (6'4")</option> <option value="195">195 cm (6'5")</option> <option value="196">196 cm (6'5")</option> <option value="197">197 cm (6'6")</option> <option value="198">198 cm (6'6")</option> <option value="199">199 cm (6'6")</option> <option value="200">200 cm (6'7")</option> </select> </div></td> <td class="smallredtext"><div align="center">My weight is:<br> <select name="weight" class="smallgraytext"> <option VALUE="-" selected>(Choose)</option> <option value="35">35 kg (77 lbs)</option> <option value="36">36 kg (79 lbs)</option> <option value="37">37 kg (82 lbs)</option> <option value="38">38 kg (84 lbs)</option> <option value="39">39 kg (86 lbs)</option>
<option value="40">40 kg (88 lbs)</option> <option value="41">41 kg (90 lbs)</option> <option value="42">42 kg (93 lbs)</option> <option value="43">43 kg (95 lbs)</option> <option value="44">44 kg (97 lbs)</option> <option value="45">45 kg (99 lbs)</option>
<option value="46">46 kg (101 lbs)</option> <option value="47">47 kg (104 lbs)</option> <option value="48">48 kg (106 lbs)</option> <option value="49">49 kg (108 lbs)</option> <option value="50">50 kg (110 lbs)</option> <option value="51">51 kg (112 lbs)</option>
<option value="52">52 kg (115 lbs)</option> <option value="53">53 kg (117 lbs)</option> <option value="54">54 kg (119 lbs)</option> <option value="55">55 kg (121 lbs)</option> <option value="56">56 kg (123 lbs)</option> <option value="57">57 kg (126 lbs)</option>
<option value="58">58 kg (128 lbs)</option> <option value="59">59 kg (130 lbs)</option> <option value="60">60 kg (132 lbs)</option> <option value="61">61 kg (134 lbs)</option> <option value="62">62 kg (137 lbs)</option> <option value="63">63 kg (139 lbs)</option>
<option value="64">64 kg (141 lbs)</option> <option value="65">65 kg (143 lbs)</option> <option value="66">66 kg (146 lbs)</option> <option value="67">67 kg (148 lbs)</option> <option value="68">68 kg (150 lbs)</option> <option value="69">69 kg (152 lbs)</option>
<option value="70">70 kg (154 lbs)</option> <option value="71">71 kg (157 lbs)</option> <option value="72">72 kg (159 lbs)</option> <option value="73">73 kg (161 lbs)</option> <option value="74">74 kg (163 lbs)</option> <option value="75">75 kg (165 lbs)</option>
<option value="76">76 kg (168 lbs)</option> <option value="77">77 kg (170 lbs)</option> <option value="78">78 kg (172 lbs)</option> <option value="79">79 kg (174 lbs)</option> <option value="80">80 kg (176 lbs)</option> <option value="81">81 kg (179 lbs)</option>
<option value="82">82 kg (181 lbs)</option> <option value="83">83 kg (183 lbs)</option> <option value="84">84 kg (185 lbs)</option> <option value="85">85 kg (187 lbs)</option> <option value="86">86 kg (190 lbs)</option> <option value="87">87 kg (192 lbs)</option>
<option value="88">88 kg (194 lbs)</option> <option value="89">89 kg (196 lbs)</option> <option value="90">90 kg (198 lbs)</option> <option value="91">91 kg (201 lbs)</option> <option value="92">92 kg (203 lbs)</option> <option value="93">93 kg (205 lbs)</option>
<option value="94">94 kg (207 lbs)</option> <option value="95">95 kg (209 lbs)</option> <option value="96">96 kg (212 lbs)</option> <option value="97">97 kg (214 lbs)</option> <option value="98">98 kg (216 lbs)</option> <option value="99">99 kg (218 lbs)</option>
<option value="100">100 kg (220 lbs)</option> <option value="101">101 kg (223 lbs)</option> <option value="102">102 kg (225 lbs)</option> <option value="103">103 kg (227 lbs)</option> <option value="104">104 kg (229 lbs)</option> <option value="105">105 kg (231 lbs)</option>
<option value="106">106 kg (234 lbs)</option> <option value="107">107 kg (236 lbs)</option> <option value="108">108 kg (238 lbs)</option> <option value="109">109 kg (240 lbs)</option> <option value="110">110 kg (243 lbs)</option> <option value="111">111 kg (245 lbs)</option>
<option value="112">112 kg (247 lbs)</option> <option value="113">113 kg (249 lbs)</option> <option value="114">114 kg (251 lbs)</option> <option value="115">115 kg (254 lbs)</option> <option value="116">116 kg (256 lbs)</option> <option value="117">117 kg (258 lbs)</option>
<option value="118">118 kg (260 lbs)</option> <option value="119">119 kg (262 lbs)</option> <option value="120">120 kg (265 lbs)</option> </select> </div></td> </tr> <tr> <td class="smallredtext"><div align="center">Do you have childen?<br> <select name="childen" class="smallgraytext"> <option VALUE="-" selected>(Choose)</option> <option value="No">No</option> <option value="Yes (Live with)">Yes (Live with)</option> <option value="Yes (Don't live with)">Yes (Don't live with)</option> </select> </div></td> <td class="smallredtext"><div align="center">Do you drink?<br> <select name="drink" class="smallgraytext"> <option VALUE="-">(Choose)</option> <option value="Yes">Yes</option> <option value="No" selected="selected">No</option> </select> </div></td> </tr> <tr> <td colspan="2" class="smallredtext"><div align="center">Write about your self:<br> <textarea name="beskrivelse" cols="61" rows="5" class="smallgraytext" id="beskrivelse"></textarea> <br> <br> </div></td> </tr> <tr> <td colspan="2" class="smallredtext"><div align="center">Write about the person you want to meet:<br> <textarea name="sogerbeskrivelse" cols="61" rows="5" class="smallgraytext" id="sogerbeskrivelse"></textarea> <br> <br> </div></td> </tr> <tr> <td colspan="2" class="smallredtext"><div align="center"><br /> <input name="B1" type="submit" class="smallredtext" value="Signup Now! "> <input name="Cancel" type="reset" class="smallredtext" value="Cancel"> </div></td> </tr> </table> </form>
2.)
Fejlen med:
SELECT * FROM member WHERE useremail = 'nnnn';En mail med dit password er send til dig.
Er rettet og det var jo: Response.write strSQL der ikke skulle være der.. :)
Hvad er problemet helt nøjagtigt? Det ser da fint ud som det er? Giv choose en value på 0, og så skriver den 0 i databasen. Og hvis det så er meningen at det de opretter er en profil som de kan rette i bagefter, så gør du således for at finde ud af om hvilken en de valgte:
Du går til confirmprofile.asp. Det er siden som tjekker om alt er korrekt og hvis det er så sætter dne det ind og sender mail ja?
Hvis ja.
Så inde i din confirmprofile.asp, der gør du bare således mhs til brugernavn:
'sættes i TOPPEN af dokumentet, din connection strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("admin/member.mdb") set rs = Server.CreateObject("ADODB.Connection") Conn.Open strDSN
sql="Select useremail,username from member" set rs=conn.Execute(sql) if not rs.eof then member_array=rs.getrows() member_max=UBound(kat_array, 2) end if
for a=1 to member_max if username=member_array(1,a) fejl_username=1 elseif useremail=member_array(0,a) fejl_useremail=1 else 'nada end if next
'dette her siger dig hvorvidt fejlen skal lyde ved navn if fejl_username=1 then htmlUsername_fejl=1 response.redirect("dinprofilside.asp?username_fejl=1") else 'nada end if
'dette her siger dig hvorvidt fejlen skal lyde ved email if fejl_useremail=1 then htmlUseremail_fejl=1 response.redirect("dinprofilside.asp?useremail_fejl=1") else 'nada end if
'så på din profilside, kan du gøre såldes for at gøre opmærksom på dette:
if request.querystring("username_fejl")=1 then response.write "ERROR WITH USERNAME"
osv.
Håber det gav dig lidt inspiration til hvordan det kunne gøres eventuelt. Dert er mange andre måder at gøre det på også.
Ellers kig på min første post, den forklarer også lidt bagom det.
Hvis du stadig ikke helt kan finde ud af det, så post koden fra din profilside 100% uden kommentarer, og din kode fra confirmlogin.asp 100% uden kommentarer, og derefter forklar mig hvorledes du gerne vil have det og hvor fejlene er.
PS:
alle de dropdowns, de kommer forhåbeligt fra en database? Ellers er det meget arbejde at skrive det ind er det ikke:>
sql="Select useremail,username from member" set rs=conn.Execute(sql) if not rs.eof then member_array=rs.getrows() member_max=UBound(kat_array, 2) end if
for a=1 to member_max if username=member_array(1,a) Then fejl_username=1 elseif useremail=member_array(0,a) Then fejl_useremail=1 else 'nada end if next
'dette her siger dig hvorvidt fejlen skal lyde ved navn if fejl_username=1 then htmlUsername_fejl=1 response.redirect("signup.asp?username_fejl=1") else 'nada end if
'dette her siger dig hvorvidt fejlen skal lyde ved email if fejl_useremail=1 then htmlUseremail_fejl=1 response.redirect("signup.asp?useremail_fejl=1") else 'nada end if
sql="Select useremail,username from member" set rs=conn.Execute(sql) if not rs.eof then member_array=rs.getrows() member_max=UBound(kat_array, 2) end if
Skal ændres til
sql="Select useremail,username from member" set rs=conn.Execute(sql) if not rs.eof then member_array=rs.getrows() member_max=UBound(member_array, 2) end if
Hvor mange ved jeg ikke, men hvis det er et stort firma eller der forventes MANGE brugere, ville jeg bruge MS SQl. Men access er ok til små, eller sider hvor trafikken ikke er voldsom.
Synes godt om
Ny brugerNybegynder
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.