1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-26 03:21:29 +00:00
This commit is contained in:
astaxie 2013-08-20 12:04:50 +08:00
parent b114f258d6
commit 769735c207
2 changed files with 18 additions and 8 deletions

View File

@ -74,14 +74,24 @@ func (ctx *Context) SetCookie(name string, value string, others ...interface{})
if len(others) > 0 { if len(others) > 0 {
switch others[0].(type) { switch others[0].(type) {
case int: case int:
fmt.Fprintf(&b, "; Max-Age=%d", others[0].(int)) if others[0].(int) > 0 {
fmt.Fprintf(&b, "; Max-Age=%d", others[0].(int))
} else if others[0].(int) < 0 {
fmt.Fprintf(&b, "; Max-Age=0")
}
case int64: case int64:
fmt.Fprintf(&b, "; Max-Age=%d", others[0].(int64)) if others[0].(int64) > 0 {
fmt.Fprintf(&b, "; Max-Age=%d", others[0].(int64))
} else if others[0].(int64) < 0 {
fmt.Fprintf(&b, "; Max-Age=0")
}
case int32: case int32:
fmt.Fprintf(&b, "; Max-Age=%d", others[0].(int32)) if others[0].(int32) > 0 {
fmt.Fprintf(&b, "; Max-Age=%d", others[0].(int32))
} else if others[0].(int32) < 0 {
fmt.Fprintf(&b, "; Max-Age=0")
}
} }
} else {
fmt.Fprintf(&b, "; Max-Age=0")
} }
if len(others) > 1 { if len(others) > 1 {
fmt.Fprintf(&b, "; Path=%s", sanitizeValue(others[1].(string))) fmt.Fprintf(&b, "; Path=%s", sanitizeValue(others[1].(string)))

View File

@ -54,7 +54,8 @@ func ReadFromRequest(c *Controller) *FlashData {
Data: make(map[string]string), Data: make(map[string]string),
} }
if cookie, err := c.Ctx.Request.Cookie("BEEGO_FLASH"); err == nil { if cookie, err := c.Ctx.Request.Cookie("BEEGO_FLASH"); err == nil {
vals := strings.Split(cookie.Value, "\x00") v, _ := url.QueryUnescape(cookie.Value)
vals := strings.Split(v, "\x00")
for _, v := range vals { for _, v := range vals {
if len(v) > 0 { if len(v) > 0 {
kv := strings.Split(v, ":") kv := strings.Split(v, ":")
@ -64,8 +65,7 @@ func ReadFromRequest(c *Controller) *FlashData {
} }
} }
//read one time then delete it //read one time then delete it
cookie.MaxAge = -1 c.Ctx.SetCookie("BEEGO_FLASH", "", -1)
c.Ctx.Request.AddCookie(cookie)
} }
c.Data["flash"] = flash.Data c.Data["flash"] = flash.Data
return flash return flash