ホームページ >バックエンド開発 >PHPチュートリアル >フォームの繰り返し送信を防ぐ PHP ソリューション

フォームの繰り返し送信を防ぐ PHP ソリューション

不言
不言オリジナル
2018-04-04 14:30:031211ブラウズ

この記事の内容は、フォームの繰り返し送信を防ぐための PHP ソリューションです。必要な友達はこの記事の内容を参照してください

<br>

PHP+SESSION はフォームの繰り返し送信を防ぎます

。 Index.php

<br>

現在のフォームページ is_submit は 0 に設定されます

SESSION_START(); $_SESSION['is_submit'] = 0;
<form id="reg" action="post.php" method="post">     <p>用户名:<input type="text" class="input" name="username" id="user"></p>     <p>密   码:<input type="password" class="input" name="password" id="pass"></p>     <p>E-mail:<input type="text" class="input" name="email" id="email"></p>     <p><input type="submit" name="submit" class="btn" value="提交注册"/></p> </form>
post.php

フォームが送信された場合、post.php が更新された場合は、現在の 'is_submit を 1 に設定します, then else が実行されます コード

SESSION_START(); if (isset($_POST['submit'])) {     if ($_SESSION['is_submit'] == '0') {         $_SESSION['is_submit'] = '1';         echo "代码块,要做的事,代码...<a onclick=&#39;history.go(-1);&#39; href=&#39;javascript:void(0)&#39;>返回</a>";     } else {         echo "请不用重复提交<a href=&#39;index.php&#39;>PHP+SESSION防止表单重复提交</a>";     } }
<br>

php フォームの繰り返し送信を解決する実装方法の紹介

【はじめに】 繰り返し送信は開発においてよく遭遇する問題です。 js を使用してフォームの繰り返し送信を防ぐだけでなく、php を使用して繰り返し送信を防ぐこともできます。例 1 コードは次のとおりです コードをコピーします

繰り返し送信は、開発中に頻繁に遭遇する問題です。js を使用してフォームの繰り返し送信を防ぐことに加えて、php を使用することもできます。

例1

コードは以下の通りですコードをコピー

<br>特定の原則

これを防ぐために、セッションスコープ変数トークンが使用されます。

1. セッションを開きます:

session_start();

2. フォーム送信がある場合

/*
* php
でフォームの繰り返し送信を防ぐ方法
*/
session_start();
if (empty( $_SESSION['ip'])) {//最初の書き込み操作では、データベースに書き込むかどうかを知るために、IP アドレスが記録されているかどうかを判断します
$_SESSION['ip'] = $ _SERVER['REMOTE_ADDR'] ; // 初めて書き込まれ、後で更新されるか後退するか判断するための舗装を行います
////// データベースへの書き込み操作} Else {// はすでに最初の操作を行っています初回書き込み後の操作はデータベースに書き込まれなくなります
echo 'もう一度更新してバックオフしないでください' // 書き込まれたプロンプトやその他の内容を書き込みます
}
?><br>
if (isset($token) )
コードは次のとおりです

トークンは非表示形式でフォームに含まれています。

<br>

コードは次のとおりです

コードをコピーします
3. フォームが繰り返し送信される場合

<br>

コードは次のとおりです1.if ($_SESSION["token"] != $ token) {
コードをコピーします
2. // いいえ、重複した送信はここで処理されます

3. // header("location:".$_SERVER['PHP_SELF']); else { <br>5.送信はここで処理されます <br>6. // echo "Submitted"; }<br><br><br><br>

コードは次のとおりです

1.$token = mt_rand(0,1000000 ) ;

2.$_SESSION['token'] = $token;
<br>

<br>

<br>

此文链接:http://makaidong.com/kenshinobiy/22427_350409.html

<br>

转载请注明出处:PHP防止表单重复提交的解决方法

来源:马开东云搜索(电话:15110131480 微信:makaidongzi QQ:1130122167 微信公众号:makaidong-com)<br>       欢迎分享本文,转载请保留出处!

相关推荐:

php防止表单重复提交详解

PHP防止表单重复提交以及表单过期处理

PHP防止表单重复提交的几种常用方法汇总

以上がフォームの繰り返し送信を防ぐ PHP ソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。