php留言板代码
来源:烟消火灭网
时间:2026-10-17 05:48:15
写留言板代码这事,言板本质上是代码在跟HTTP协议打交道。你点“提交”按钮,言板浏览器把表单数据打包成POST请求扔给服务器,代码PHP脚本从`$_POST`里把用户名和内容捞出来,言板再拼一条INSERT语句塞进MySQL——就这几行逻辑,代码撑起了互联网早期最热闹的言板社交形态。 先看最核心的代码存储部分。别想复杂了,言板一张表就够: ```sql CREATE TABLE messages ( id INT AUTO_INCREMENT PRIMARY KEY,代码 username VARCHAR(50) NOT NULL, content TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` 注意`content`用TEXT而不是VARCHAR(255),因为没人规定留言必须短于255个字符。言板我见过有人用VARCHAR存长留言,代码结果数据被静默截断,言板用户骂了三天“我写的代码东西去哪了”——这教训够深刻。 接下来是言板写数据的PHP。新手最容易犯的错是不处理SQL注入,直接拼字符串: ```php $sql = "INSERT INTO messages (username, content) VALUES ('{ $_POST['username']}', '{ $_POST['content']}')"; ``` 这种代码跑在本地练习没问题,挂到公网半小时内就会被机器人灌满垃圾数据。用预处理语句是底线: ```php $stmt = $pdo->prepare("INSERT INTO messages (username, content) VALUES (?, ?)"); $stmt->execute([$_POST['username'], $_POST['content']]); ``` PDO帮你把参数和SQL语句分开,数据库端做转义,注入路径就堵死了。顺带说一句,`$_POST['username']`还得trim一下去空格,不然用户手滑打个空格进去,前端显示出来就是空名字,排查起来让人抓狂。 读数据更直接。按时间倒序取最近50条,加个分页参数防止数据量大了拖垮页面: ```php $page = max(1, (int)($_GET['page'] ?? 1)); $offset = ($page - 1) * 20; $stmt = $pdo->prepare("SELECT username, content, created_at FROM messages ORDER BY id DESC LIMIT 20 OFFSET ?"); $stmt->execute([$offset]); ``` 这里有个小坑:LIMIT后面的占位符在MySQL里必须用整数绑定,不能直接字符串拼接。我踩过这个坑,报错信息含糊得像在打哑谜,最后翻文档才发现PDO默认把所有参数当字符串处理。 HTML部分别整花活。一个`









