$message是织梦CMS中一个非常核心和常用的全局变量,主要用于在前台模板中显示系统或自定义的提示信息,它的作用类似于PHP中的echo或print,但专门用于信息提示,并且经常与跳转功能结合使用。

(图片来源网络,侵删)
$message的核心作用
$message就是用来在前台页面上显示一段文字信息,它最常见的使用场景是:
- 操作成功提示:文章发布成功!”、“评论已提交!”。
- 操作失败提示:登录失败,用户名或密码错误!”、“该用户名已被注册!”。
- 系统信息反馈:系统将在5秒后跳转到首页...”。
- 验证错误提示:请输入有效的电子邮箱地址!”。
$message的典型使用场景
$message通常与ShowMsg()这个PHP函数配合使用。ShowMsg()函数负责生成包含$message信息的提示页面,并可以控制页面跳转。
最经典的例子就是用户登录:
在/member/index.php文件中,当用户提交登录信息后,PHP代码会验证用户名和密码。

(图片来源网络,侵删)
PHP代码逻辑 (通常在 member/index_do.php 或类似文件中):
<?php
require_once(dirname(__FILE__)."/config.php");
require_once(DEDEINC."/membermodel.class.php");
$dsql = new DedeModel();
$uid = $dsql->GetOne("SELECT id FROM `#@__member` WHERE userid='$userid' AND pwd='$pwd'");
if(is_array($uid)) {
// 登录成功,设置会话,然后跳转
$msg = '登录成功!';
$gourl = 'index.php'; // 跳转到会员中心首页
ShowMsg($msg, $gourl, 0, 2000);
} else {
// 登录失败,显示错误信息并跳回登录页
$msg = '登录失败,用户名或密码错误!';
$gourl = 'login.php'; // 跳转回登录页面
ShowMsg($msg, $gourl, 0, 2000);
}
?>
模板文件 (通常位于 /member/templets/showmsg.htm):
这个模板文件是专门用来显示$message信息的。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">提示信息</title>
<style>
body { font-family: "Microsoft YaHei", Arial, sans-serif; background-color: #f5f5f5; }
.msg-box { width: 400px; margin: 100px auto; padding: 20px; background: #fff; border-radius: 5px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); text-align: center; }
.msg-title { font-size: 18px; font-weight: bold; margin-bottom: 15px; }
.msg-content { font-size: 14px; color: #333; line-height: 1.6; }
.msg-redirect { margin-top: 20px; font-size: 12px; color: #999; }
</style>
</head>
<body>
<div class="msg-box">
<div class="msg-title">系统提示</div>
<div class="msg-content">
{dede:global name='message'/} <!-- 这里就是显示$message的地方 -->
</div>
<div class="msg-redirect">
{dede:global name='gourl'/}
<br />
如果您的浏览器没有自动跳转,请点击上面的链接!
</div>
</div>
</body>
</html>
流程解析:
- 用户在
login.php输入用户名密码,点击登录。 - 表单提交到
index_do.php。 - PHP代码验证失败,调用
ShowMsg('登录失败...', 'login.php', ...)。 ShowMsg()函数内部会设置一个全局变量$message,值为“登录失败...”,然后加载showmsg.htm模板。- 模板引擎解析
{dede:global name='message'/}标签时,就会把PHP中$message变量的值替换到这里。 - 用户看到的页面就是一个提示“登录失败...”的页面,并在几秒后自动跳转回
login.php。
$message的来源
$message变量的值通常由以下方式产生:
ShowMsg()函数:这是最主要、最规范的来源,在织梦的PHP文件中,几乎所有需要显示提示信息的地方都会调用ShowMsg(),这个函数会自动将第一个参数(提示信息)赋值给全局变量$message。- 自定义赋值:开发者也可以在任何PHP文件中直接给
$message变量赋值,然后在模板中显示。<?php $message = "这是一条自定义信息"; // ... 然后包含一个显示$message的模板文件 include(DEDETEMPLATE.'/plus/showmsg.htm'); ?>
- 其他函数:一些织梦内置的函数或类在执行特定操作时,可能会通过
$message来返回结果或错误信息。
如何在模板中调用
在织梦模板中,有几种方式可以显示$message:
{dede:global name='message'/}:这是最标准、最推荐的方式。{dede:global}用于获取全局PHP变量。{dede:var name='message' /}:在某些版本或特定情况下,{dede:var}也可以用来获取变量,但{dede:global}更通用。- 直接使用
$message:在早期或某些非标准的模板写法中,可能会直接使用<?=$message?>,这种方式虽然也能工作,但不符合织梦的标签规范,不推荐使用。
| 特性 | 描述 |
|---|---|
| 变量名 | $message |
| 数据类型 | String (字符串) |
| 作用域 | 全局变量,主要在PHP和前台模板之间传递信息。 |
| 主要用途 | 在前台显示操作成功、失败或系统提示信息。 |
| 搭档函数 | ShowMsg(),ShowMsg()负责设置$message并加载提示模板。 |
| 模板标签 | {dede:global name='message'/} |
| 自定义 | 可以在PHP文件中直接$message = '...'进行赋值。 |
一句话概括:$message是织梦CMS用来在前台页面上显示“提示信息”这个“传声筒”变量,它通常由后台的ShowMsg()函数“喂”给它,再由模板的{dede:global}标签“说”给用户听。
