Red de conocimientos turísticos - Guía para elegir días propicios según el calendario chino - Utilice asp para escribir una función de código de activación automática.

Utilice asp para escribir una función de código de activación automática.

No tengo nada que hacer esta mañana, así que escribí algunas páginas para usted:

1. Cree una nueva tabla: tome Access como ejemplo, el nombre de la tabla es activar y se usa el código de activación del usuario. en la mesa.

Id (número automático), UserId (ID de usuario), UserCode (código de activación, texto), CodeFlag (número, estado, 0 no activado 1 activado), AcDate (fecha, tiempo de vencimiento, valor predeterminado " ahora()").

Tabla 2 Código de activación, tabla de códigos de activación emitidos por el sistema.

Id (número automático), UserId (ID de usuario de la tarjeta), AcCode (código de activación, texto), CodeFlag (número, estado de uso, predeterminado 0 no usado, 1 recibido).

Agregue un campo en la tabla de usuarios, el nombre del campo es UserCodeFlag, número, el valor inicial es 0, inactivo, activado 1 (algunas funciones de usuarios inactivos son limitadas, agréguelas usted mismo).

2. Establecer los parámetros del código de activación y la función de generación del código de activación.

* * *Dos funciones:

CodeFunction.asp:

& lt%

Dim UserCodeAcnum, UserAcDate

UserCodeAcnum = 5 'La cantidad de códigos de activación que se pueden recopilar.

UserAcDate = 365 'El número de días que una activación es válida.

La función getactivateCode (str_len)' genera un código de activación mixto de letras mayúsculas y números.

Dim Seed, SeedAry, Seed_Str, Seed_Str1, TempStr, I, m

str_len = Cint(str_len)

seed _ Str = " A B C D E F G H I J K L M N O P Q R S T U V W X Y Z "

seed _ str 1 = " 0 1 2 3 4 5 6 7 8 9 "

Seed = " "

seed=seed& ampSeed _ Str & amp " & ampSeed_Str1

SeedAry = Split(seed, " ")

m = Underload(seed)

TempStr = " "

do Mientras Len(TempStr)<Longitud de cadena

Aleatorizar temporizador()

TempStr = TempStr & ampSeed Garden(m*Rnd)

Anillo

GetActivateCode = TempStr

Finalizar función

GetActivateValue(n, k): genera el código de activación y lo coloca en el procedimiento almacenado

p>

n: el número de sectores generados a la vez; k: la longitud del código de activación, que no puede exceder 50 o 20.

Valor de subactivación (n, k)

Dim i

Para i = 1 a n

conn Ejecutar(" insertar en el código de activación(AcCode)Values(" & obtener el código de activación(k)& ' )" )

Luego

Cierre la sala de control

Conector final

% & gt

3. el usuario genera la página del código de activación en segundo plano:

ManageCard.asp

Reemplace " " en las siguientes tres líneas. La primera línea es el archivo de enlace de la biblioteca.

<! - #incluir archivo= ".

ASP "--& gt;

& lt!-# incluir archivo = " función de código . ASP "-& gt;

& ltLINK href= ". CSS " tipo = texto/CSS rel = hoja de estilo & gt;

& lt%

Llamar a Main()

Subgerente()

Llamar a CodeCss()

Seleccionar solicitud de caso ("Acción")

Caso "DelAllCard"

Llamar a DelAllCard()

Caso "DelNewCard"

Llamar a DelNewCard()

Caso "DelNewCard"

Llamar a DelOldCard()

Caso "SeeCard"

Llamar a SeeCard()

Caso "Agregar Código"

Llamar a UpdateAccode()

Código de Gestión de Llamadas()

Caso "Form _ Dellall"

Llamando a SetDellCard()

Otras situaciones

Llamando a ActivateMain()

Código de administración de llamadas( )

Finalizar selección

Cerrar conexión: Establecer conexión=Ninguno

Finalizar conector

SubdelayCard()

Llame a ActivateMain()

Llame a la lista()

Respuesta. Escriba "& ltdiv class = Listdiv & gt"& ampVbCrLf

Respuesta. style = " " margin:30;" >& ampVbCrLf

en respuesta. Escriba " & ltform método = POST action = " "? acción = Formulario _ Dell all " " nombre = Formulario 2> & ampVbCrLf

en respuesta. Escriba "¿Está seguro de que desea eliminar todas las tarjetas de activación? "& ampVbCrLf

Respuesta. Escribir" & ltInput type=""submit"" value= " "¿Está seguro de que desea eliminar" " name = " " botón2 " " > " & ampVbCrLf

Respuesta. Escribe "& lt/form >& ampVbCrLf

respuesta. Escriba "</div>"&VbCrLf

como respuesta. Escriba "& lt/div >"&VbCrLf

Conector final

Sub SetDellCard()

Conn.Execute("Eliminar del código de activación")

respuesta . redirigir " administrar tarjeta . ASP "

Finalizar conector

Sub DelNewCard()

Llamar a ActivateMain()

Llamando a la lista vinculada()

Conector final

Tarjeta de desbloqueo secundario()

Llamando a ActivateMain()

Llamando a la lista vinculada()

Finalizar conector

SubSeeCard()

Llamar a ActivateMain()

Llamar a lista enlazada()

Finalizar conector

Sublista()

Respuesta. Escribe "& ltdiv & gt& ltb & gtGestión de tarjeta de activación

como respuesta.

Escribe " & lta href=? action = DelOldCard & gtEliminar tarjeta de activación usada

Respuesta. Escribe " & lta href=? action = DelNewCard & gtEliminar tarjeta de activación no utilizada

Respuesta. Escribe " & lta href=? action = DelAllCard & gtEliminar todas las tarjetas activadas

Conector final

Sub-ActivateMain()

Respuesta. Escribe " & clase ltDIV = headdiv & gt"& ampVbCrLf

Respuesta. Escribir "& ltdiv & gt& ltb & gtGenerar tarjeta de activación

Respuesta. Escribe " & ltform método=POST action= " "?action = agregar código " " nombre = formulario 1 >& ampVbCrLf

para responder. Escribe " & ltdiv >& ampVbCrLf

a responder. Escribe "Selecciona el número de tarjetas generadas por activación:

Respuesta. Escribe " & lt option value=" " 10 " " >; Escribe " & ltoption value = " " 50 " " seleccionado & gt50 hojas

para responder. Escribe "<option value = " " 100 " " >; Escribe " & lt option value = " " 500 " " > 500 hojas

como respuesta. Escribe " & lt/select >& ampVbCrLf

como respuesta. Escriba "Longitud del número de tarjeta:

en respuesta. Escriba " & ltoption value = " " 16 " " seleccionado > Escribe " <optionvalue=" " 24 " " >24 caracteres

para responder. Escribe "<optionvalue=" " 32 " " >32 caracteres

para responder. Escribe " & lt/select >& ampVbCrLf

Respuesta. Escribe " & ltEnter type=""submit"" value= " "Asegurar la generación" " name = " " Botón 1 " " > " & amp ; VbCrLf

Respuesta. Escriba "</div>"&VbCrLf

como respuesta. Escriba "<DIV clase = línea DIV 1></DIV>"&VbCrLf

respuesta.

Escribe "& ltDIV class = linediv & gt& lt/DIV >"& ampVbCrLf

Conector final

Sub UpdateAccode()

Dim CodeNumber, CodeLen

p>

CodeNumber = Trim(Solicitud(" CodeNum "))

CodeLen = Trim(Solicitud("CodeLen "))

Si Isnumeric(CodeNum) = False, luego salga de Sub

Si Isnumeric(CodeLen) = False, salga de Sub

Número de código = Cint(número de código)

CodeLen = Cint(CodeLen) p>

Llamar a GetActivateValue(CodeNumber, CodeLen)

Respuesta. Escribe "& ltDIV class = headdiv & gt"& ampVbCrLf

respuesta. Escribe "<div><b>¡Tarjeta de activación generada exitosamente!</b></div>"&VbCrLf

Respuesta. Escriba " & ltform método = POST acción = nombre = formulario 2 >& ampVbCrLf

en respuesta. Escriba " & ltdiv >& amp número de código & amp" Se completa la generación de la tarjeta de activación. & lta href= " " ?action = Main " " & gtContinuar generando tarjeta de activación

Respuesta. Escribe "& lt/div >;"& ampVbCrLf

Respuesta. Escriba "</div>"&VbCrLf

como respuesta. Escribe "<DIV class = linediv>?</DIV>"&VbCrLf

Conector final

SubManagementCode()

Dim MaxPage, totalPut, cPage, Infonum

if Solicitud("página")<>""Entonces

cPage=cint(request("página"))

Otro

cPage=1

Terminará si...

Infonum = 1

Respuesta. Escribe " & ltDIV Style = " " ancho =:100%; margen: 0; "" >& ampVbCrLf

Llamar lista enlazada()

Respuesta. Escribe " & ltdiv class = Listdiv & gt" & ampVbCrLf

Establecer Rs = Server.CreateObject("ADODB.RecordSet")

SQL = " Seleccionar AcCode del código de activación Donde indicador de código = 0 Ordenar por Id desc "

Rs Open Conn 1, Sql 1

Si Rs.eof y rs.bof entonces

Response.write " & ltp & gt actualmente Sin tarjeta de activación .

”& ampVbCrLf

Otros

i=0

MaxPage=30

totalPut=Rs.recordcount

InfoNum = total put-(c página-1)* MaxPage

Si InfoNum & lt100 e InfoNum & gt9 entonces InfoNum = " 0 " & ampInfoNum

Si InfoNum & lt10 entonces InfoNum = " 00 " & ampInfoNum

No hacerlo

i = i+1

Escribir " & ltli class=li1 >& ampInfonum & amp" )?" & amp0rupees& amp"& lt/李>& ampVbCrLf

Si I>= MaxPage entonces salga de Do

Rs.movext

InfoNum = InfoNum-1

Si InfoNum & lt100 e InfoNum & gt9 entonces InfoNum = " 0 " & ampInfoNum

Si InfoNum & lt10 entonces InfoNum = " 00 " & ampInfoNum

Timbre

Terminará si...

Cierre de rupias: establezca Rs=Ninguno

Escriba " & ltdiv >& ampVbCrLf

Respuesta. Escriba "</div>"& ampVbCrLf

conector final

subcode()

en respuesta. Escriba " & ltstyle type=""text/css " " >& ampVbCrLf

en respuesta. Escriba "BODY { margin:0; color: #444; -size :9pt } " & amp; VbCrLf

Respuesta. Escribe "input { ancho de borde: 1; ancho de borde: 1; color de borde: # 000000; familia: Song Dynasty; tamaño de fuente: 9 puntos color: # 333; altura de línea: 14px } " & amp; VbCrLf

Respuesta. Escribe "textarea { ancho de borde: 1; ; color de borde: # 000000; color de fondo: # efefef familia de fuentes: Song Dynasty; tamaño de fuente: 9pt} " & ampVbCrLf

Responda. Escriba "Seleccione { ancho de borde: 1; color: # 000; color de fondo: # eee familia de fuentes: Song Dynasty; tamaño de fuente: 9pt} " & ampVbCrLf

Respuesta. Escribe "A { COLOR:# 444; ;VbCrLf

Respuesta. :none }" & VbCrLf

Respuesta. Escribe "A: visitado { color:0000 aa; TEXT-DECORATION:none }" & VbCrLf

Respuesta. Escribe "A:hover { COLOR:# ff 2200; DECORACIÓN DE TEXTO: ninguna }" & VbCrLf

Respuesta". head div { altura: 80px; ancho: 100%; margen: 0; relleno: 10; fondo: #f8f8f 8 }" & VbCrLf

Respuesta.

Escribe " . línea div 1 { borde inferior: #CCC 2px sólido; ancho: 100%; margen: 0; relleno: 0; altura de línea: 1px; altura: 1px }" & VbCrLf

Respuesta . Escribe ".linediv { border-top: # 999 1px solid; width: 100%; margin: 0; padding: 0; line-heignt: 1px; height: 1px }" & VbCrLf

responde. Escribe ".list div { ancho: 480 px; relleno: 10; fondo: #eee }" & VbCrLf

en respuesta. Escribe " . Li 1 { ancho: 250 px; alto de línea: 16px; tamaño de fuente: 12px; estilo de lista: ninguno; color: 069 }" & VbCrLf

en respuesta. Escribiendo " & lt/style >& ampVbCrLf

Conectores finales

% & gt

Después de unas horas de retraso, llegó el momento de hacer algo de lo contrario, déjamelo más tarde. Recuerda agregar una respuesta maravillosa; de lo contrario, no me molestaré en escribirla.