PHP防止post重複提出データの簡単な例


ある帝国の面接の時にこの問題を解決しました。どのようにpostを提出して重複した問題を解決して、@暖陽と交流しました。彼は記録時間については分かりませんでした。フォームページにsessionを記録してからページ判定を提出したいです。もし同じならば成功と見なして、そしてsessionをクリアしますが、問題があります。フォームのページがこれですか?php検証のページを調整しますか?検証コードの機能に似ています。headerヘッドで期限切れの時間を設定しています。試していません。以下は私のphpで書いています。テストしてから使えます。

<?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>