iT邦幫忙

0

[筆記,PHP]避免F5重新整理重新送出表單

舜~ 2019-04-25 16:02:411661 瀏覽

寫完php表單後發現,F5重新整理會重新送出上次的動作苦惱一陣子

以下是我的解決方法,來源忘了XD

在該表單.php加入

<?php
@session_start();
$security =false; // 是否是有效的執行
if($_POST) {
    $security = $_POST['privatetoken'] == $_SESSION['token'];
    if($security){
        unset($_SESSION['token']);
    }
}
$token=md5(getrandcode());
$_SESSION['token'] = $token;

function  getrandcode(){
    $str =array(1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h');
    $res='';
    for($i=0;$i<4;$i++){
        $rand=mt_rand(1,16);
        $res .=$str[$rand];
    }
    return  $res;
}

if($security){
// ... DIY ... 
}
?>

表單內加入

<form ...>
    ...
    <input type="hidden" name="privatetoken" value="<?php echo $token;?>">
</form>

尚未有邦友留言

立即登入留言