PHP 表单
Tous les champs possibles en (X)HTML
NB: d'autres champs apparaissent en HTML5...
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Technologies Web 2.0</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h1>Tous les champs possibles en (X)HTML </h1>
<h3>NB: d'autres champs apparaissent en HTML5...</h3>
<form action="recup.php" method="get" />
<fieldset>
<legend>Champs d'entrée simples</legend>
Texte <input name="pseudo" type="text" /> <br />
Password <input name="passe" type="password" /> <br />
Checkbox <input name="cb" type="checkbox" /> <br />
Radio <input type="radio" name="r1" value="gauche"/>
Radio <input type="radio" name="r1" value="droite"/> <br />
Reset <input type="reset" /> <br />
Button <input name="btn" value="Bouton" type="button" /> <br />
</fieldset>
<br />
<fieldset>
<legend>Champ multi-lignes</legend>
<textarea name="txtarea">
TextArea
</textarea>
</fieldset>
<br />
<fieldset>
<legend>Select simple</legend>
<select name="selSimple">
<option value="op1"> Option 1</option>
<option value="op2"> Option 2</option>
<option value="op3"> Option 3</option>
</select>
</fieldset>
<br />
<fieldset>
<legend>Select multiple</legend>
<select multiple="multiple" name="selMultiple[]">
<option value="op1"> Option 1</option>
<option value="op2"> Option 2</option>
<option value="op3"> Option 3</option>
</select>
</fieldset>
<br />
<fieldset>
<legend>Champ de soumission</legend>
Submit1 <input name="action" value="Modifier" type="submit" /> <br />
Submit2 <input name="action" value="Supprimer" type="submit" /> <br />
</fieldset>
</form>
</body>
</html>
表单安全要点
- 始终验证服务器端: 前端验证可被绕过,服务器端验证不可省略
- CSRF Token: 为每个表单生成唯一 Token 并在提交时验证(见 安全实践)
- 输出编码: 用
htmlspecialchars()转义所有用户输入后再输出到 HTML - PHP 8.x:
filter_input()是验证表单输入的推荐方式,比手动正则更可靠
// ✅ 使用 filter_input 验证
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT, [
'options' => ['min_range' => 0, 'max_range' => 150]
]);
相关文章
- PHP 安全实践 — 密码、SQL 注入、XSS、CSRF 防护
- PHP 语法与 HTTP — GET/POST 请求处理、Session、Cookie
- PHP 基础 — 入门速查