Add 0.4.4.md syntax highlighting
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
解决方案是在表单中添加一个带有唯一值的隐藏字段。在验证表单时,先检查带有该惟一值的表单是否已经递交过了。如果是,拒绝再次递交;如果不是,则处理表单进行逻辑处理。另外,如果是采用了Ajax模式递交表单的话,当表单递交后,通过javascript来禁用表单的递交按钮。
|
解决方案是在表单中添加一个带有唯一值的隐藏字段。在验证表单时,先检查带有该惟一值的表单是否已经递交过了。如果是,拒绝再次递交;如果不是,则处理表单进行逻辑处理。另外,如果是采用了Ajax模式递交表单的话,当表单递交后,通过javascript来禁用表单的递交按钮。
|
||||||
|
|
||||||
我继续拿4.2小节的例子优化:
|
我继续拿4.2小节的例子优化:
|
||||||
|
```html
|
||||||
|
|
||||||
<input type="checkbox" name="interest" value="football">足球
|
<input type="checkbox" name="interest" value="football">足球
|
||||||
<input type="checkbox" name="interest" value="basketball">篮球
|
<input type="checkbox" name="interest" value="basketball">篮球
|
||||||
@@ -13,8 +14,9 @@
|
|||||||
密码:<input type="password" name="password">
|
密码:<input type="password" name="password">
|
||||||
<input type="hidden" name="token" value="{{.}}">
|
<input type="hidden" name="token" value="{{.}}">
|
||||||
<input type="submit" value="登陆">
|
<input type="submit" value="登陆">
|
||||||
|
```
|
||||||
我们在模版里面增加了一个隐藏字段`token`,这个值我们通过MD5(时间戳)来获取惟一值,然后我们把这个值存储到服务器端(session来控制,我们将在第六章讲解如何保存),以方便表单提交时比对判定。
|
我们在模版里面增加了一个隐藏字段`token`,这个值我们通过MD5(时间戳)来获取惟一值,然后我们把这个值存储到服务器端(session来控制,我们将在第六章讲解如何保存),以方便表单提交时比对判定。
|
||||||
|
```Go
|
||||||
|
|
||||||
func login(w http.ResponseWriter, r *http.Request) {
|
func login(w http.ResponseWriter, r *http.Request) {
|
||||||
fmt.Println("method:", r.Method) //获取请求的方法
|
fmt.Println("method:", r.Method) //获取请求的方法
|
||||||
@@ -41,7 +43,7 @@
|
|||||||
template.HTMLEscape(w, []byte(r.Form.Get("username"))) //输出到客户端
|
template.HTMLEscape(w, []byte(r.Form.Get("username"))) //输出到客户端
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
```
|
||||||
上面的代码输出到页面的源码如下:
|
上面的代码输出到页面的源码如下:
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
Reference in New Issue
Block a user