Utilice asp para escribir una función de código de activación automática.
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> 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 p>
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.