国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah php教程 PHP源碼 PHP防止用戶重復提交表單

PHP防止用戶重復提交表單

Nov 09, 2016 am 09:26 AM

我們提交表單的時候,不能忽視的一個限制是防止用戶重復提交表單,因為有可能用戶連續(xù)點擊了提交按鈕或者是攻擊者惡意提交數(shù)據(jù),那么我們在提交數(shù)據(jù)后的處理如修改或添加數(shù)據(jù)到數(shù)據(jù)庫時就會惹上麻煩。

那么如何規(guī)避這中重復提交表單的現(xiàn)象出現(xiàn)呢?我們可以從很多方面入手:
首先從前端做限制。前端JavaScript在按鈕被點擊一次后禁用,即disabled,這個方法簡單的防止了多次點擊提交按鈕,但是缺點是如果用戶禁用了javascript腳本則失效。
第二,我們可以在提交后做redirect頁面重定向,即提交后跳轉(zhuǎn)到新的頁面,主要避免F5重復提交,但是也有不足之處。
第三,就是數(shù)據(jù)庫做唯一索引約束。
第四,就是做session令牌驗證。
我們現(xiàn)在來了解下簡單的利用session token來防止表單重復提交的方法。
我們在表單中加一個input隱藏域,即type="hidden",其value值用來保存token值,當頁面刷新的時候這個token值會變化,提交后判斷token值是否正確,如果前臺提交的token與后臺不匹配,則認為是重復提交。

< ?php
/*  * PHP簡單利用token防止表單重復提交  */
session_start();
header("Content-Type: text/html;charset=utf-8");
function set_token() {
    $_SESSION[&#39;token&#39;] = md5(microtime(true));
}
function valid_token() {
    $return = $_REQUEST[&#39;token&#39;] === $_SESSION[&#39;token&#39;] ? true: false;
    set_token();
    return $return;
}
//如果token為空則生成一個token 
if(!isset($_SESSION[&#39;token&#39;]) || $_SESSION[&#39;token&#39;]==&#39;&#39;) {  
    set_token(); 
}    
if(isset($_POST[&#39;web&#39;])){  
    if(!valid_token()){  
        echo "token error,請不要重復提交!";  
    }else{  
    echo &#39;成功提交,Value:&#39;.$_POST[&#39;web&#39;];  
    } 
}else{ 
?>  
    <form method="post" action="">  
    <input type="hidden" name="token" value="<?php echo $_SESSION[&#39;token&#39;]?>">  
    <input type="text" class="input" name="web" value="www.jb51.net">  
    <input type="submit" class="btn" value="提交" />  
    </form> 
<?php 
} 
?>  

以上是一個簡單的防止重復提交表單的例子。
那么實際項目開發(fā)中,會對表單token做更復雜的處理,即我們說的令牌驗證。可能要做的處理 有:驗證來源域,即來路,是否為外部提交;匹配要執(zhí)行的動作,是添加、修改or刪除;其次最重要的是構(gòu)建token,token可以采用可逆的加密算法, 盡可能復雜,因為明文還是不安全的。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276