<% Option Explicit %> <% '**************************************************************************************** '** Copyright Notice '** '** Web Wiz Mailing List '** http://www.webwizmailinglist.com '** '** Copyright 2002-2006 Web Wiz. All Rights Reserved. '** '** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'. '** '** IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE '** THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE '** AND DERIVATIVE WORKS IMMEDIATELY. '** '** If you have not received a copy of the license with this work then a copy of the latest '** license contract can be found at:- '** '** http://www.webwizguide.com/license '** '** For more information about this software and for licensing information please contact '** 'Web Wiz' at the address and website below:- '** '** Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England '** http://www.webwizguide.com '** '** Removal or modification of this copyright notice will violate the license contract. '** '**************************************************************************************** 'Make the session timeout 20 minutes (this is overridden in a few files) Session.Timeout = 20 Dim adoCon 'Database Connection Variable Dim strAccessDB 'Holds the Access Database Name Dim rsCommon 'Holds the configuartion recordset Dim strCon 'Holds the Database driver and the path and name of the database Dim strSQL 'Holds the SQL query for the database Dim strWebsiteName 'Holds the website name Dim strWebsiteAddress 'Holds the website URL and path to the script Dim strWebsiteEmailAddress 'Holds the forum e-mail address Dim strTestEmailAddress 'holds the e-mail address the preview e-mail is sent to Dim strMailComponent 'Email coponent the mailing list useses Dim strMailServer 'Website's outgoing SMTP mail server Dim strMailServerUser 'SMTP server user name Dim strMailServerPass 'SMTP server password Dim blnLCode 'set to true Dim strWelcomeEmailSub 'Holds the subject of the welcome email Dim strWelcomeEmailHTML 'Holds the welcome message that is sent to users (HTML format) Dim strWelcomeEmailText 'Holds the welcome message that is sent to users (plain text format) Dim strDbPathAndName 'Holds the path and name to the database Dim blnActivate 'Set to true if email activation is enabled Dim blnPlainTextOption 'Set to true if the user has a choice of a plain text email format Dim blnEncryptPasswords 'Set to true if passwords are encrypted Dim blnJoinNotify 'Set to true if the admin wants to be notifies of new subscriptions Dim blnRemoveNotify 'Set to trus if the admin wants to be notified of poeple leaving Dim strTitleImage 'Holds the location of the title image Dim strUploadComponent 'Holds the upload component Dim strFileUploadPath 'Holds the upload path Dim strFileTypes 'Holds the upload file types Dim strImageTypes 'Holds the upload image types Dim strDBFalse 'Holds the fales database value Dim strDBTrue 'Holds the true database value Dim strDatabaseDateFunction 'Holds the date function Dim strPrivacyStatment 'Holds the privacy statment for the mailing list Dim strSignature 'Holds custom signature Dim blnAbout 'Initiliase varibales Const strVersion = "4.7" '***** START WARNING - REMOVAL OR MODIFICATION OF THIS CODE WILL VIOLATE THE LICENSE AGREEMENT ****** Const strSalt = "5CB237B1D85" Const strCodeField = "L_code" Const intRelayType = 50 '***** END WARNING - REMOVAL OR MODIFICATION OF THIS CODE WILL VIOLATE THE LICENSE AGREEMENT ****** 'Set up the database table name prefix Const strDbTable = "tblML" 'Database Type Const strDatabaseType = "Access" 'Const strDatabaseType = "SQLServer" 'Create database connection 'Create a connection odject Set adoCon = Server.CreateObject("ADODB.Connection") 'If this is access set the access driver If strDatabaseType = "Access" Then '--------------------- Set the path and name of the database -------------------------------------------------------------------------------- 'Virtual path to database 'strDbPathAndName = Server.MapPath("database/mailing_list.mdb") 'This is the path of the database from this files location on the server 'Physical path to database strDbPathAndName = " E:\www\w\wholehealthconnectioncom\fpdb\mailing_list.mdb" 'Use this if you use the physical server path, eg:- C:\Inetpub\private\mailing_list.mdb 'PLEASE NOTE: - For extra security it is highly recommended you change the name of the database, mailing_list.mdb, to another name and then 'replace the wwForum.mdb found above with the name you changed the forum database to. '--------------------------------------------------------------------------------------------------------------------------------------------- '------------- If you are having problems with the script then try using a diffrent driver or DSN by editing the lines below -------------- 'Database connection info and driver (if this driver does not work then comment it out and use one of the alternative drivers) 'strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & strDbPathAndName 'Alternative drivers faster than the generic one above 'strCon = "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & strDbPathAndName 'This one is if you convert the database to Access 97 strCon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strDbPathAndName 'This one is for Access 2000/2002 'If you wish to use DSN then comment out the driver above and uncomment the line below (DSN is slower than the above drivers) 'strCon = "DSN=DSN_NAME" 'Place the DSN where you see DSN_NAME '--------------------------------------------------------------------------------------------------------------------------------------------- 'The now() function is used in Access for dates strDatabaseDateFunction = "Now()" 'Set true and false strDBFalse = "false" strDBTrue = "true" 'Else set the MS SQL server stuff Else %><% '**************************************************************************************** '** Copyright Notice '** '** Web Wiz Mailing List '** http://www.webwizmailinglist.com '** '** Copyright 2002-2006 Web Wiz. All Rights Reserved. '** '** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'. '** '** IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE '** THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE '** AND DERIVATIVE WORKS IMMEDIATELY. '** '** If you have not received a copy of the license with this work then a copy of the latest '** license contract can be found at:- '** '** http://www.webwizguide.com/license '** '** For more information about this software and for licensing information please contact '** 'Web Wiz' at the address and website below:- '** '** Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England '** http://www.webwizguide.com '** '** Removal or modification of this copyright notice will violate the license contract. '** '**************************************************************************************** Dim strSQLServerName 'Holds the name of the SQL Server Dim strSQLDBUserName 'Holds the user name (for SQL Server Authentication) Dim strSQLDBPassword 'Holds the password (for SQL Server Authentication) Dim strSQLDBName 'Holds name of a database on the server '------------- The Driver Below is if you are using SQL Server (Do Not Use Unless you know and have an SQL Server) --------------------------- 'Enter the details of your SQL server below strSQLServerName = "" 'Holds the name of the SQL Server (This is the name/location or IP address of the SQL Server) strSQLDBUserName = "" 'Holds the user name (for SQL Server Authentication) strSQLDBPassword = "" 'Holds the password (for SQL Server Authentication) strSQLDBName = "" 'Holds name of a database on the server 'Please note the forum has been optimised for the SQL OLE DB Driver using another driver 'or system DSN to connect to the SQL Server database will course errors in the forum and 'drastically reduce the performance of the forum! 'The SQLOLEDB driver offers the highest performance at this time for connecting to SQL Server databases from within ASP. 'MS SQL Server OLE Driver (If you change this string make sure you also change it in the msSQL_server_setup.asp file when creating the database) strCon = "Provider=SQLOLEDB;Server=" & strSQLServerName & ";User ID=" & strSQLDBUserName & ";Password=" & strSQLDBPassword & ";Database=" & strSQLDBName & ";Connection Timeout=90;" '--------------------------------------------------------------------------------------------------------------------------------------------- %><% 'The GetDate() function is used in SQL Server strDatabaseDateFunction = "GetDate()" 'Set true and false strDBFalse = 0 strDBTrue = 1 End If adoCon.connectionstring = strCon 'Set an active connection to the Connection object adoCon.Open 'Read in the mailing list configuration 'Intialise the ADO recordset object Set rsCommon = Server.CreateObject("ADODB.Recordset") 'Initialise the SQL variable with an SQL statement to get the configuration details from the database strSQL = "SELECT " & strDbTable & "Configuration.* From " & strDbTable & "Configuration;" 'Query the database rsCommon.Open strSQL, adoCon 'If there is config deatils in the recordset then read them in If NOT rsCommon.EOF Then 'Read in the configuration details from the recordset strWebsiteName = rsCommon("Website_name") strWebsiteAddress = rsCommon("Website_address") strWebsiteEmailAddress = rsCommon("Website_email_address") strTestEmailAddress = rsCommon("Test_email_address") strTitleImage = rsCommon("Title_image") strMailComponent = rsCommon("Mail_component") strMailServer = rsCommon("Mail_server") strMailServerUser = rsCommon("Mail_username") strMailServerPass = rsCommon("Mail_password") strWelcomeEmailSub = rsCommon("Welcome_email_subject") strWelcomeEmailHTML = rsCommon("Welcome_email_HTML") strWelcomeEmailText = rsCommon("Welcome_email_text") blnLCode = CBool(rsCommon("L_code")) blnActivate = CBool(rsCommon("Activate")) blnPlainTextOption = CBool(rsCommon("PlainText_Option")) blnEncryptPasswords = CBool(rsCommon("Encrypt_passwords")) blnJoinNotify = CBool(rsCommon("Join_notify")) blnRemoveNotify = CBool(rsCommon("Remove_notify")) strUploadComponent = rsCommon("Upload_component") strImageTypes = rsCommon("Upload_img_types") strFileUploadPath = rsCommon("Upload_path") strFileTypes = rsCommon("Upload_files_type") strPrivacyStatment = rsCommon("Privacy") strSignature = rsCommon("Signature") End If 'Reset server object rsCommon.Close blnAbout = blnLCode %><% '**************************************************************************************** '** Copyright Notice '** '** Web Wiz Mailing List '** http://www.webwizmailinglist.com '** '** Copyright 2002-2006 Web Wiz. All Rights Reserved. '** '** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'. '** '** IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE '** THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE '** AND DERIVATIVE WORKS IMMEDIATELY. '** '** If you have not received a copy of the license with this work then a copy of the latest '** license contract can be found at:- '** '** http://www.webwizguide.com/license '** '** For more information about this software and for licensing information please contact '** 'Web Wiz' at the address and website below:- '** '** Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England '** http://www.webwizguide.com '** '** Removal or modification of this copyright notice will violate the license contract. '** '**************************************************************************************** '****************************************** '*** Unsafe character Strip **** '****************************************** 'Function to strip non alphanumeric characters email addresses Private Function characterStrip(ByVal strTextInput) 'Dimension variable Dim intLoopCounter 'Holds the loop counter 'Loop through the ASCII characters For intLoopCounter = 0 to 37 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the ASCII characters For intLoopCounter = 39 to 44 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the ASCII characters numeric characters to lower-case characters For intLoopCounter = 65 to 94 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the extended ASCII characters For intLoopCounter = 123 to 125 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the extended ASCII characters For intLoopCounter = 127 to 255 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Strip individul ASCII characters left out from above strTextInput = Replace(strTextInput, CHR(59), "", 1, -1, 0) strTextInput = Replace(strTextInput, CHR(60), "", 1, -1, 0) strTextInput = Replace(strTextInput, CHR(62), "", 1, -1, 0) strTextInput = Replace(strTextInput, CHR(96), "", 1, -1, 0) 'Return the string characterStrip = strTextInput End Function 'Function to strip non alphanumeric characters from user ID's Private Function IDcharacterStrip(ByVal strTextInput) 'Only allows 1 to 9, A to F, and Z 'Dimension variable Dim intLoopCounter 'Holds the loop counter 'Loop through the ASCII characters For intLoopCounter = 0 to 47 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the ASCII characters For intLoopCounter = 58 to 64 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the ASCII characters numeric characters to lower-case characters For intLoopCounter = 71 to 89 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the extended ASCII characters For intLoopCounter = 91 to 255 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Return the string IDcharacterStrip = strTextInput End Function '****************************************** '*** Random Hex Generator **** '****************************************** Private Function hexValue(ByVal intHexLength) Dim intLoopCounter Dim strHexValue 'Randomise the system timer Randomize Timer() 'Generate a hex value For intLoopCounter = 1 to intHexLength 'Genreate a radom decimal value form 0 to 15 intHexLength = CInt(Rnd * 1000) Mod 16 'Turn the number into a hex value Select Case intHexLength Case 1 strHexValue = "1" Case 2 strHexValue = "2" Case 3 strHexValue = "3" Case 4 strHexValue = "4" Case 5 strHexValue = "5" Case 6 strHexValue = "6" Case 7 strHexValue = "7" Case 8 strHexValue = "8" Case 9 strHexValue = "9" Case 10 strHexValue = "A" Case 11 strHexValue = "B" Case 12 strHexValue = "C" Case 13 strHexValue = "D" Case 14 strHexValue = "E" Case 15 strHexValue = "F" Case Else strHexValue = "Z" End Select 'Place the hex value into the return string hexValue = hexValue & strHexValue Next End Function '********************************************* '*** Strip all tags ***** '********************************************* 'Remove all tags for text only display Private Function removeAllTags(ByVal strInputEntry) 'Remove all HTML scripting tags etc. for plain text output strInputEntry = Replace(strInputEntry, "<", "<", 1, -1, 1) strInputEntry = Replace(strInputEntry, ">", ">", 1, -1, 1) strInputEntry = Replace(strInputEntry, "'", "’", 1, -1, 1) strInputEntry = Replace(strInputEntry, """", """, 1, -1, 1) 'Return removeAllTags = strInputEntry End Function '****************************************** '*** HTML Decoder **** '****************************************** 'Decode encoded strings Private Function decodeString(ByVal strInputEntry) 'Remove malisous charcters from links and images strInputEntry = Replace(strInputEntry, "=", "=", 1, -1, 0) strInputEntry = Replace(strInputEntry, "a", "a", 1, -1, 0) strInputEntry = Replace(strInputEntry, "b", "b", 1, -1, 0) strInputEntry = Replace(strInputEntry, "c", "c", 1, -1, 0) strInputEntry = Replace(strInputEntry, "d", "d", 1, -1, 0) strInputEntry = Replace(strInputEntry, "e", "e", 1, -1, 0) strInputEntry = Replace(strInputEntry, "f", "f", 1, -1, 0) strInputEntry = Replace(strInputEntry, "g", "g", 1, -1, 0) strInputEntry = Replace(strInputEntry, "h", "h", 1, -1, 0) strInputEntry = Replace(strInputEntry, "i", "i", 1, -1, 0) strInputEntry = Replace(strInputEntry, "j", "j", 1, -1, 0) strInputEntry = Replace(strInputEntry, "k", "k", 1, -1, 0) strInputEntry = Replace(strInputEntry, "l", "l", 1, -1, 0) strInputEntry = Replace(strInputEntry, "m", "m", 1, -1, 0) strInputEntry = Replace(strInputEntry, "n", "n", 1, -1, 0) strInputEntry = Replace(strInputEntry, "o", "o", 1, -1, 0) strInputEntry = Replace(strInputEntry, "p", "p", 1, -1, 0) strInputEntry = Replace(strInputEntry, "q", "q", 1, -1, 0) strInputEntry = Replace(strInputEntry, "r", "r", 1, -1, 0) strInputEntry = Replace(strInputEntry, "s", "s", 1, -1, 0) strInputEntry = Replace(strInputEntry, "t", "t", 1, -1, 0) strInputEntry = Replace(strInputEntry, "u", "u", 1, -1, 0) strInputEntry = Replace(strInputEntry, "v", "v", 1, -1, 0) strInputEntry = Replace(strInputEntry, "w", "w", 1, -1, 0) strInputEntry = Replace(strInputEntry, "x", "x", 1, -1, 0) strInputEntry = Replace(strInputEntry, "y", "y", 1, -1, 0) strInputEntry = Replace(strInputEntry, "z", "z", 1, -1, 0) strInputEntry = Replace(strInputEntry, "A", "A", 1, -1, 0) strInputEntry = Replace(strInputEntry, "B", "B", 1, -1, 0) strInputEntry = Replace(strInputEntry, "C", "C", 1, -1, 0) strInputEntry = Replace(strInputEntry, "D", "D", 1, -1, 0) strInputEntry = Replace(strInputEntry, "E", "E", 1, -1, 0) strInputEntry = Replace(strInputEntry, "F", "F", 1, -1, 0) strInputEntry = Replace(strInputEntry, "G", "G", 1, -1, 0) strInputEntry = Replace(strInputEntry, "H", "H", 1, -1, 0) strInputEntry = Replace(strInputEntry, "I", "I", 1, -1, 0) strInputEntry = Replace(strInputEntry, "J", "J", 1, -1, 0) strInputEntry = Replace(strInputEntry, "K", "K", 1, -1, 0) strInputEntry = Replace(strInputEntry, "L", "L", 1, -1, 0) strInputEntry = Replace(strInputEntry, "M", "M", 1, -1, 0) strInputEntry = Replace(strInputEntry, "N", "N", 1, -1, 0) strInputEntry = Replace(strInputEntry, "O", "O", 1, -1, 0) strInputEntry = Replace(strInputEntry, "P", "P", 1, -1, 0) strInputEntry = Replace(strInputEntry, "Q", "Q", 1, -1, 0) strInputEntry = Replace(strInputEntry, "R", "R", 1, -1, 0) strInputEntry = Replace(strInputEntry, "S", "S", 1, -1, 0) strInputEntry = Replace(strInputEntry, "T", "T", 1, -1, 0) strInputEntry = Replace(strInputEntry, "U", "U", 1, -1, 0) strInputEntry = Replace(strInputEntry, "V", "V", 1, -1, 0) strInputEntry = Replace(strInputEntry, "W", "W", 1, -1, 0) strInputEntry = Replace(strInputEntry, "X", "X", 1, -1, 0) strInputEntry = Replace(strInputEntry, "Y", "Y", 1, -1, 0) strInputEntry = Replace(strInputEntry, "Z", "Z", 1, -1, 0) strInputEntry = Replace(strInputEntry, "0", "0", 1, -1, 0) strInputEntry = Replace(strInputEntry, "1", "1", 1, -1, 0) strInputEntry = Replace(strInputEntry, "2", "2", 1, -1, 0) strInputEntry = Replace(strInputEntry, "3", "3", 1, -1, 0) strInputEntry = Replace(strInputEntry, "4", "4", 1, -1, 0) strInputEntry = Replace(strInputEntry, "5", "5", 1, -1, 0) strInputEntry = Replace(strInputEntry, "6", "6", 1, -1, 0) strInputEntry = Replace(strInputEntry, "7", "7", 1, -1, 0) strInputEntry = Replace(strInputEntry, "8", "8", 1, -1, 0) strInputEntry = Replace(strInputEntry, "9", "9", 1, -1, 0) 'Return decodeString = strInputEntry End Function %><% '**************************************************************************************** '** Copyright Notice '** '** Web Wiz Mailing List '** http://www.webwizmailinglist.com '** '** Copyright 2002-2006 Web Wiz. All Rights Reserved. '** '** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'. '** '** IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE '** THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE '** AND DERIVATIVE WORKS IMMEDIATELY. '** '** If you have not received a copy of the license with this work then a copy of the latest '** license contract can be found at:- '** '** http://www.webwizguide.com/license '** '** For more information about this software and for licensing information please contact '** 'Web Wiz' at the address and website below:- '** '** Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England '** http://www.webwizguide.com '** '** Removal or modification of this copyright notice will violate the license contract. '** '**************************************************************************************** '*********************************** '**** Mailing List Language **** '*********************************** 'Global '--------------------------------------------------------------------------------- Const strTxtMailingList = "Mailing List" Const strTxtThen = "then" Const strTxtClickhere = "click here" Const strTxtReturnToLogin = "Return to login" Const strTxtHi = "Hi" Const strTxtGreetingsFrom = "Greetings from" Const strTxtAllFieldsAreRequired = "all fields are required" Const strTxtName = "Name" Const strTxtEmail = "Email" Const strTxtPassword = "Password" Const strTxtEmailAddress = "Email Address" Const strTxtHTML = "HTML" Const strTxtPlainText = "Plain Text" Const strTxtIfYouWouldLikeToMakeChagesToYourMailingListAccountOrUnsubscribe = "If you would like to make changes to your mailing list account, or unsubscribe" Const strTxtToUnsubscribeOrChangePref = "To unsubscribe or change your preferences goto the Mailing List Management Centre at the following address" Const strTxtCookiesEnabled = "Please ensure cookies are enabled on your web browser" Const strTxtNoMessageError = "Message Box \t\t- Enter a Message to Submit" Const strTxtErrorDisplayLine = "_______________________________________________________________" Const strTxtErrorDisplayLine1 = "The form has not been submitted because there are problem(s) with the form." Const strTxtErrorDisplayLine2 = "Please correct the problem(s) and re-submit the form." Const strTxtErrorDisplayLine3 = "The following field(s) need to be corrected: -" 'default.asp '--------------------------------------------------------------------------------- Const strTxtWelcomeTo = "Welcome to" Const strTxtAsASubscriberYouWillAccessEmailNewsletters = "As a subscriber, you will have full access to all of our Email Newsletters" Const strTxtYoullAlsoBeAbleTo = "You'll also be able to" Const strTxtManageMailingListSubscriptions = "Manage Mailing List Subscriptions" Const strTxtMakeChangesToYourAccount = "Make changes to your account" Const strTxtUnsubscribeFrom = "Unsubscribe from" Const strTxtViewSentNewsletters = "View Archived Newsletters" Const strTxtView = "View" Const strTxtExistingSubscribersPleaseLogin = "Existing Subscribers please login" Const strTxtSigningUpIsQuickEasyAndFREE = "Signing up is quick, easy and FREE" Const strTxtJustClickTheButtonBelow = "Just Click the button below" Const strTxtOpenNewAccount = "Open New Account" Const strTxtExistingSubscribersEnterYourLoginDetailsBelow = "Existing Subscribers enter your login details below" Const strTxtForgottenYourPassword = "Forgotten your password" Const strTxtAutoLogin = "Auto Login" Const strTxtYes = "Yes" Const strTxtNo = "No" Const strTxtLoginToMyAccount = "Login To My Account" Const strTxtPleaseConfirmTheEmailAddressAndPasswordYouHaveEnteredAndTryAgainOr = "Please confirm the email address and password you have entered and try again or " Const strTxtToSignupAsANewMember = "to sign up as a new member" Const strTxtMailingListLogin = "Mailing List Login" Const strTxtPassworEnterYourPassword = "Password \t- Enter your Password" 'privacy.asp '--------------------------------------------------------------------------------- Const strTxtPrivacyStatement = "Privacy Statement" Const strTxtIfYouWouldLikeToCreateEditOrCloseAMailingListAccountWith = "If you would like to Create, Edit, or Close a Mailing List account with" 'forgot_password.asp '--------------------------------------------------------------------------------- Const strTxtEmailAddressEnterYourValidEmailAddress = "Email Address\t- Enter your valid email address" Const strTxtForgottenPassword = "Forgotten Password" Const strTxtTheEmailAddressEnteredCouldNotBeFound = "The Email address entered could not be found" Const strTxtPleaseConfirmTheEmailAddressYouEnteredOrClick = "Please confirm the email address you entered or click" Const strTxtNewPasswordRequest = "New Password Request" Const strTxtANewPasswordHasBeenEmailedToYou = "A new Password has been emailed to you" Const strTxtPleaseCheckYourEmailInboxForAMessageWithTheSubjectLine = "Please check your email inbox for a message with the subject line" Const strTxtPleasEnterYourEmailAddressYouUseForTheMailingListToRequestPassword = "Please enter your email address you use for the mailing list to request a new password via email" Const strTxtWeReceivedYourRequestForANewPassswordForTheMailingListOn = "We received your request for a new password for the mailing list on" Const strTxtYourNewPasswordIs = "Your new password is" Const strTxtToLoginIntoYourMailingListAccountClickOnTheAddressBelow = "To login into your mailing list account click on the address below" 'sign_up.asp '--------------------------------------------------------------------------------- Const strTxtWeReceivedYourRequestToSubscribe = "We received your request to subscribe to one or more categories on the" Const strTxtToActivateYourSubscriptionClickTheAddressBelow = "To activate your subscription click the address below" Const strTxtIfYouDidNotSubscribe = "If you did not subscribe or this email is in error, then please just ignore it, you need do nothing more" Const strTxtThankYouForYourInterest = "Thank-you for your interest" Const strTxtNameEnterYourName = "Name \t\t- Enter your name" Const strTxtPasswordYourPasswordMustB4Characters = "Password \t- Your Password must be at least 4 characters" Const strTxtPasswordErrorPasswordsDoNotMatch = "Password Error\t- The passwords entered do not match" Const strTxtCreateAccount = "Create Account" Const strTxtYourSubscriptionRequestCouldNotBeProcessed = "Your subscription request could not be processed" Const strTxtEmailAdressNotValid = "The email address you entered is not valid! Please enter a valid email address" Const strTxtTheEmailAddressOrDomainEntered = "The email address or email domain you entered" Const strTxtIsNotPermittedPleaseEnterNew = "is not permitted. Please enter a different email address" Const strTxtTheEmailAddressYouEntered = "The email address you entered" Const strTxtIsAlreadySubscribedPlease = "is already subscribed. Please" Const strTxtToLogInWithThisAddressToEditAccount = "to log in with this address to view and edit your account" Const strTxtPleaseEnterAValidName = "Please enter a valid name" Const strTxtPleaseEnterAValidPassword = "Please enter a valid password" Const strTxtNewAccountDetails = "New Account Details" Const strTxtPleaseRegisterToActivateYourMailingListSubscription = "Please register to activate your mailing list subscription. You will periodically be notified of important " Const strTxtFeaturesAndNewsYouCanUnsubscribe = "features and news. Naturally, you can unsubscribe from the mailing list at any time" Const strTxtConfirmPassword = "Confirm Password" Const strTxtEmailDeliveryFormat = "Email Delivery Format" Const strTxtCategories = "Categories" Const strTxtPleaseSelectFromTheListBelowWhich = "Please select from the list below which" Const strTxtCatsYouAreInterestedIn = "mailing list categories that you are interested in. Select as many categories as you wish. You can modify your profile at any time to change your subscriptions" Const strTxtCreateMyAccount = "Create My Account" 'activate_confirm.asp '--------------------------------------------------------------------------------- Const strTxtConfirmSubscription = "Confirm Subscription" Const strTxtIMPORTANTConfirmYourSubscription = "IMPORTANT: Confirm Your Subscription" Const strTxtThankYouForYourInterestIn = "Thank-you for your interest in" Const strTxtThereIsOneMoreStepToComplete = "mailing list. There is one more step before your subscription is complete" Const strTxtConformYourSubscriptionToMailingList = "Confirm your subscription to mailing list" Const strTxtSimplyClickTheLinkInsideThisEmailToAct = "Simply click the link inside this email to activate your subscription" Const strTxtWeRequireThisStepToProtectOurMembers = "We require this email step to protect our members" Const strTxtYouWillNotBeSubscribedTillThisStepIsComplete = "You will not be subscribed until you complete this step" 'activate.asp '--------------------------------------------------------------------------------- Const strTxtSubscriptionActivated = "Subscription Activated" Const strTxtAdmin = "Admin" Const strTxtThisEmailIsToNotifyYouThatTheFollowingPersonHasSubscribedToThe = "This email is to notify you that the following person has subscribed to the" Const strTxtActivateSubscription = "Activate Subscription" Const strTxtThankYouForJoining = "Thank-you for joining" Const strTxtYourSubscriptionTo = "Your subscription to" Const strTxtMailingListIsNow = "mailing list is now" Const strTxtReActivated = "re-activated" Const strTxtActive = "active" Const strTxtThankYouForYourInterestInJoining = "Thank-you for your interest in joining" Const strTxtAnErrorHasOccurred = "An Error has occurred" Const strTxtThereWhereProblemsActivatingYourAccount = "There was a problem activating your account.
Please contact the" Const strTxtAdministratorAt = "administrator at" Const strTxtToHaveYourAccountActivated = "to have your account activated" 'management_centre.asp '--------------------------------------------------------------------------------- Const strTxtReConfirmYourSubscriptionTo = "Re-Confirm Your Subscription To" Const strTxtYouHaveSucessfullyChangedYour = "You have successfully changed your" Const strTxtPreferences = "preferences" Const strTxtAsYourEmailAddressHasCHangedYouWillNeedToReactivateYourAccount = "As your email address has been changed you will need to re-activate your subscription by clicking the address below" Const strTxtMailingListPreferencesUpdated = "Mailing List Preferences Updated" Const strTxtIfYouWouldLikeToChangeYourPreferencesAgain = "If you would like to change your preferences again, you may do so through the Mailing List Management Centre at the following address" Const strTxtNew = "New" Const strTxtCurrentPasswordEnterCurrentPassword = "Current Password \t- Enter your Current Password" Const strTxtPasswordError = "Password Error\t- The passwords entered do not match" Const strTxtManagementCentre = "Management Centre" Const strTxtTheCurrentPasswordIsIncorrect = "The password entered as the current password was incorrect" Const strTxtYourAccountDetails = "Your Account Details" Const strTxtIfYouWouldLikeToChangeYour = "If you would like to change your" Const strTxtDetailsUseTheFormBelow = "details please use the form below" Const strTxtYourSubscriptionIsPresentlyConfirmed = "Your subscription is presently confirmed" Const strTxtYourSubscriptionIsPresentlyNOTConfirmed = "Your subscription is presently not confirmed" Const strTxtReSendConfirmationEmail = "Re-send confirmation email" Const strTxtYourPassword = "Your Password" Const strTxtIfYouWouldLikeToChnageYourPassword = "If you would like to change your password fill in the form below" Const strTxtCurrentPassword = "Current Password" Const strTxtNewPassword = "New Password" Const strTxtYouSubscribedToTheChecked = "You have subscribed to the checked" Const strTxtCategoriesBelowToChangeCheckBoxes = "categories below. To subscribe to additional categories, select the box next to the category title. To unsubscribe deselect the box" Const strTxtUpdateMyAccount = "Update My Account" Const strTxtAreYouSureYouWishToUnsubscribeFrom = "Are you sure you wish to unsubscribe from" Const strTxtIfYouWouldLikeToUnsubscribeFromThe = "If you would like to unsubscribe from the" Const strTxtAndHaveYourAccountDeleted = "and have your account permanently deleted, then click on the button below" Const strTxtOnceYourUnsubscribeYouWillGetEmail = "Once you unsubscribe you will receive one last email from" Const strTxtToConfirmYourSubscriptionToThe = "to confirm that your subscription to the" Const strTxtIsClosed = "is closed" Const strTxtDeleteMyAccount = "Delete My Account" Const strTxtYourSubscriptionUpdateRequestCouldNotBeProcessed = "Your subscription update request could not be processed" 'delete_account.asp '--------------------------------------------------------------------------------- Const strTxtThisIsToConfirmThatYouHaveUnsubscribed = "This is to confirm that you have un subscribed form the" Const strTxtUnsubscribeConfirmation = "Unsubscribe Confirmation" Const strTxtThisIsToNotifyThatTheFollowingHasUnsubscribed = "This email is to notify you that the following person has un subscribed from the" Const strTxtYouHaveNowUnsubscribedFromAllCategories = "You have now un subscribed from all categories in the" Const strTxtAConfirmationEmailWillBEmailedToYou = "A confirmation email of this will be emailed to yourself" 'newsletters.asp '--------------------------------------------------------------------------------- Const strTxtSentNewsletters = "Archived Newsletters" Const strTxtThereAreNoSavedNewsletters = "There are no Archived Newsletters to display" Const strTxtPleaseCheckBackLater = "Please check back later" Const strTxtFormat = "Format" Const strTxtDateSent = "Date Sent" Const strTxtAt = "at" Const strTxtReturnToLoginSignup = "Return to login/sign-up" 'view_newsletter.asp '--------------------------------------------------------------------------------- Const strTxtNewsletter = "Newsletter" Const strTxtDetails = "Details" Const strTxtSubject = "Subject" Const strTxtNote = "Note" Const strTxtSelectAnotherNewsletterToView = "Select Another Newsletter To View" 'resend_activation_email.asp '--------------------------------------------------------------------------------- Const strTxtMailingListReSentConformYourSub = "mailing list has been re-sent. Please follow the last step to confirm your subscription" 'management_centre_update.asp '--------------------------------------------------------------------------------- Const strTxtIMPORTANTREConfirmYourSubscription = "IMPORTANT: Re-Confirm Your Subscription" Const strTxtReConfirmYourSubscriptionToMailingList = "Re-Confirm your subscription to mailing list" Const strTxtTheEmailAddressYouUseFor = "The email address you use for" Const strTxtMailingListHasChangedYouReqToConfirm = "mailing list has been changed. You are required to confirm the email address you have entered" Const strTxtYourAccountSuspendedUntilYouCompleteStep = "Your account will be suspended until you complete this step" Const strTxtYourUpdatedAccountDetails = "Your Updated Account Details" Const strTxtSubscriptionConfirmed = "Subscription Confirmed" Const strTxtMailingListCategoriesSubscribedTo = "Mailing List Categories Subscribed to" Const strTxtYouHaveSubscribedToThe = "You have subscribed to the" Const strTxtMailingListCategoriesBelow = "mailing list categories below" Const strTxtThereAreNoCategoriesToDisplay = "There are no categories to display" %> <% '**************************************************************************************** '** Copyright Notice '** '** Web Wiz Mailing List '** http://www.webwizmailinglist.com '** '** Copyright 2002-2006 Web Wiz. All Rights Reserved. '** '** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'. '** '** IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE '** THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE '** AND DERIVATIVE WORKS IMMEDIATELY. '** '** If you have not received a copy of the license with this work then a copy of the latest '** license contract can be found at:- '** '** http://www.webwizguide.com/license '** '** For more information about this software and for licensing information please contact '** 'Web Wiz' at the address and website below:- '** '** Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England '** http://www.webwizguide.com '** '** Removal or modification of this copyright notice will violate the license contract. '** '**************************************************************************************** '****************************************** '*** Unsafe character Strip **** '****************************************** 'Function to strip non alphanumeric characters email addresses Private Function characterStrip(ByVal strTextInput) 'Dimension variable Dim intLoopCounter 'Holds the loop counter 'Loop through the ASCII characters For intLoopCounter = 0 to 37 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the ASCII characters For intLoopCounter = 39 to 44 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the ASCII characters numeric characters to lower-case characters For intLoopCounter = 65 to 94 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the extended ASCII characters For intLoopCounter = 123 to 125 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the extended ASCII characters For intLoopCounter = 127 to 255 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Strip individul ASCII characters left out from above strTextInput = Replace(strTextInput, CHR(59), "", 1, -1, 0) strTextInput = Replace(strTextInput, CHR(60), "", 1, -1, 0) strTextInput = Replace(strTextInput, CHR(62), "", 1, -1, 0) strTextInput = Replace(strTextInput, CHR(96), "", 1, -1, 0) 'Return the string characterStrip = strTextInput End Function 'Function to strip non alphanumeric characters from user ID's Private Function IDcharacterStrip(ByVal strTextInput) 'Only allows 1 to 9, A to F, and Z 'Dimension variable Dim intLoopCounter 'Holds the loop counter 'Loop through the ASCII characters For intLoopCounter = 0 to 47 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the ASCII characters For intLoopCounter = 58 to 64 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the ASCII characters numeric characters to lower-case characters For intLoopCounter = 71 to 89 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Loop through the extended ASCII characters For intLoopCounter = 91 to 255 strTextInput = Replace(strTextInput, CHR(intLoopCounter), "", 1, -1, 0) Next 'Return the string IDcharacterStrip = strTextInput End Function '****************************************** '*** Random Hex Generator **** '****************************************** Private Function hexValue(ByVal intHexLength) Dim intLoopCounter Dim strHexValue 'Randomise the system timer Randomize Timer() 'Generate a hex value For intLoopCounter = 1 to intHexLength 'Genreate a radom decimal value form 0 to 15 intHexLength = CInt(Rnd * 1000) Mod 16 'Turn the number into a hex value Select Case intHexLength Case 1 strHexValue = "1" Case 2 strHexValue = "2" Case 3 strHexValue = "3" Case 4 strHexValue = "4" Case 5 strHexValue = "5" Case 6 strHexValue = "6" Case 7 strHexValue = "7" Case 8 strHexValue = "8" Case 9 strHexValue = "9" Case 10 strHexValue = "A" Case 11 strHexValue = "B" Case 12 strHexValue = "C" Case 13 strHexValue = "D" Case 14 strHexValue = "E" Case 15 strHexValue = "F" Case Else strHexValue = "Z" End Select 'Place the hex value into the return string hexValue = hexValue & strHexValue Next End Function '********************************************* '*** Strip all tags ***** '********************************************* 'Remove all tags for text only display Private Function removeAllTags(ByVal strInputEntry) 'Remove all HTML scripting tags etc. for plain text output strInputEntry = Replace(strInputEntry, "<", "<", 1, -1, 1) strInputEntry = Replace(strInputEntry, ">", ">", 1, -1, 1) strInputEntry = Replace(strInputEntry, "'", "’", 1, -1, 1) strInputEntry = Replace(strInputEntry, """", """, 1, -1, 1) 'Return removeAllTags = strInputEntry End Function '****************************************** '*** HTML Decoder **** '****************************************** 'Decode encoded strings Private Function decodeString(ByVal strInputEntry) 'Remove malisous charcters from links and images strInputEntry = Replace(strInputEntry, "=", "=", 1, -1, 0) strInputEntry = Replace(strInputEntry, "a", "a", 1, -1, 0) strInputEntry = Replace(strInputEntry, "b", "b", 1, -1, 0) strInputEntry = Replace(strInputEntry, "c", "c", 1, -1, 0) strInputEntry = Replace(strInputEntry, "d", "d", 1, -1, 0) strInputEntry = Replace(strInputEntry, "e", "e", 1, -1, 0) strInputEntry = Replace(strInputEntry, "f", "f", 1, -1, 0) strInputEntry = Replace(strInputEntry, "g", "g", 1, -1, 0) strInputEntry = Replace(strInputEntry, "h", "h", 1, -1, 0) strInputEntry = Replace(strInputEntry, "i", "i", 1, -1, 0) strInputEntry = Replace(strInputEntry, "j", "j", 1, -1, 0) strInputEntry = Replace(strInputEntry, "k", "k", 1, -1, 0) strInputEntry = Replace(strInputEntry, "l", "l", 1, -1, 0) strInputEntry = Replace(strInputEntry, "m", "m", 1, -1, 0) strInputEntry = Replace(strInputEntry, "n", "n", 1, -1, 0) strInputEntry = Replace(strInputEntry, "o", "o", 1, -1, 0) strInputEntry = Replace(strInputEntry, "p", "p", 1, -1, 0) strInputEntry = Replace(strInputEntry, "q", "q", 1, -1, 0) strInputEntry = Replace(strInputEntry, "r", "r", 1, -1, 0) strInputEntry = Replace(strInputEntry, "s", "s", 1, -1, 0) strInputEntry = Replace(strInputEntry, "t", "t", 1, -1, 0) strInputEntry = Replace(strInputEntry, "u", "u", 1, -1, 0) strInputEntry = Replace(strInputEntry, "v", "v", 1, -1, 0) strInputEntry = Replace(strInputEntry, "w", "w", 1, -1, 0) strInputEntry = Replace(strInputEntry, "x", "x", 1, -1, 0) strInputEntry = Replace(strInputEntry, "y", "y", 1, -1, 0) strInputEntry = Replace(strInputEntry, "z", "z", 1, -1, 0) strInputEntry = Replace(strInputEntry, "A", "A", 1, -1, 0) strInputEntry = Replace(strInputEntry, "B", "B", 1, -1, 0) strInputEntry = Replace(strInputEntry, "C", "C", 1, -1, 0) strInputEntry = Replace(strInputEntry, "D", "D", 1, -1, 0) strInputEntry = Replace(strInputEntry, "E", "E", 1, -1, 0) strInputEntry = Replace(strInputEntry, "F", "F", 1, -1, 0) strInputEntry = Replace(strInputEntry, "G", "G", 1, -1, 0) strInputEntry = Replace(strInputEntry, "H", "H", 1, -1, 0) strInputEntry = Replace(strInputEntry, "I", "I", 1, -1, 0) strInputEntry = Replace(strInputEntry, "J", "J", 1, -1, 0) strInputEntry = Replace(strInputEntry, "K", "K", 1, -1, 0) strInputEntry = Replace(strInputEntry, "L", "L", 1, -1, 0) strInputEntry = Replace(strInputEntry, "M", "M", 1, -1, 0) strInputEntry = Replace(strInputEntry, "N", "N", 1, -1, 0) strInputEntry = Replace(strInputEntry, "O", "O", 1, -1, 0) strInputEntry = Replace(strInputEntry, "P", "P", 1, -1, 0) strInputEntry = Replace(strInputEntry, "Q", "Q", 1, -1, 0) strInputEntry = Replace(strInputEntry, "R", "R", 1, -1, 0) strInputEntry = Replace(strInputEntry, "S", "S", 1, -1, 0) strInputEntry = Replace(strInputEntry, "T", "T", 1, -1, 0) strInputEntry = Replace(strInputEntry, "U", "U", 1, -1, 0) strInputEntry = Replace(strInputEntry, "V", "V", 1, -1, 0) strInputEntry = Replace(strInputEntry, "W", "W", 1, -1, 0) strInputEntry = Replace(strInputEntry, "X", "X", 1, -1, 0) strInputEntry = Replace(strInputEntry, "Y", "Y", 1, -1, 0) strInputEntry = Replace(strInputEntry, "Z", "Z", 1, -1, 0) strInputEntry = Replace(strInputEntry, "0", "0", 1, -1, 0) strInputEntry = Replace(strInputEntry, "1", "1", 1, -1, 0) strInputEntry = Replace(strInputEntry, "2", "2", 1, -1, 0) strInputEntry = Replace(strInputEntry, "3", "3", 1, -1, 0) strInputEntry = Replace(strInputEntry, "4", "4", 1, -1, 0) strInputEntry = Replace(strInputEntry, "5", "5", 1, -1, 0) strInputEntry = Replace(strInputEntry, "6", "6", 1, -1, 0) strInputEntry = Replace(strInputEntry, "7", "7", 1, -1, 0) strInputEntry = Replace(strInputEntry, "8", "8", 1, -1, 0) strInputEntry = Replace(strInputEntry, "9", "9", 1, -1, 0) 'Return decodeString = strInputEntry End Function %> <% Function getSalt(intLen) ' Function takes a given length x and generates a random hex value of x digits. ' Salt can be used to help protect passwords. When a password is first stored in a ' database generate a salt value also. Concatenate the salt value with the password, ' and then encrypt it using the HashEncode function below. Store both the salt value, ' and the encrypted value in the database. When a password needs to be verified, take ' the password concatenate the salt from the database. Encode it using the HashEncode ' function below. If the result matches the the encrypted password stored in the ' database, then it is a match. If not then the password is invalid. ' ' ' Note: Passwords become case sensitive when using this encryption. ' For more information on Password HASH Encoding, and SALT visit: http://local.15seconds.com/issue/000217.htm ' ' Call this function if you wish to generate a random hex value of any given length ' ' Written By: Mark G. Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact Dim strSalt Dim intIndex, intRand If Not IsNumeric(intLen) Then getSalt = "00000000" exit function ElseIf CInt(intLen) <> CDbl(intLen) Or CInt(intLen) < 1 Then getSalt = "00000000" exit function End If Randomize For intIndex = 1 to CInt(intLen) intRand = CInt(Rnd * 1000) Mod 16 strSalt = strSalt & getDecHex(intRand) Next getSalt = strSalt End Function Function HashEncode(strSecret) ' Function takes an ASCII string less than 2^61 characters long and ' one way hash encrypts it using 160 bit encryption into a 40 digit hex value. ' The encoded hex value cannot be decoded to the original string value. ' ' This is the only function that you need to call for encryption. ' ' Written By: Mark G. Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' ' The author makes no warranties as to the validity, and/or authenticity of this code. ' You may use any code found herein at your own risk. ' This code was written to follow as closely as possible the standards found in ' Federal Information Processing Standards Publication (FIPS PUB 180-1) ' http://csrc.nist.gov/fips/fip180-1.txt -- Secure Hash Standard SHA-1 ' ' This code is for private use only, and the security and/or encryption of the resulting ' hexadecimal value is not warrented or gaurenteed in any way. ' Dim strEncode, strH(4) Dim intPos If len(strSecret) = 0 or len(strSecret) >= 2^61 then HashEncode = "0000000000000000000000000000000000000000" exit function end if 'Initial Hex words are used for encoding Digest. 'These can be any valid 8-digit hex value (0 to F) strH(0) = "FB0C14C2" strH(1) = "9F00AB2E" strH(2) = "991FFA67" strH(3) = "76FA2C3F" strH(4) = "ADE426FA" For intPos = 1 to len(strSecret) step 56 strEncode = Mid(strSecret, intPos, 56) 'get 56 character chunks strEncode = WordToBinary(strEncode) 'convert to binary strEncode = PadBinary(strEncode) 'make it 512 bites strEncode = BlockToHex(strEncode) 'convert to hex value 'Encode the hex value using the previous runs digest 'If it is the first run then use the initial values above strEncode = DigestHex(strEncode, strH(0), strH(1), strH(2), strH(3), strH(4)) 'Combine the old digest with the new digest strH(0) = HexAdd(left(strEncode, 8), strH(0)) strH(1) = HexAdd(mid(strEncode, 9, 8), strH(1)) strH(2) = HexAdd(mid(strEncode, 17, 8), strH(2)) strH(3) = HexAdd(mid(strEncode, 25, 8), strH(3)) strH(4) = HexAdd(right(strEncode, 8), strH(4)) Next 'This is the final Hex Digest HashEncode = strH(0) & strH(1) & strH(2) & strH(3) & strH(4) End Function Function HexToBinary(btHex) ' Function Converts a single hex value into it's binary equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Select Case btHex Case "0" HexToBinary = "0000" Case "1" HexToBinary = "0001" Case "2" HexToBinary = "0010" Case "3" HexToBinary = "0011" Case "4" HexToBinary = "0100" Case "5" HexToBinary = "0101" Case "6" HexToBinary = "0110" Case "7" HexToBinary = "0111" Case "8" HexToBinary = "1000" Case "9" HexToBinary = "1001" Case "A" HexToBinary = "1010" Case "B" HexToBinary = "1011" Case "C" HexToBinary = "1100" Case "D" HexToBinary = "1101" Case "E" HexToBinary = "1110" Case "F" HexToBinary = "1111" Case Else HexToBinary = "2222" End Select End Function Function BinaryToHex(strBinary) ' Function Converts a 4 bit binary value into it's hex equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Select Case strBinary Case "0000" BinaryToHex = "0" Case "0001" BinaryToHex = "1" Case "0010" BinaryToHex = "2" Case "0011" BinaryToHex = "3" Case "0100" BinaryToHex = "4" Case "0101" BinaryToHex = "5" Case "0110" BinaryToHex = "6" Case "0111" BinaryToHex = "7" Case "1000" BinaryToHex = "8" Case "1001" BinaryToHex = "9" Case "1010" BinaryToHex = "A" Case "1011" BinaryToHex = "B" Case "1100" BinaryToHex = "C" Case "1101" BinaryToHex = "D" Case "1110" BinaryToHex = "E" Case "1111" BinaryToHex = "F" Case Else BinaryToHex = "Z" End Select End Function Function WordToBinary(strWord) ' Function Converts a 8 digit hex value into it's 32 bit binary equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header kept intact ' Dim strTemp, strBinary Dim intPos For intPos = 1 To Len(strWord) strTemp = Mid(strWord, cint(intPos), 1) strBinary = strBinary & IntToBinary(Asc(strTemp)) Next WordToBinary = strBinary End Function Function HexToInt(strHex) ' Function Converts a hex word to its base 10(decimal) equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim intNew, intPos, intLen intNew = 0 intLen = CDbl(len(strHex)) - 1 For intPos = CDbl(intLen) to 0 step -1 Select Case Mid(strHex, CDbl(intPos) + 1, 1) Case "0" intNew = CDbl(intNew) + (0 * 16^CDbl(intLen - intPos)) Case "1" intNew = CDbl(intNew) + (1 * 16^CDbl(intLen - intPos)) Case "2" intNew = CDbl(intNew) + (2 * 16^CDbl(intLen - intPos)) Case "3" intNew = CDbl(intNew) + (3 * 16^CDbl(intLen - intPos)) Case "4" intNew = CDbl(intNew) + (4 * 16^CDbl(intLen - intPos)) Case "5" intNew = CDbl(intNew) + (5 * 16^CDbl(intLen - intPos)) Case "6" intNew = CDbl(intNew) + (6 * 16^CDbl(intLen - intPos)) Case "7" intNew = CDbl(intNew) + (7 * 16^CDbl(intLen - intPos)) Case "8" intNew = CDbl(intNew) + (8 * 16^CDbl(intLen - intPos)) Case "9" intNew = CDbl(intNew) + (9 * 16^CDbl(intLen - intPos)) Case "A" intNew = CDbl(intNew) + (10 * 16^CDbl(intLen - intPos)) Case "B" intNew = CDbl(intNew) + (11 * 16^CDbl(intLen - intPos)) Case "C" intNew = CDbl(intNew) + (12 * 16^CDbl(intLen - intPos)) Case "D" intNew = CDbl(intNew) + (13 * 16^CDbl(intLen - intPos)) Case "E" intNew = CDbl(intNew) + (14 * 16^CDbl(intLen - intPos)) Case "F" intNew = CDbl(intNew) + (15 * 16^CDbl(intLen - intPos)) End Select Next HexToInt = CDbl(intNew) End Function Function IntToBinary(intNum) ' Function Converts an integer number to it's binary equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim strBinary, strTemp Dim intNew, intTemp Dim dblNew intNew = intNum Do While intNew > 1 dblNew = CDbl(intNew) / 2 intNew = Round(CDbl(dblNew) - 0.1, 0) If CDbl(dblNew) = CDbl(intNew) Then strBinary = "0" & strBinary Else strBinary = "1" & strBinary End If Loop strBinary = intNew & strBinary intTemp = Len(strBinary) mod 8 For intNew = intTemp To 7 strBinary = "0" & strBinary Next IntToBinary = strBinary End Function Function PadBinary(strBinary) ' Function adds 0's to a binary string until it reaches 448 bits. ' The lenghth of the original string is incoded into the last 16 bits. ' The end result is a binary string 512 bits long ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim intPos, intLen Dim strTemp intLen = Len(strBinary) strBinary = strBinary & "1" For intPos = Len(strBinary) To 447 strBinary = strBinary & "0" Next strTemp = IntToBinary(intLen) For intPos = Len(strTemp) To 63 strTemp = "0" & strTemp Next strBinary = strBinary & strTemp PadBinary = strBinary End Function Function BlockToHex(strBinary) ' Function Converts a 32 bit binary string into it's 8 digit hex equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim intPos Dim strHex For intPos = 1 To Len(strBinary) Step 4 strHex = strHex & BinaryToHex(Mid(strBinary, intPos, 4)) Next BlockToHex = strHex End Function Function DigestHex(strHex, strH0, strH1, strH2, strH3, strH4) ' Main encoding function. Takes a 128 digit/512 bit hex value and one way encrypts it into ' a 40 digit/160 bit hex value. ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim strWords(79), adoConst(4), strTemp, strTemp1, strTemp2, strTemp3, strTemp4 Dim intPos Dim strH(4), strA(4), strK(3) 'Constant hex words are used for encryption, these can be any valid 8 digit hex value strK(0) = "5A827999" strK(1) = "6ED9EBA1" strK(2) = "8F1BBCDC" strK(3) = "CA62C1D6" 'Hex words are used in the encryption process, these can be any valid 8 digit hex value strH(0) = strH0 strH(1) = strH1 strH(2) = strH2 strH(3) = strH3 strH(4) = strH4 'divide the Hex block into 16 hex words For intPos = 0 To (len(strHex) / 8) - 1 strWords(cint(intPos)) = Mid(strHex, (cint(intPos)*8) + 1, 8) Next 'encode the Hex words using the constants above 'innitialize 80 hex word positions For intPos = 16 To 79 strTemp = strWords(cint(intPos) - 3) strTemp1 = HexBlockToBinary(strTemp) strTemp = strWords(cint(intPos) - 8) strTemp2 = HexBlockToBinary(strTemp) strTemp = strWords(cint(intPos) - 14) strTemp3 = HexBlockToBinary(strTemp) strTemp = strWords(cint(intPos) - 16) strTemp4 = HexBlockToBinary(strTemp) strTemp = BinaryXOR(strTemp1, strTemp2) strTemp = BinaryXOR(strTemp, strTemp3) strTemp = BinaryXOR(strTemp, strTemp4) strWords(cint(intPos)) = BlockToHex(BinaryShift(strTemp, 1)) Next 'initialize the changing word variables with the initial word variables strA(0) = strH(0) strA(1) = strH(1) strA(2) = strH(2) strA(3) = strH(3) strA(4) = strH(4) 'Main encryption loop on all 80 hex word positions For intPos = 0 To 79 strTemp = BinaryShift(HexBlockToBinary(strA(0)), 5) strTemp1 = HexBlockToBinary(strA(3)) strTemp2 = HexBlockToBinary(strWords(cint(intPos))) Select Case intPos Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 strTemp3 = HexBlockToBinary(strK(0)) strTemp4 = BinaryOR(BinaryAND(HexBlockToBinary(strA(1)), _ HexBlockToBinary(strA(2))), BinaryAND(BinaryNOT(HexBlockToBinary(strA(1))), _ HexBlockToBinary(strA(3)))) Case 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 strTemp3 = HexBlockToBinary(strK(1)) strTemp4 = BinaryXOR(BinaryXOR(HexBlockToBinary(strA(1)), _ HexBlockToBinary(strA(2))), HexBlockToBinary(strA(3))) Case 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 strTemp3 = HexBlockToBinary(strK(2)) strTemp4 = BinaryOR(BinaryOR(BinaryAND(HexBlockToBinary(strA(1)), _ HexBlockToBinary(strA(2))), BinaryAND(HexBlockToBinary(strA(1)), _ HexBlockToBinary(strA(3)))), BinaryAND(HexBlockToBinary(strA(2)), _ HexBlockToBinary(strA(3)))) Case 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79 strTemp3 = HexBlockToBinary(strK(3)) strTemp4 = BinaryXOR(BinaryXOR(HexBlockToBinary(strA(1)), _ HexBlockToBinary(strA(2))), HexBlockToBinary(strA(3))) End Select strTemp = BlockToHex(strTemp) strTemp1 = BlockToHex(strTemp1) strTemp2 = BlockToHex(strTemp2) strTemp3 = BlockToHex(strTemp3) strTemp4 = BlockToHex(strTemp4) strTemp = HexAdd(strTemp, strTemp1) strTemp = HexAdd(strTemp, strTemp2) strTemp = HexAdd(strTemp, strTemp3) strTemp = HexAdd(strTemp, strTemp4) strA(4) = strA(3) strA(3) = strA(2) strA(2) = BlockToHex(BinaryShift(HexBlockToBinary(strA(1)), 30)) strA(1) = strA(0) strA(0) = strTemp Next 'Concatenate the final Hex Digest DigestHex = strA(0) & strA(1) & strA(2) & strA(3) & strA(4) End Function Function HexAdd(strHex1, strHex2) ' Function adds to 8 digit/32 bit hex values together Mod 2^32 ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim intCalc Dim strNew intCalc = 0 intCalc = CDbl(CDbl(HexToInt(strHex1)) + CDbl(HexToInt(strHex2))) Do While CDbl(intCalc) > 2^32 intCalc = CDbl(intCalc) - 2^32 Loop strNew = IntToBinary(CDbl(intCalc)) Do While Len(strNew) < 32 strNew = "0" & strNew Loop strNew = BlockToHex(strNew) if InStr(strNew, "00") = 1 and len(strNew) = 10 then strNew = right(strNew, 8) end if HexAdd = strNew End Function Function getHexDec(strHex) ' Function Converts a single hex value into it's decimal equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Select Case strHex Case "0" getHexDec = 0 Case "1" getHexDec = 1 Case "2" getHexDec = 2 Case "3" getHexDec = 3 Case "4" getHexDec = 4 Case "5" getHexDec = 5 Case "6" getHexDec = 6 Case "7" getHexDec = 7 Case "8" getHexDec = 8 Case "9" getHexDec = 9 Case "A" getHexDec = 10 Case "B" getHexDec = 11 Case "C" getHexDec = 12 Case "D" getHexDec = 13 Case "E" getHexDec = 14 Case "F" getHexDec = 15 Case Else getHexDec = -1 End Select End Function Function getDecHex(strHex) ' Function Converts a single decimal value(0 - 15) into it's hex equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Select Case CInt(strHex) Case 0 getDecHex = "0" Case 1 getDecHex = "1" Case 2 getDecHex = "2" Case 3 getDecHex = "3" Case 4 getDecHex = "4" Case 5 getDecHex = "5" Case 6 getDecHex = "6" Case 7 getDecHex = "7" Case 8 getDecHex = "8" Case 9 getDecHex = "9" Case 10 getDecHex = "A" Case 11 getDecHex = "B" Case 12 getDecHex = "C" Case 13 getDecHex = "D" Case 14 getDecHex = "E" Case 15 getDecHex = "F" Case Else getDecHex = "Z" End Select End Function Function BinaryShift(strBinary, intPos) ' Function circular left shifts a binary value n places ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' BinaryShift = Right(strBinary, Len(strBinary) - cint(intPos)) & _ Left(strBinary, cint(intPos)) End Function Function BinaryXOR(strBin1, strBin2) ' Function performs an exclusive or function on each position of two binary values ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim strBinaryFinal Dim intPos For intPos = 1 To Len(strBin1) Select Case Mid(strBin1, cint(intPos), 1) Case Mid(strBin2, cint(intPos), 1) strBinaryFinal = strBinaryFinal & "0" Case Else strBinaryFinal = strBinaryFinal & "1" End Select Next BinaryXOR = strBinaryFinal End Function Function BinaryOR(strBin1, strBin2) ' Function performs an inclusive or function on each position of two binary values ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim strBinaryFinal Dim intPos For intPos = 1 To Len(strBin1) If Mid(strBin1, cint(intPos), 1) = "1" Or Mid(strBin2, cint(intPos), 1) = "1" Then strBinaryFinal = strBinaryFinal & "1" Else strBinaryFinal = strBinaryFinal & "0" End If Next BinaryOR = strBinaryFinal End Function Function BinaryAND(strBin1, strBin2) ' Function performs an AND function on each position of two binary values ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim strBinaryFinal Dim intPos For intPos = 1 To Len(strBin1) If Mid(strBin1, cint(intPos), 1) = "1" And Mid(strBin2, cint(intPos), 1) = "1" Then strBinaryFinal = strBinaryFinal & "1" Else strBinaryFinal = strBinaryFinal & "0" End If Next BinaryAND = strBinaryFinal End Function Function BinaryNOT(strBinary) ' Function makes each position of a binary value from 1 to 0 and 0 to 1 ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim strBinaryFinal Dim intPos For intPos = 1 To Len(strBinary) If Mid(strBinary, cint(intPos), 1) = "1" Then strBinaryFinal = strBinaryFinal & "0" Else strBinaryFinal = strBinaryFinal & "1" End If Next BinaryNOT = strBinaryFinal End Function Function HexBlockToBinary(strHex) ' Function Converts a 8 digit/32 bit hex value to its 32 bit binary equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' Dim intPos Dim strTemp For intPos = 1 To Len(strHex) strTemp = strTemp & HexToBinary(Mid(strHex, cint(intPos), 1)) Next HexBlockToBinary = strTemp End Function %> <% '**************************************************************************************** '** Copyright Notice '** '** Web Wiz Mailing List '** http://www.webwizmailinglist.com '** '** Copyright 2002-2006 Web Wiz. All Rights Reserved. '** '** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'. '** '** IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE '** THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE '** AND DERIVATIVE WORKS IMMEDIATELY. '** '** If you have not received a copy of the license with this work then a copy of the latest '** license contract can be found at:- '** '** http://www.webwizguide.com/license '** '** For more information about this software and for licensing information please contact '** 'Web Wiz' at the address and website below:- '** '** Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England '** http://www.webwizguide.com '** '** Removal or modification of this copyright notice will violate the license contract. '** '**************************************************************************************** 'Set the response buffer to true as we maybe redirecting Response.Buffer = True 'Reset server objects Set rsCommon = Nothing adoCon.Close Set adoCon = Nothing %> Mailing List: Privacy Statement <% '**************************************************************************************** '** Copyright Notice '** '** Web Wiz Rich Text Editor '** http://www.richtexteditor.org '** '** Copyright 2001-2006 Web Wiz. All Rights Reserved. '** '** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'. '** '** IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE '** THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE '** AND DERIVATIVE WORKS IMMEDIATELY. '** '** If you have not received a copy of the license with this work then a copy of the latest '** license contract can be found at:- '** '** http://www.webwizguide.com/license '** '** For more information about this software and for licensing information please contact '** 'Web Wiz' at the address and website below:- '** '** Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England '** http://www.webwizguide.com '** '** Removal or modification of this copyright notice will violate the license contract. '** '**************************************************************************************** 'Uncomment the character set you require '(uncomment means remove the (') single quote from infront of the line) 'Western European ISO Const strPageEncoding = "iso-8859-1" 'Unicode UTF-8 'Const strPageEncoding = "utf-8" 'Arabic ISO 'Const strPageEncoding = "iso-8859-6" 'Arabic Windows 'Const strPageEncoding = "windows-1256" 'Baltic Windows 'Const strPageEncoding = "windows-1257" 'Central European DOS 'Const strPageEncoding = "ibm852" 'Central European ISO 'Const strPageEncoding = "iso-8859-2" 'Central European Windows 'Const strPageEncoding = "windows-1250" 'Chinese Simplified 'Const strPageEncoding = "gb2312" 'Chinese Simplified 'Const strPageEncoding = "hz-gb-2312" 'Chinese Traditional 'Const strPageEncoding = "big5" 'Cyrillic ISO 'Const strPageEncoding = "iso-8859-5" 'Cyrillic KOI8-R 'Const strPageEncoding = "koi8-r" 'Cyrillic KOI8-U 'Const strPageEncoding = "koi8-ru" 'Cyrillic Windows 'Const strPageEncoding = "windows-1251" 'Greek ISO 'Const strPageEncoding = "iso-8859-7" 'Greek Windows 'Const strPageEncoding = "windows-1253" 'Hebrew ISO-Logical 'Const strPageEncoding = "iso-8859-8-i" 'Hebrew ISO-Visual 'Const strPageEncoding = "iso-8859-8" 'Hebrew Windows 'Const strPageEncoding = "windows-1255" 'Japanese EUC 'Const strPageEncoding = "euc-jp" 'Japanese Shift-JIS 'Const strPageEncoding = "shift-jis" 'Korean 'Const strPageEncoding = "euc-kr" 'Thai Windows 'Const strPageEncoding = "windows-874" 'Turkish ISO 'Const strPageEncoding = "iso-8859-9" 'Vietnamese 'Const strPageEncoding = "windows-1258" 'Write the page encoding meta tage Response.Write("") %> <% '***** START WARNING - REMOVAL OR MODIFICATION OF THIS CODE WILL VIOLATE THE LICENSE AGREEMENT ****** '***** END WARNING - REMOVAL OR MODIFICATION OF THIS CODE WILL VIOLATE THE LICENSE AGREEMENT ****** %>
<% = strWebsiteName & "'s " & strTxtMailingList & " " & strTxtPrivacyStatement %>

<% = strTxtPrivacyStatement %>

<% = strPrivacyStatment %>

<% = strTxtIfYouWouldLikeToCreateEditOrCloseAMailingListAccountWith & " " & strWebsiteName & " " & strTxtThen %> <% = strTxtClickhere %>.

<% Response.Write("

") '***** START WARNING - REMOVAL OR MODIFICATION OF THIS CODE WILL VIOLATE THE LICENSE AGREEMENT ****** '***** END WARNING - REMOVAL OR MODIFICATION OF THIS CODE WILL VIOLATE THE LICENSE AGREEMENT ****** %>