不要将消息存储在
$_SESSION
. 相反,将其作为参数传递到GET页面。
例如,在GET阶段,将用户重定向到
http://localhost/widget.php?edit=1&message=saved
然后,在
widget.php
做:
$message = isset($_GET['message']) ? $_GET['message'] : null;
$output = null;
switch($message) {
case 'completed': // possibly use a constant here, eg MESSAGE_COMPLETED
$output = 'Your changes has been saved.';
break;
case 'failed':
$output = 'ERROR: failed to save changes!';
break;
}
// Now present $output to the user anyway you like
如果用户返回并转发,则消息仍将正常显示。它还避免了与会话状态相关的任何问题。