Commit 769735c2 authored by astaxie's avatar astaxie

fix #166

parent b114f258
...@@ -74,14 +74,24 @@ func (ctx *Context) SetCookie(name string, value string, others ...interface{}) ...@@ -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)))
......
...@@ -54,7 +54,8 @@ func ReadFromRequest(c *Controller) *FlashData { ...@@ -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 { ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment