使用织梦自带的“自定义表单”功能(推荐)
这是最简单、最直接的方法,织梦已经内置了验证码支持,我们只需要开启并配置即可。

(图片来源网络,侵删)
步骤 1:开启自定义表单的验证码功能
- 登录你的织梦后台。
- 在左侧菜单栏中,找到并点击 【系统】 -> 【系统基本参数】。
- 在打开的页面中,切换到 【核心设置】 选项卡。
- 找到 “是否开启验证码” 这个选项,将其设置为 “是”。
- 向下滚动页面,找到 “验证码类型”,通常选择 “数字” 或 “数字+字母” 即可。
- 点击 【确定保存】。
步骤 2:创建并配置自定义表单
-
在后台左侧菜单栏中,点击 【核心】 -> 【自定义表单】。
-
点击 【增加自定义表单】 按钮。
-
填写表单信息:
- 表单名称:给你的表单起一个名字,联系我们表单”。
- 表单栏目选择:选择一个存放表单数据的栏目(建议创建一个专门的“留言反馈”类栏目)。
- 列表模板:可以留空,系统会自动生成。
- 发布模板:这是关键! 点击后面的 【选择】 或 【修改】 按钮,进入模板编辑器。
-
编写发布模板(HTML + 验证码代码)
(图片来源网络,侵删)在模板编辑器中,你需要编写表单的HTML结构,并加入织梦的验证码调用标签,一个典型的表单模板如下:
<form action="/plus/diy.php" enctype="multipart/form-data" method="post"> <input type="hidden" name="action" value="post" /> <input type="hidden" name="diyid" value="1" /> <!-- 这里的值1是你创建的表单ID,在列表页可以看到 --> <input type="hidden" name="do" value="2" /> <!-- 隐藏字段,用于在后台获取提交信息 --> <input type="hidden" name="ip" value="{dede:ip function='GetIP()/'}" /> <table width="98%" border="0" cellpadding="5" cellspacing="1" bgcolor="#e6e6e6" align="center"> <tr> <td width="20%" bgcolor="#f9f9f9" align="right">您的姓名:</td> <td width="80%" bgcolor="#f9f9f9"> <input type="text" name="name" id="name" style="width:250px" class="text" /> </td> </tr> <tr> <td width="20%" bgcolor="#f9f9f9" align="right">联系电话:</td> <td width="80%" bgcolor="#f9f9f9"> <input type="text" name="tel" id="tel" style="width:250px" class="text" /> </td> </tr> <tr> <td width="20%" bgcolor="#f9f9f9" align="right">电子邮箱:</td> <td width="80%" bgcolor="#f9f9f9"> <input type="text" name="email" id="email" style="width:250px" class="text" /> </td> </tr> <tr> <td width="20%" bgcolor="#f9f9f9" align="right">留言内容:</td> <td width="80%" bgcolor="#f9f9f9"> <textarea name="content" id="content" style="width:250px; height:100px;" rows="6" class="textarea"></textarea> </td> </tr> <!-- ============ 关键部分:添加验证码 ============ --> <tr> <td width="20%" bgcolor="#f9f9f9" align="right">验证码:</td> <td width="80%" bgcolor="#f9f9f9"> <input type="text" name="vdcode" id="vdcode" style="width:50px" class="text" /> <!-- 织梦验证码调用标签 --> <img src="{dede:global.cfg_cmspath/}/include/vdimgck.php" width="60" height="24" style="cursor: pointer" onclick="this.src='{dede:global.cfg_cmspath/}/include/vdimgck.php?'+Math.random();" title="看不清?点击换一张" /> </td> </tr> <!-- ============================================ --> <tr> <td bgcolor="#f9f9f9" align="right"> </td> <td bgcolor="#f9f9f9"> <button type="submit" name="submit" class="btn">提交</button> </td> </tr> </table> </form>代码解释:
{dede:global.cfg_cmspath/}:这是织梦的全局变量,代表你的网站根目录,确保验证码图片能正确加载。onclick="this.src='...?'+Math.random();":这是实现点击刷新验证码的JavaScript代码,Math.random()用于确保每次点击都重新请求图片,避免浏览器缓存。name="vdcode":这个input的name属性必须是vdcode,织梦后台会自动识别它作为验证码输入框。
-
保存模板后,返回自定义表单列表,你会看到你创建的表单,点击对应的 【预览】 按钮,就可以在前台看到带有验证码的表单了。
手动在任意页面(如文章页、首页)添加表单
如果你想在织梦的任意页面(比如文章内容页、首页)添加一个独立的表单,而不是使用“自定义表单”功能,你需要手动创建模板文件,并处理表单提交逻辑。

(图片来源网络,侵删)
步骤 1:创建表单模板文件
-
在你的织梦模板目录(通常是
/templets/你的默认模板/)下,创建一个新的HTML文件,lianxi.html。 -
将下面的代码复制到
lianxi.html文件中。<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>联系我们</title> </head> <body> <h2>联系我们</h2> <form action="/plus/diy.php" enctype="multipart/form-data" method="post" onsubmit="return checkForm()"> <input type="hidden" name="action" value="post" /> <input type="hidden" name="diyid" value="1" /> <!-- 这里的1需要替换成你后面要创建的自定义表单ID --> <input type="hidden" name="do" value="2" /> <p>姓名:<input type="text" name="name" id="name" /></p> <p>电话:<input type="text" name="tel" id="tel" /></p> <p>留言:<textarea name="content" id="content"></textarea></p> <!-- 验证码部分 --> <p> 验证码:<input type="text" name="vdcode" id="vdcode" style="width:80px;" /> <img src="{dede:global.cfg_cmspath/}/include/vdimgck.php" onclick="this.src='{dede:global.cfg_cmspath/}/include/vdimgck.php?'+Math.random();" title="点击刷新" /> </p> <p><input type="submit" name="submit" value="提交" /></p> </form> <script type="text/javascript"> // 可选:简单的客户端验证 function checkForm() { if (document.getElementById('name').value == '') { alert('请输入姓名'); return false; } if (document.getElementById('content').value == '') { alert('请输入留言内容'); return false; } // 验证码为空检查 if (document.getElementById('vdcode').value == '') { alert('请输入验证码'); return false; } return true; } </script> </body> </html>
步骤 2:在后台创建对应的自定义表单
- 按照方法一的 步骤 2,在后台创建一个“自定义表单”。
- 关键:记下这个表单的 ID,你创建的表单ID是
1。 - 在你刚刚创建的
lianxi.html模板文件中,找到<input type="hidden" name="diyid" value="1" />,将其中的value="1"修改为你实际的表单ID。 - 确保后台的 【系统基本参数】 -> 【核心设置】 中的 “是否开启验证码” 已经设置为 “是”。
步骤 3:创建栏目并关联模板
- 在后台 【栏目】 -> 【添加栏目】。
- 栏目名称填写“联系我们”。
- 选择“使用自定义表单”。
- 在 “自定义表单” 的下拉菜单中,选择你刚刚创建的那个表单(联系我们表单”)。
- 在 “列表模板” 中,选择你创建的模板文件
lianxi.html。 - 栏目选择一个合适的父栏目,然后提交。
- 前台访问这个新创建的栏目链接,你就能看到并使用这个带有验证码的表单了。
总结与常见问题
-
验证码不显示?
- 检查后台 【系统基本参数】 -> 【核心设置】 中的 “是否开启验证码” 是否为“是”。
- 检查
/include/vdimgck.php文件是否存在。 - 检查你的网站目录权限是否正确,确保
include目录有可读权限。 - 清除浏览器缓存,或按
Ctrl + F5强制刷新页面。
-
提交后提示验证码错误?
- 确保输入的验证码与图片显示的一致(注意区分大小写,如果设置的是数字则不用区分)。
- 检查
input的name属性是否为vdcode。 - 检查表单提交地址
action="/plus/diy.php"是否正确。
-
如何修改验证码样式? 你可以直接在模板中修改
<img>标签的style属性,width="100" height="40"来调整验证码图片的大小。
通过以上两种方法,你就可以轻松地为织梦CMS的表单添加验证码功能了。方法一适用于标准的表单需求,而方法二则更加灵活,可以嵌入到网站的任何位置。
