这份指南将从 基础概念、创建流程、表单调用、高级技巧 四个方面,为你全面解析 diy.php。

基础概念
-
什么是
diy.php?diy.php是一个动态脚本,它根据你在后台配置的表单ID,动态生成对应的HTML表单,并处理表单提交的数据,你不需要手动创建add.php或post.php这样的文件。 -
核心流程:
- 后台创建表单:在织梦后台定义一个表单,包含哪些字段、字段类型、是否必填等。
- 前台调用表单:使用特定的Dede标签
{dede:diyform}在任意页面(如文章页、首页)中调用这个表单。 - 用户提交数据:访客在前台填写并提交表单。
- 数据入库与管理:数据被存入织梦数据库的
dede_diyform相关表中,你可以在后台“核心” -> “内容模型管理” -> “自定义表单”中查看和管理这些数据。
创建自定义表单的完整流程
这是最核心的步骤,请跟着操作。
步骤 1:进入自定义表单管理
登录织梦后台,点击菜单栏的 “核心” -> 模型管理” -> “自定义表单”。

步骤 2:创建一个新的自定义表单
点击右上角的 “增加一个自定义表单” 按钮。
步骤 3:填写表单信息
在弹出的页面中,填写以下关键信息:
- 表单名称:给你的表单起一个名字,在线报名”、“产品咨询”、“留言反馈”等,这个名字主要是为了在后台方便识别。
- 表单提示:这是提交成功后显示给用户的信息,提交成功!我们会尽快与您联系。”。
- 表单字段:这是最核心的部分,你需要在这里定义表单里包含哪些输入框、下拉框等。
步骤 4:添加表单字段
在“表单字段”区域,点击 “添加字段”,开始逐个添加你需要的字段。
每个字段都需要设置以下属性:

- 字段名称:数据库中的字段名,只能使用英文字母、数字和下划线,
name,tel,company,一旦创建,尽量不要修改。 - 字段提示:在输入框上方显示给用户的提示文字,请输入您的姓名”、“请选择您的性别”。
- 是否必填:勾选此项后,用户如果不填写该字段将无法提交表单。
- 数据校验:对输入内容进行格式校验。
数字:只能输入数字。邮件:必须符合邮箱格式。电话:通常用于手机号校验(正则表达式可自定义)。QQ:用于QQ号校验。URL:网址格式。身份证:身份证号码格式。
- 默认值:可以设置一个默认显示的内容。
- 显示方式:选择字段在前台的展示形式。
- 文本:单行文本输入框。
- 多行文本:多行文本域,适合填写长文本。
- 下拉框:单选下拉菜单。
- 单选框:单选按钮组。
- 复选框:多选按钮组。
- 数字:只能输入数字的文本框。
- 时间:日期时间选择器。
- 附件:允许用户上传文件。
- 编辑器:集成织梦的编辑器,可以输入富文本。
示例:创建一个“在线报名”表单
-
字段1:姓名
- 字段名称:
name - 字段提示:
请输入您的姓名 - 是否必填:是
- 显示方式:文本
- 字段名称:
-
字段2:手机号
- 字段名称:
tel - 字段提示:
请输入您的手机号码 - 是否必填:是
- 数据校验:电话
- 显示方式:文本
- 字段名称:
-
字段3:意向课程
- 字段名称:
course - 字段提示:
请选择您的意向课程 - 是否必填:是
- 显示方式:下拉框
- 选项:在“选项值”中填写,每行一个,
PHP开发 前端开发 UI设计
- 字段名称:
-
字段4:备注
- 字段名称:
remark - 字段提示:
其他备注信息(选填) - 是否必填:否
- 显示方式:多行文本
- 字段名称:
填写完所有字段后,点击底部的 “保存” 按钮。
步骤 5:获取表单ID
保存成功后,你会回到自定义表单列表页面,找到你刚刚创建的表单,在 “表单ID” 一列会有一个数字,请记下这个ID,1。
在前台页面调用表单
你需要在网站的某个页面展示这个表单。
使用Dede标签(推荐)
这是最标准、最灵活的方法,将以下代码复制到你想要显示表单的HTML文件中(index.htm 或一个专门的联系页面)。
{dede:diyform id='1'/}
id='1':这里的1就是你上一步记下的 表单ID。
如何修改表单的HTML样式?
默认的样式可能很朴素,你可以通过修改织梦的模板文件来自定义样式。
-
找到模板文件: 织梦的自定义表单模板存放在
/templets/default/diyform.htm,这个文件是根据你创建表单时选择的模板(默认是default)来决定的。 -
备份并修改
diyform.htm: 在修改之前,请务必先备份这个原始文件,然后用你喜欢的代码编辑器(如VS Code, Sublime Text)打开它。 -
理解模板结构:
diyform.htm文件里使用了织梦的底层字段变量{dede:field.name/}等,你可以像修改普通HTML文件一样,在里面添加CSS样式和布局。示例
diyform.htm修改:<!DOCTYPE html> <html> <head> <meta charset="UTF-8">在线报名</title> <style> .my-form { max-width: 500px; margin: 20px auto; padding: 20px; border: 1px solid #ddd; border-radius: 5px; } .my-form p { margin-bottom: 15px; } .my-form label { display: block; margin-bottom: 5px; font-weight: bold; } .my-form input[type="text"], .my-form select, .my-form textarea { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 3px; box-sizing: border-box; } .my-form input[type="submit"] { background-color: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 3px; cursor: pointer; } .my-form input[type="submit"]:hover { background-color: #0056b3; } </style> </head> <body> <h2 style="text-align: center;">在线报名</h2> <!-- 这里的 {dede:diyform} 标签会根据你的字段配置生成具体的表单HTML --> {dede:diyform id='1'/} </body> </html>通过修改这个文件,你可以完全控制表单的外观。
使用PHP代码调用
如果你想在PHP文件中直接调用表单,可以使用以下代码:
<?php
require_once(dirname(__FILE__)."/include/common.inc.php");
require_once(DEDEINC."/arc.partview.class.php");
// 第二个参数是表单ID,第三个参数是模板文件名(相对于templets目录)
$pv = new PartView();
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/diyform.htm");
$pv->Display();
?>
这种方法本质上和方法一是一样的,只是调用方式不同,通常我们推荐使用 {dede:diyform} 标签,因为它更符合织梦模板的规范。
高级技巧与常见问题
如何在提交后跳转到指定页面?
在后台“自定义表单”列表中,点击你表单后面的 “修改” 按钮,在 “表单提示” 文本框的下方,有一个 “跳转网址” 的输入框,在这里填入你希望用户提交成功后跳转的URL即可,留空则不跳转。
如何管理提交的数据?
- 后台查看:后台“核心” -> “内容模型管理” -> “自定义表单”,点击你表单后面的 “管理” 按钮。
- 数据导出:在管理页面,你可以勾选多条数据,然后点击顶部的 “选择:数据导出为Excel文件”,将数据下载到本地。
如何防止表单被恶意提交(垃圾信息)?
织梦 diy.php 默认集成了 验证码 功能来防止机器人提交。
- 开启验证码:在后台“自定义表单”的修改页面,找到 “验证码” 选项,设置为“是”即可。
- 前台代码:模板文件
diyform.htm中,织梦会自动在表单末尾添加验证码的输入框,你无需手动添加。
常见错误:未定义变量:diyid
这个错误通常是因为你在调用 {dede:diyform} 标签时,没有提供正确的 id 属性,或者ID不存在。
请检查你的调用代码:{dede:diyform id='1'/},确保 1 是一个真实存在的表单ID。
如何修改已创建的字段?
- 字段名称:强烈不建议修改,因为这涉及到数据库结构变更,可能导致数据错乱或丢失。
- 字段提示、是否必填等:这些信息可以在后台“自定义表单”的修改页面进行更改。
| 步骤 | 操作 | 关键点 |
|---|---|---|
| 后台创建 | 核心 -> 内容模型管理 -> 自定义表单 -> 增加一个 | 定义字段名称(英文)、字段提示、是否必填、显示方式 |
| 获取ID | 在自定义表单列表中找到你的表单 | 记下表单ID(如 1) |
| 前台调用 | 在模板文件中使用 {dede:diyform id='1'/} |
id 必须和后台的表单ID一致 |
| 美化表单 | 修改 /templets/default/diyform.htm 文件 |
自定义CSS样式和HTML结构 |
| 管理数据 | 后台“自定义表单”列表 -> 点击“管理” | 查看、审核、删除、导出数据 |
通过以上步骤,你就可以在织梦网站中灵活地创建和使用各种功能强大的表单了。
