我有一个重定向方法,我通常在脚本执行后运行:
public static function redirect($to=http_referer){
if($_POST){$_SESSION['post']=$_POST;} // <-- storing the $_POST values
if(substr($to,0,1 )==="#"){$to=http_referer.$to;}
if(!headers_sent()){return exit(header('Location:'.$to));}
else{return print_r('<script>window.location = "'.$to.'";</script>');}
}
如您所见,我在会话中存储$_POST
值,以便在重定向用户后使值可用。如果出现问题,我会将用户重定向回上一页。
我有另外一种方法:
public static function _POST($post=null){
if(empty($post)){ return $_SESSION['post']; }
else { return $_SESSION['post'][$post]; }
}
这样我就能得到这个形式:
<input type="text" name="username" value="<?=KD::_POST('username')?>"> // 'KD' is the class name
...并且我们将使用用户在重定向之前输入的内容填充值 但我认为如果输入类型是&#34;密码&#34;这可能不是一个好主意。
是否有其他更好的和/或更安全的方法来处理这类事情?