PHP实例入门:从表单处理到数据库操作实战

2026-11-03 0 6

学习PHP最有效的方式不是背语法,而是动手写可运行的小实例。下面三个例子覆盖Web开发中最常见的场景,代码可直接在本地环境测试。

实例一:接收并校验表单数据

先写一个简单的留言表单,提交到 save.php。服务端用 filterinput 取数据,避免直接信任 $POST。

$name = trim(filterinput(INPUTPOST, ‘name’, FILTERSANITIZESPECIAL_CHARS));

$email = filterinput(INPUTPOST, ’email’, FILTERVALIDATEEMAIL);

if (!$name || !$email) {

exit(‘请填写有效的姓名和邮箱’);

}

要点:FILTERVALIDATEEMAIL 返回 false 时说明格式不合法;输出到页面时用 htmlspecialchars 转义,防止XSS。这个实例虽小,却体现了“输入校验 + 输出转义”的基本安全思路。

实例二:用PDO查询数据

假设有一张 articles 表,按关键词搜索标题。不要拼接SQL字符串,改用预处理语句。

$pdo = new PDO(‘mysql:host=localhost;dbname=demo;charset=utf8mb4’, $user, $pass, [

PDO::ATTRERRMODE => PDO::ERRMODEEXCEPTION,

]);

$stmt = $pdo->prepare(‘SELECT id, title FROM articles WHERE title LIKE ? ORDER BY id DESC LIMIT 10’);

$stmt->execute([‘%’ . $keyword . ‘%’]);

foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {

echo htmlspecialchars($row[‘title’], ENT_QUOTES, ‘UTF-8’);

}

预处理能有效阻断SQL注入,charset=utf8mb4 则兼顾中文与表情符号。注意把连接参数放到配置文件,不要硬编码在业务代码里。

实例三:文件上传与目录遍历

上传实例要关注三点:类型白名单、大小限制、重命名存储。

$allow = [‘image/jpeg’ => ‘jpg’, ‘image/png’ => ‘png’];

$info = finfoopen(FILEINFOMIME_TYPE);

$mime = finfofile($info, $FILES[‘pic’][‘tmp_name’]);

if (!isset($allow[$mime]) || $_FILES[‘pic’][‘size’] > 2 * 1024 * 1024) {

exit(‘仅支持2MB以内的JPG/PNG’);

}

$newName = bin2hex(random_bytes(16)) . ‘.’ . $allow[$mime];

moveuploadedfile($FILES[‘pic’][‘tmpname’], DIR . ‘/uploads/’ . $newName);

用MIME检测而非文件后缀判断类型,随机文件名避免覆盖与路径猜测。展示上传目录时,配合 glob('uploads/*.jpg') 遍历即可,不要直接暴露用户可控路径。

让实例更接近项目

把重复的数据库连接抽成 db.php,表单校验封装为函数,上传配置写入数组。小实例的价值在于可复用:先跑通,再重构,最后补上错误日志与异常处理。这样写出来的PHP代码,才经得起真实流量的检验。

看过这篇文章的人,推荐看以下内容

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

版权声明:所有的源码、软件和资料,不得使用于非法商业用途,不得违反国家法律,一切关于该资源商业行为与本站无关。

免费cms模板 建站百科 PHP实例入门:从表单处理到数据库操作实战 https://www.mianfeicms.com/12321.html

我是签名

相关文章

猜你喜欢
发表评论
暂无评论