4

私のプロジェクトでは、ユーザーがフォームを送信した場合、ユーザーに関する情報を保存する必要があります。私がやっていることは$_SESSION[]、ユーザーがフォームを送信したときに変数に保存してセッション変数に保存し、書き込みによってif(!isset($_SESSION['page']))ユーザーがそのページにアクセスできないように制限しますが、ログアウトするとセッション全体が破棄されます。もう一度登録できますが、ユーザーは既に登録されています。ユーザーの再登録をブロックする方法 これはフォームです

これがフォームです フォームが正常に送信されたら、設定しました$_SESSION['personal_datas']=1;

送信後にユーザーがフォームに再度アクセスしたとき送信後のフォーム

私は確かめる

 <?php if(!isset($_SESSION['personal_datas'])): ?>
      //display the form
  <?php else: ?>

   <div class="well">
     YOU HAVE SUCCESSFULLY SUBMITTED THE FORM
   </div>
  <?php endif; ?>

しかし、ログアウトするとページに再度アクセスすると、同じ未記入のフォームが表示されますここに画像の説明を入力

ユーザーが再ログイン後に再登録できないようにする方法は?

4

2 に答える 2

1

Cookie またはその他の形式の半永続ストレージを使用します。いずれにせよ、ブラウザを閉じると、セッション データは期限切れになります。

于 2015-07-05T13:22:30.697 に答える
0

ユーザーがフォームに入力する固有のもの (ユーザー名や個人識別番号など) がある場合は、それをデータベースに保存し、フォームが送信されるたびに、提供されたユーザー名 (またはその他のもの) がまだ入力されていないことを確認します。データベースで。

そうしないと、ユーザーがフォームを再度送信するのを永久にブロックする方法がありません。Cookie は削除できます (ブラウザ固有です)。IP アドレスは一定ではなく、多くのユーザーが同じ IP を持つことができます。

于 2015-07-05T20:18:12.937 に答える