diff --git a/inc/actions.php b/inc/actions.php index 2faf8bfcaa86ef72cbba2a7f7e40e4ed45999119..41e81e2675692ea725b2852bf7e3f6404d8d2d7b 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -312,9 +312,24 @@ function act_save($act){ return 'show'; } +/** + * Do a redirect after receiving post data + * + * Tries to add the section id as hash mark after section editing + */ function act_redirect($id,$preact){ global $PRE; global $TEXT; + global $MSG; + + //are there any undisplayed messages? keep them in session for display + //on the next page + if(isset($MSG) && count($MSG)){ + //reopen session, store data and close session again + @session_start(); + $_SESSION[DOKU_COOKIE]['msg'] = $MSG; + session_write_close(); + } //get section name when coming from section edit if($PRE && preg_match('/^\s*==+([^=\n]+)/',$TEXT,$match)){ diff --git a/inc/init.php b/inc/init.php index def5d7997fe9a79dc1297b104fbae35bada96cce..6c3f54e16e41812b66fcb3bff07bc8d790e2d22a 100644 --- a/inc/init.php +++ b/inc/init.php @@ -118,6 +118,12 @@ session_set_cookie_params(0,DOKU_REL,'',($conf['securecookie'] && is_ssl())); } session_start(); + + // load left over messages + if(isset($_SESSION[DOKU_COOKIE]['msg'])){ + $MSG = $_SESSION[DOKU_COOKIE]['msg']; + unset($_SESSION[DOKU_COOKIE]['msg']); + } } // kill magic quotes