如何用PHP和MySQL拦截垃圾留言并修复页面撑破问题(Dreamweaver CS6)
解决长垃圾留言撑破页面的方案
- 前端CSS强制换行(最快速的显示层解决)
给展示留言的容器添加CSS样式,强制长串字符换行,避免撑宽页面:
.guestbook-message { word-break: break-all; /* 强制拆分连续字母/数字换行 */ overflow-wrap: break-word; /* 兼容多浏览器的换行规则 */ max-width: 100%; /* 限制容器最大宽度为父元素宽度 */ /* 可选:超出部分隐藏并显示省略号 */ /* overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; */ }
把.guestbook-message替换成你页面中包裹留言的元素类名或ID即可。
后端输出/存储时处理内容
在PHP(Dreamweaver常用PHP搭配MySQL)中对留言内容做处理:- 自动插入换行:用
wordwrap函数给长内容分段
// 从数据库取出留言后处理 $raw_message = $row['message']; // 每60个字符插入换行标签 $formatted_message = wordwrap($raw_message, 60, "<br>", true); echo $formatted_message;- 截断过长内容:如果不需要完整显示,直接截断并添加省略号
$raw_message = $row['message']; $max_length = 300; if (mb_strlen($raw_message, 'UTF-8') > $max_length) { $truncated_message = mb_substr($raw_message, 0, $max_length, 'UTF-8') . '...'; } else { $truncated_message = $raw_message; } echo $truncated_message;- 自动插入换行:用
输入阶段限制长度
- 前端添加输入限制:在留言的textarea标签加
maxlength属性
<textarea name="guest_message" maxlength="500" placeholder="请输入留言..."></textarea>- 后端二次验证:避免前端被绕过,存入数据库前再检查长度
$input_message = $_POST['guest_message']; $max_input_length = 500; if (mb_strlen($input_message, 'UTF-8') > $max_input_length) { // 可以提示用户输入过长,或者自动截断 $input_message = mb_substr($input_message, 0, $max_input_length, 'UTF-8'); } // 后续执行存入数据库的操作- 前端添加输入限制:在留言的textarea标签加
数据库字段限制(辅助手段)
把guest book表中的留言字段(比如message)设置合理的长度,比如VARCHAR(500),这样即使后端验证失效,数据库也会自动截断过长内容,避免存储冗余数据。
内容的提问来源于stack exchange,提问作者Assem Hassan Mr Assem
相关产品推荐
相关产品推荐

