php表单获取文本框输入需确保method与超全局数组匹配、name属性一致,用isset()和!empty()判空防notice,输出前必过htmlspecialchars()防xss,数据库写入须用预处理或mysqli_real_escape_string()。
PHP 表单获取文本框输入,关键不是“能不能拿到”,而是“拿得对不对、安不安全”。直接用 $_POST['name'] 或 $_GET['name'] 读取,但没校验、没过滤、没判断是否提交,90% 的基础问题都出在这几步。
确认表单 method 和 input name 是否匹配
常见错误是前端写 <form method="post"></form>,后端却去读 $_GET['username'];或者 <input name="user_name">,后端却写 $_POST['username'](少个下划线)。
- 检查 HTML 表单的
method属性:是post就查$_POST,是get就查$_GET -
<input>标签必须有name属性,id或class不起作用 - 提交按钮要有
type="submit",否则$_POST可能为空
用 isset() 和 empty() 判断输入是否真实存在
直接访问 $_POST['content'] 会触发 Notice: Undefined index 错误。不能假设用户一定点了提交、填了内容。
- 先用
isset($_POST['content'])确认字段被提交(防止未提交时报错) - 再用
!empty($_POST['content'])判断值非空且非 “0”、false、null 等“假值” - 如果只是想区分“空字符串”和“未提交”,用
array_key_exists('content', $_POST)
别跳过 htmlspecialchars() 就直接 echo 输出
用户在文本框里输 <script>alert(1)</script>,你原样 echo $_POST['comment'],就等于把 XSS 漏洞亲手贴到页面上。