1
0
mirror of https://github.com/astaxie/beego.git synced 2024-12-22 19:10:50 +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 {
switch others[0].(type) {
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:
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:
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 {
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),
}
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 {
if len(v) > 0 {
kv := strings.Split(v, ":")
@ -64,8 +65,7 @@ func ReadFromRequest(c *Controller) *FlashData {
}
}
//read one time then delete it
cookie.MaxAge = -1
c.Ctx.Request.AddCookie(cookie)
c.Ctx.SetCookie("BEEGO_FLASH", "", -1)
}
c.Data["flash"] = flash.Data
return flash