# 表单处理

URL: https://caijiao.org/go/06-web/03-form
Source: docs/go/06-web/03-form.md
Description: 本节介绍 Go 语言中 HTTP 表单的处理方法，包括表单数据解析与验证。

## 1. 解析表单数据

```go
func handler(w http.ResponseWriter, r *http.Request) {
    err := r.ParseForm()
    if err != nil {
        http.Error(w, "ParseForm() error", http.StatusBadRequest)
        return
    }
    name := r.FormValue("name")
    fmt.Fprintf(w, "Hello, %s!", name)
}
````

## 2. 获取 URL 查询参数

```go
query := r.URL.Query()
id := query.Get("id")
```

## 3. 处理 POST 表单

支持 `application/x-www-form-urlencoded` 和 `multipart/form-data`。

## 4. 表单验证（简单示例）

```go
if name == "" {
    http.Error(w, "Name is required", http.StatusBadRequest)
    return
}
```

---

表单处理是实现用户交互和数据提交的关键步骤。
