/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
FOR - NEXT fejl
Fra : Karsten Krambs


Dato : 19-08-04 13:01

Jeg har sat line length op, så koden er lettere at læse, måske introducerer
jeg andre morsomheder herved, i såfald undskyld. Følgende kode skal
sende en mail til en bruger ved aktivering. Jeg vil så gerne lige sende
brugerens passeword med, og iøvrigt lige resette til et tilfældig værdi.
Det har jeg gjort ved at tilføje koden mellem KARSTEN START og KARSTEN END.
Jeg har også flyttet rsCommon.update til efter nyt password oprettelse.
I selve mail har jeg også tilføjet at password bliver medsendt.

Uden min rettelse kører det fino - med min rettelse for jeg fejlen mht
den sidste next:

Microsoft VBScript compilation error '800a041f'
Unexpected 'Next'
/registration.asp, line 69
Next
^


*******************
KODE
*******************


If RemoveAllTags(Trim(request.form("action"))) = "approve" Then
   arrChecks = Split(Request.Form("chkApprove"),",")
   For counter = 0 to Ubound(arrChecks)
      strSQL = "SELECT TOP 1 " & strDBTable & "Author.* FROM " & strDbTable & "Author WHERE " & strDbTable & "Author.Author_ID=" & checkInt(arrChecks(counter))
      rsCommon.CursorType = 2
      rsCommon.LockType = 3
      rsCommon.Open strSQL, adoCon
      If Not rsCommon.EOF Then
         rsCommon.Fields("Active") = 1
         'rsCommon.Update KARSTEN DELETE, UPDATE LATER
         if blnRegApprove Then   
            '*************************************************************'
            'KARSTEN START change password before mailing
            'Make a new password
            '*************************************************************'
            'Read in the users email address from the recordset
            strEmailAddress = rsCommon("Author_email")
               'If there is a password in the db to send to change the password and email the user
               If NOT strEmailAddress = "" Then
                  'Genrate a new user code for the user
                  strUserCode = userCode(rsCommon("Username"))
                  'Generate a new password using an 8 character long hex values
                  strPassword = hexValue(8)
                     'If pass is to be encrypted then do so
                     If blnEncryptedPasswords Then
                        'Create a salt value for the new password
                        strSalt = getSalt(8)
                        'Concatenate salt value to the password
                        strEncyptedPassword = LCase(strPassword) & strSalt
                        'Encrypt the password
                        strEncyptedPassword = HashEncode(strEncyptedPassword)
                     'Else the password is not to be encrypted
                     Else
                        strEncyptedPassword = LCase(strPassword)
                     End If
                     'Save new password back to the database with the salt
                     rsCommon.Fields("Password") = strEncyptedPassword
                     rsCommon.Fields("Salt") = strSalt         
                     rsCommon.Fields("User_code") = strUserCode      
                     'Update the database with the new password
                     rsCommon.Update
            '*************************************************************'
            'KARSTEN END change password before mailing
            '*************************************************************'
                     strEmailBody = strTxtHi & " " & decodeString(rsCommon("username"))
                     strEmailBody = strEmailBody & vbCrLf & vbCrLf & strTxtEmailThankYouForRegistering & " " & strMainForumName & "."
                     strEmailBody = strEmailBody & vbCrLf & vbCrLf & strTxtRegApprovedDet
                     strEmailBody = strEmailBody & vbCrLf & vbCrLf & strTxtEmailYouCanNowUseTheForumAt & " " & strWebsiteName & " " & strTxtEmailForumAt & " " & strForumPath
                     'START KARSTEN SENDING THE NEW PASSWORD WITH MAIL
                     strEmailBody = strEmailBody & vbCrLf & vbCrLf & strTxtEmailPasswordRequest2 & " " & strPassword
                     'END KARSTEN SENDING THE NEW PASSWORD WITH MAIL
                     blnSentEmail = SendMail(strEmailBody, decodeString(rsCommon("username")), decodeString(rsCommon("Author_email")), strMainForumName, decodeString(strForumEmailAddress), strTxtRegApproved, strMailComponent, false)
               End If   
         End If   
         rsCommon.close()
   Next   
End If

 
 
Jens Gyldenkærne Cla~ (19-08-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-08-04 13:37

Karsten Krambs skrev:

> Uden min rettelse kører det fino - med min rettelse for jeg
> fejlen mht den sidste next:

Godt - så ligger fejlen i det du tilføjer.


Jeg klipper lidt i din kode, så problemet kommer frem


> 'KARSTEN START

Her starter din tilføjelse.

>    If NOT strEmailAddress = ""

Her starter du en if-sætning.


>    If blnEncryptedPasswords Then

Her starter du en mere.


>    End If

Her slutter du den sidste if-sætning.


> 'KARSTEN END change password before
> mailing


Og her slutter dine ændringer.


Summa summarum - i din tilføjede kode begynder du to if-sætninger,
men afslutter kun den ene. Derfor bliver parseren overrasket over
at se Next længere nede - for den er stadig "inde" i den ene af
dine if-sætninger.


NB: De lange linjer er o.k. at læse (i mit program, måske ikke i
andres) - men de er svære at citere ordentligt. Overvej at lægge
koden op online i stedet (lav en tekstkopi af asp-koden så man kan
se den igennem).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Karsten Krambs (19-08-2004)
Kommentar
Fra : Karsten Krambs


Dato : 19-08-04 14:19

> Derfor bliver parseren overrasket over
>at se Next længere nede - for den er stadig "inde" i den ene af
>dine if-sætninger.

fxxk! en ringe fejl

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste