Le forum Discuz!NT intègre le code d'implémentation du forum du programme ASP. Copiez le code comme suit :
Enregistrer le code de la page des cookies lors de la connexion
<!--#include file=md5.asp--> //Le fichier crypté md5 32 bits doit être appelé. Ce fichier est disponible partout, je ne le fournirai donc pas.
<%
dim Nom d'utilisateur, Mot de passe, Question, Réponse, Expire, Vérifier
Nom d'utilisateur=replace(trim(Request.form(Username)),','') //Nom d'utilisateur
Mot de passe=replace(trim(Request.form(Password)),','') //Mot de passe utilisateur
Question=replace(trim(Request.form(Question)),','') //Question avec mot de passe
Answer=replace(trim(Request.form(Answer)),','') //Réponse par mot de passe
Expires=replace(trim(Request.form(Expires)),','') //durée d'enregistrement des cookies
Verify=replace(trim(Request.form(Verify)),','') //Code de vérification
//Ajoutez ici une vérification de soumission, telle que xxx ne peut pas être vide ou la longueur du champ, etc.
sql=select * from [dnt_users] which username='&Username' //Pour plus de commodité, je n'ajouterai pas la fonction de filtre ici. Si vous l'utilisez, assurez-vous de l'ajouter, sinon elle sera injectée.
définir rs=conn.execute(sql)
si rs.eof alors
Response.Write (<script>alert('Prompt!/n/nErreur de compte utilisateur!');history.back();</script>)
Réponse.end
autre
si rs(mot de passe)<>md5(Mot de passe) alors
Response.Write (<script>alert('Prompt!/n/nLe mot de passe utilisateur est incorrect !');history.back();</script>)
Réponse.end
autre
si rs(secques)<>Réponse alors
Response.Write (<script>alert('Prompt!/n/nSafe réponse est fausse !');history.back();</script>)
Réponse.end
autre
Dim DES,DESCode
Définir DES=Server.CreateObject(DiscuzNT.DES)
DESCode=DES.Encode(&rs(mot de passe),Z143D2VBML) //Z143D2VBML est votre clé de cryptage DES. Veuillez utiliser le Bloc-notes pour ouvrir le fichier general.config dans le répertoire CONFIG et trouver la ligne <Passwordkey>Z846D4VVZL</Passwordkey>. L'anglais entre <Passwordkey> et </Passwordkey> est vous. clé, changez la clé de votre fichier
Définir DES=Rien
Réponse.Cookies(dnt)(userid) = rs(uid)
Réponse.Cookies(dnt)(mot de passe) = DESCode
Réponse.Cookies(dnt)(tpp) = rs(tpp)
Réponse.Cookies(dnt)(ppp) = rs(ppp)
Réponse.Cookies(dnt)(pmsound) = rs(pmsound)
Réponse.Cookies(dnt)(invisible) = rs(invisible)
Réponse.Cookies(dnt)(référent) = index.aspx
Réponse.Cookies(dnt)(sigstatus) = rs(sigstatus)
Response.Cookies(dnt)(expire) = Expire
si Expire <>0 alors
Response.Cookies(dnt).Expires = DateAdd(N, Expire, Now())
finir si
Response.Cookies(dnt).Domain = .xxx.com //Changez votre nom de domaine, notez le .(point) devant celui-ci.
Response.Cookies(dnt).Secure = False
finir si
finir si
finir si
rs.fermer
définir rs = rien
//Ajoutez ici pour rediriger ou effectuer d'autres opérations après vous être connecté. C'est à vous de décider.
%>
=================================================== =========================================
Code de la page d'inscription (statut de connexion après inscription)
<!--#include file=md5.asp--> //32 est le fichier crypté md5, qui doit être appelé. Ce fichier est disponible partout, je ne le fournirai donc pas.
<%
dim Nom d'utilisateur, mot de passe, vérifier le mot de passe, e-mail, question, réponse, vérifier
Nom d'utilisateur=replace(trim(Request.form(Username)),','') //Nom d'utilisateur
Mot de passe=replace(trim(Request.form(Password)),','') //Mot de passe utilisateur
CheckPassword=replace(trim(Request.form(CheckPassword)),','') //Vérification du mot de passe
Question=replace(trim(Request.form(Question)),','') //Question avec mot de passe
Answer=replace(trim(Request.form(Answer)),','') //Réponse par mot de passe
Expires=replace(trim(Request.form(Expires)),','') //durée d'enregistrement des cookies
Verify=replace(trim(Request.form(Verify)),','') //Code de vérification
//Ajoutez ici une vérification de soumission, telle que xxx ne peut pas être vide ou la longueur du champ, etc.
sql=select * from [dnt_users] which username='&Username' //Pour plus de commodité, je n'ajouterai pas la fonction de filtre ici. Si vous l'utilisez, assurez-vous de l'ajouter, sinon elle sera injectée.
définir rs=conn.execute(sql)
sinon rs.eof alors
Response.Write (<script>alert('Prompt!/n/n le compte utilisateur a été enregistré !');history.back();</script>)
Réponse.end
finir si
rs.fermer
définir rs = rien
sql=select * from [dnt_users] où Email='&Email' //Pour plus de commodité, je n'ajouterai pas la fonction de filtre ici Si vous l'utilisez, assurez-vous de l'ajouter, sinon elle sera injectée.
définir rs=conn.execute(sql)
sinon rs.eof alors
Response.Write (<script>alert('Prompt!/n/n l'adresse e-mail a été enregistrée !');history.back();</script>)
Réponse.end
finir si
rs.fermer
définir rs = rien
ip = request.servervariables (http_x_forwarded_for)
si ip = alors ip = request.servervariables (remote_addr)
sql=insérer dans [dnt_users] (nom d'utilisateur, pseudo, mot de passe, secques, sexe, administrateur, identifiant de groupe, expiration de groupe, identifiants de groupe ext, regip, adhésion, dernière adresse, dernière visite, dernière activité, dernier message, identifiant de dernier message, titre du dernier message, messages, résumés, oltime, pages vues, crédits, crédits externes1, extcredits2,extcredits3,extcredits4,extcredits5,extcredits6,extcredits7,extcredits8,avatarshowid,email,bday,sigstatus,tpp,ppp,templateid,pmsound,showemail,newsletter,invisible,newpm,newpmcount,accessmasks,onlinestate) valeurs ('&Nom d'utilisateur',' ','&MD5(Mot de passe)','&Réponse',0,0,10,0,' ','&ip','&now()','&ip','&now( )' ,'&maintenant()','&maintenant()',0,' ',0,0,0,0,0,'0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00',0,'&Email', ' ',1,0,0,0,1,1,1,0,1,1,0,1)
définir rs=conn.execute(sql)
sql=select uid from [dnt_users] which username='&Username' //Pour plus de commodité, je n'ajouterai pas la fonction de filtre ici. Si vous l'utilisez, assurez-vous de l'ajouter, sinon elle sera injectée.
définir rs=conn.execute(sql)
Uid=rs(0)
sql=insérer dans les valeurs [dnt_userfields] (uid,avatar,avatarwidth,avatarheight,authtime,authflag) ('&Uid','avatars/common/0.gif',0,0,'&now()',0)
définir rs=conn.execute(sql)
sql=update [dnt_statistics] set totalusers=totalusers+1,lastusername='&Username',lastuserid='&Uid'
définir rs=conn.execute(sql)
sql=select * from [dnt_users] which username='&Username' //Pour plus de commodité, je n'ajouterai pas la fonction de filtre ici. Si vous l'utilisez, assurez-vous de l'ajouter, sinon elle sera injectée.
définir rs=conn.execute(sql)
si rs.eof alors
Response.Write (<script>alert('Prompt!/n/nErreur de compte utilisateur!');history.back();</script>)
Réponse.end
autre
si rs(mot de passe)<>md5(Mot de passe) alors
Response.Write (<script>alert('Prompt!/n/nLe mot de passe utilisateur est incorrect !');history.back();</script>)
Réponse.end
autre
Dim DES,DESCode
Définir DES=Server.CreateObject(DiscuzNT.DES)
DESCode=DES.Encode(&rs(mot de passe),Z143D2VBML) //Z143D2VBML est votre clé de cryptage DES. Veuillez utiliser le Bloc-notes pour ouvrir le fichier general.config dans le répertoire CONFIG et trouver la ligne <Passwordkey>Z846D4VVZL</Passwordkey>. L'anglais entre <Passwordkey> et </Passwordkey> est vous. clé, changez la clé de votre fichier
Définir DES=Rien
Réponse.Cookies(dnt)(userid) = rs(uid)
Réponse.Cookies(dnt)(mot de passe) = DESCode
Réponse.Cookies(dnt)(tpp) = rs(tpp)
Réponse.Cookies(dnt)(ppp) = rs(ppp)
Réponse.Cookies(dnt)(pmsound) = rs(pmsound)
Réponse.Cookies(dnt)(invisible) = rs(invisible)
Réponse.Cookies(dnt)(référent) = index.aspx
Réponse.Cookies(dnt)(sigstatus) = rs(sigstatus)
Réponse.Cookies(dnt)(expire) = 0
Response.Cookies(dnt).Domain = .xxx.com //Changez votre nom de domaine, notez le .(point) devant celui-ci.
Response.Cookies(dnt).Secure = False
finir si
finir si
rs.fermer
définir rs = rien
//Ajoutez une redirection post-enregistrement ici ou ajoutez des données utilisateur synchronisées à une autre table utilisateur Vous pouvez le découvrir vous-même.
%>
=================================================== =========================================
Modifier le code de la page (pas besoin de se reconnecter après avoir modifié le mot de passe)
<!--#include file=md5.asp--> //32 est le fichier crypté md5, qui doit être appelé. Ce fichier est disponible partout, je ne le fournirai donc pas.
<%
dim Nom d'utilisateur, mot de passe, vérifier le mot de passe, e-mail, question, réponse, vérifier
Nom d'utilisateur=replace(trim(Request.form(Username)),','') //Nom d'utilisateur
Mot de passe=replace(trim(Request.form(Password)),','') //Mot de passe utilisateur
CheckPassword=replace(trim(Request.form(CheckPassword)),','') //Vérification du mot de passe
Question=replace(trim(Request.form(Question)),','') //Question avec mot de passe
Answer=replace(trim(Request.form(Answer)),','') //Réponse par mot de passe
Expires=replace(trim(Request.form(Expires)),','') //durée d'enregistrement des cookies
Verify=replace(trim(Request.form(Verify)),','') //Code de vérification
//Ajoutez ici une vérification de soumission, telle que xxx ne peut pas être vide ou la longueur du champ, etc.
si Mot de passe<> alors
si Mot de passe<>CheckPassword alors
Response.Write (<script>alert('Prompt!/n/nLe mot de passe de vérification est différent du mot de passe de l'utilisateur !');history.back();</script>)
Réponse.end
finir si
Mot de passe = MD5 (mot de passe)
autre
Mot de passe=U_Password //U_Password est votre mot de passe crypté MD5 32 bits, qui est lu lors de la vérification et utilisé pour la vérification ici.
finir si
si AnswerTrue=true alors
si Question<>0 alors
Réponse=milieu(MD5(Réponse+MD5(Question)),16,8)
autre
Réponse =
finir si
autre
Answer=U_Secques //U_Secques est votre réponse par mot de passe, qui est lue lors de la vérification et utilisée pour la vérification ici.
finir si
ip = request.servervariables (http_x_forwarded_for)
si ip = alors ip = request.servervariables (remote_addr)
sql=select * from [dnt_users] which username='&Username' //Pour plus de commodité, je n'ajouterai pas la fonction de filtre ici. Si vous l'utilisez, assurez-vous de l'ajouter, sinon elle sera injectée.
définir rs = Conn.execute (Sql)
Si Rs.eof alors
Response.Write (<script>alert('Prompt!/n/nErreur de compte utilisateur!');history.back();</script>)
Réponse.end
autre
sql=select * from [dnt_users] où email='&Email' et username<>'&Username' //Pour plus de commodité, je n'ajouterai pas la fonction de filtre ici Si vous l'utilisez, vous devez l'ajouter, sinon elle sera injectée. .
définir rs=conn.execute(sql)
sinon rs.eof alors
réponse.write (<script>alert('Rappel amical !/n/n la boîte aux lettres a été utilisée !');history.back();</script>)
réponse.end
autre
sql=update [dnt_users] set password='&Password',secques='&Answer',email='&Email' où username='&Username' //Pour plus de commodité, je n'ajouterai pas la fonction de filtre ici, si vous l'utilisez, soyez bien sûr plus, sinon injecté
définir rs=conn.execute(sql)
Définir DES=Server.CreateObject(DiscuzNT.DES)
DESCode=DES.Encode(&Password,Z143D2VBML) //Z143D2VBML est votre clé de cryptage DES Veuillez utiliser le Bloc-notes pour ouvrir le fichier general.config dans le répertoire CONFIG et recherchez la ligne <Passwordkey>Z846D4VVZL</Passwordkey>, <Passwordkey>. L'anglais entre </Passwordkey> est votre clé, remplacez la clé par celle de votre fichier
Définir DES=Rien
Réponse.Cookies(dnt)(userid) = rs(uid)
Réponse.Cookies(dnt)(mot de passe) = DESCode
Réponse.Cookies(dnt)(tpp) = rs(tpp)
Réponse.Cookies(dnt)(ppp) = rs(ppp)
Réponse.Cookies(dnt)(pmsound) = rs(pmsound)
Réponse.Cookies(dnt)(invisible) = rs(invisible)
Réponse.Cookies(dnt)(référent) = index.aspx
Réponse.Cookies(dnt)(sigstatus) = rs(sigstatus)
Réponse.Cookies(dnt)(expire) = 0
Response.Cookies(dnt).Domain = .xxxx.com //Changez votre nom de domaine, faites attention à la partie principale (point).
Response.Cookies(dnt).Secure = False
finir si
finir si
rs.fermer
définir rs = rien
//Ajoutez une modification ici, puis redirigez ou ajoutez des données utilisateur synchronisées vers une autre table utilisateur. Vous pouvez le découvrir vous-même.
%>
=================================================== ============================================
Code de la page Quitter les cookies de vérification
<%
Réponse.Cookies(dnt)(userid) =
Réponse.Cookies(dnt)(mot de passe) =
Réponse.Cookies(dnt)(tpp) =
Réponse.Cookies(dnt)(ppp) =
Réponse.Cookies(dnt)(pmsound) =
Réponse.Cookies(dnt)(invisible) =
Réponse.Cookies(dnt)(référent) =
Réponse.Cookies(dnt)(sigstatus) =
Réponse.Cookies(dnt)(expire) =
Réponse.Cookies(dnt).Expires =
Réponse.Cookies(dnt).Domain = .xxx.com
Response.Cookies(dnt).Secure = False
Response.Write (<script>alert('Prompt! User/n/n s'est déconnecté et connecté!');self.opener.location.reload();window.close();</script>)
Réponse.end
%>
=================================================== =============================================
Vérifiez le code de la page du cookie. Il s'agit d'un morceau de code de vérification que j'ai écrit pour plus de simplicité. Ils sont fondamentalement les mêmes. Vous pouvez le modifier en fonction du fichier de vérification de votre programme asp.
%>
Dim DES,DESCode
Définir DES=Server.CreateObject(DiscuzNT.DES)
DESCode=DES.Decode(&request.cookies(dnt)(mot de passe),Z143D2VBML) //Z143D2VBML est votre clé de cryptage DES. Veuillez utiliser le Bloc-notes pour ouvrir le fichier general.config dans le répertoire CONFIG et trouver la ligne <Passwordkey>Z846D4VVZL</Passwordkey>. L'anglais entre <Passwordkey> et </Passwordkey> est vous. clé, changez la clé de votre fichier
Définir DES=Rien
// Ce qui suit consiste à lire la base de données pour vérifier si vos cookies sont corrects
estomper U_UId,U_UserName,U_Password,U_Secques,U_Email
Sql=select uid,username,password,secques,email from [dnt_users] où uid='&request.cookies(dnt)(userid)' et password='&DESCode' //Pour plus de commodité, je ne filtrerai pas les cookies des utilisateurs et des mots de passe Fonction , si vous l'utilisez, assurez-vous de l'ajouter, sinon il sera injecté, filtrez simplement quelques guillemets simples et d'autres plus sensibles.
Définir Rs = Conn.execute (Sql)
sinon rs.eof alors
utilisateur trouvé = vrai
U_UId = Rs(0)
U_NomUtilisateur = Rs(1)
U_Mot de passe = Rs(2)
U_Secques = Rs(3)
U_Email = Rs(4)
autre
utilisateur trouvé = faux
finir si
rs.fermer
définir rs = rien
%>