在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的。来看看罪魁祸首是谁。
嫌疑人:base64_encode 和 base64_decode
罪行:我写了一个跳转和提示函数,接收提示信息后跳转到指定的页面,但是跳转提示时汉字乱码。
跳转模版代码如下:
[url=<?php echo base64_decode($_GET[]
</div>
<script type="text/javascript">
(function(){
var wait = document.getElementById('wait'),href = document.getElementById('href').href;
var interval = setInterval(function(){
var time = --wait.innerHTML;
if(time <= 0) {
location.href = href;
clearInterval(interval);
};
}, 1000);
})();
</script>
</body>
</html>
PHP redirect函数定义如下:
/* 提醒后跳转 */
function _alert( $success=true, $message='success', $time='3', $url='/'){
header('Location:/include/redirect.php?success='.$success.'&message='.base64_encode($message).'&time='.$time.'&url='.base64_encode($url));
exit;
}
假如在PHP中这样调用函数的话:
[url=http://www.1sucai.cn/article/51239.htm]PHP安全的URL字符串base64编码和解码[/url]