You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何防止PHP提交表单后清空字段?附XHTML标签疑问

问题解答

1. 提交表单后保留PHP表单字段内容

不需要JS的话,直接在input标签的value属性中填充提交过来的$_POST数据即可,同时为了安全要对内容进行转义处理,避免XSS风险。

修改后的代码示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>create</title>
</head>

<body>
<form method="post">
<label for="sometext"></label>
<input type="text" id="sometext" name="sometext" value="<?php echo isset($_POST['sometext']) ? htmlspecialchars($_POST['sometext']) : ''; ?>" />
<button name="save">Save File</button>
</form>

<?php
if(isset($_POST['save']))
{
    $text = $_POST['sometext'];
    $file=fopen("myfile.txt", "w");
    fwrite($file, $text);
    fclose($file);
}
?>
</body>
</html>

说明:

  • 用isset($_POST['sometext'])判断是否有提交的数据,有就输出转义后的内容,没有则留空
  • htmlspecialchars()会把特殊字符转成HTML实体,防止用户输入的恶意代码被执行
  • 注意原代码中input的type写为sometext是错误的,已修正为标准的text类型

2. input标签末尾斜杠的作用

这个斜杠是XHTML的语法要求:

  • XHTML是遵循XML规则的HTML版本,XML要求所有标签必须闭合。对于<input>、<img>、<br>这类没有成对闭合标签的自闭合元素,必须用/>来表示标签闭合。
  • 在HTML5标准中,这个斜杠是可选的,浏览器会自动识别这类自闭合标签,不加斜杠也能正常渲染,但保留斜杠可以让代码兼容XHTML的解析环境。

内容的提问来源于stack exchange,提问作者anon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:07:10