網站首頁 織夢學院 正文
在用DedeCMS的時候,通過自定義表單來做在線留言,這個確實比織夢自帶的留言簿模塊要方便,雖然在以前ab教程網說過DedeCMS留言簿插件二次開發淺析,但是實現起來還是諸多bug。所以還是用Dede的自定義表單來實現比較靠譜,但是使用自定義表單之后,因為沒有加驗證碼,導致一段時間內被人惡意攻擊,填寫了幾千個留言,頭都大了,只好去數據庫中批量刪除。此時之后,
ab教程網 就加深了這個驗證碼的認識,不論什么樣的表單,一定要記得加上驗證碼。
今天,
ab教程網 就說說如何在DedeCMS的自定義表單中添加驗證碼,雖然在網上有很多教程,但是測試了大部分,發現都不適用,
ab教程網 還是自己研究一下,終于自己搞定。
ab教程網 測試的DedeCMS版本為DedeCMS V5.7 SP1,大家可以參考一下。
一、修改自定義表單控制文件
1.打開/plus/diy.php文件,在頭部隨意位置加上代碼(網站開通了會員功能模塊必加,沒有開通會員功能則略過此步):
require_once(DEDEINC.'/membermodel.cls.php');
2.加完上述代碼之后,查找代碼:
$svali = GetCkVdValue();
if(preg_match("/1/",$safe_gdopen)){
if(strtolower($vdcode)!=$svali || $svali=='')
{
ResetVdValue();
ShowMsg('驗證碼錯誤!', '-1');
exit();
}
}
修改之后保存文件并上傳。
2.在需要插入驗證碼的地方加上代碼:
nput id="vdcode" style="width: 50px; text-transform: uppercase;" type="text" name="vdcode"/>
<img id="vdimgck" style="cursor: pointer;" onclick="this.src=this.src+'?'" src="/include/vdimgck.php" align="absmiddle"/>
3.添加判斷驗證碼正確的js代碼帶模版底部或頭部:
<script type="text/javascript">// <![CDATA[
$ = jQuery;
function changeAuthCode() {
var num = new Date().getTime();
var rand = Math.round(Math.random() * 10000);
num = num + rand;
$('#ver_code').css('visibility','visible');
if ($("#vdimgck")[0]) {
$("#vdimgck")[0].src = "../include/vdimgck.php?tag=" + num;
}
return false;
}
</script>
完成后,測試一下,效果如下圖:
相關推薦
- 2022-03-14 npm 依賴下載報錯 Hostname/IP does not match certificate‘
- 2022-02-24 Go入門所踩過的坑:cannot find package "" in any of
- 2022-08-22 詳解Go語言中for循環,break和continue的使用_Golang
- 2022-03-19 解析OpenXml?Pptx的邊框虛線轉為WPF的邊框虛線問題_C#教程
- 2022-11-07 python中dot函數運算過程總結_python
- 2023-04-27 React中使用Axios發起POST請求提交文件方式_React
- 2022-04-06 如何用C#實現SAGA分布式事務_C#教程
- 2022-06-13 docker從安裝入門到應用部署及私有倉庫搭建基礎命令_docker
- 欄目分類
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支