PHP防止post重復提交數(shù)據(jù)的簡單例子
在某帝國面試的時候問題了這個題: 怎么處理post提交重復的問題, 后來跟@暖陽交流,他說記錄時間,我沒有明白,我想的是用session在表單頁面記錄下,然后提交頁面判斷,如果相等則視為成功,并清空session,但有個問題是如果表單頁面是html的呢,乍辦?要不調個php驗證的頁面?類似驗證碼的功能. 還有的說用 header頭設置過期時間...但沒試.以下是我php寫的,經(jīng)測試可用.
<?php
//開啟session
session_start();
//如果有提交標識
if(isset($_GET['action']) && $_GET['action'] === 'save'){
//如果有session且跟傳過來的值一樣才算提交
if(isset($_SESSION['__open_auth']) && isset($_POST['auth']) && $_SESSION['__open_auth'] == $_POST['auth']){
print_r($_POST);
$_SESSION['__open_auth'] = null;//清空
} else {
//走起
header("location: post.php");
}
exit();
}
//授權
$auth = $_SESSION['__open_auth'] = time();
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>post</title>
</head>
<body>
<form action="post.php?action=save" method="post">
<ul>
<li>
<input type="hidden" name="auth" value="<?php echo $auth;?>">
<input type="text" name="userName">
</li>
<li>
<input type="password" name="userpass">
</li>
<li>
<input type="submit" value="走起">
</li>
<li>
<?php echo time(); ?>
</li>
</ul>
</form>
</body>
</html>
- php中使用Curl、socket、file_get_contents三種方法POST提交數(shù)據(jù)
- php采用ajax數(shù)據(jù)提交post與post常見方法總結
- php curl模擬post提交數(shù)據(jù)示例
- 解析PHP 使用curl提交json格式數(shù)據(jù)
- PHP中如何判斷AJAX提交的數(shù)據(jù)
- php jq jquery getJSON跨域提交數(shù)據(jù)完整版
- php防止偽造的數(shù)據(jù)從URL提交方法
- php判斷文件上傳類型及過濾不安全數(shù)據(jù)的方法
- php過濾所有惡意字符(批量過濾post,get敏感數(shù)據(jù))
- PHP數(shù)據(jù)過濾的方法
- php 字符過濾類,用于過濾各類用戶輸入的數(shù)據(jù)
- PHP數(shù)據(jù)的提交與過濾基本操作實例詳解
相關文章
PHP 修復未正常關閉的HTML標簽實現(xiàn)代碼(支持嵌套和就近閉合)
PHP 修復未正常關閉的 HTML 標簽 支持嵌套和就近閉合,需要的朋友可以參考下2012-06-06
CodeIgniter開發(fā)實現(xiàn)支付寶接口調用的方法示例
這篇文章主要介紹了CodeIgniter開發(fā)實現(xiàn)支付寶接口調用的方法,結合實例形式分析了CodeIgniter開發(fā)支付寶接口的操作步驟與相關實現(xiàn)技巧,需要的朋友可以參考下2016-11-11
使用swoole 定時器變更超時未支付訂單狀態(tài)的解決方案
本文主要是借助 swoole 定時器和 redis 的 zset 來實現(xiàn)的定時檢查并過期未支付訂單,感興趣的朋友跟隨小編一起看看吧2019-07-07

