ホームページ  >  記事  >  バックエンド開発  >  PHP フォームを繰り返し送信する問題の経験と解決策_PHP チュートリアル

PHP フォームを繰り返し送信する問題の経験と解決策_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:27:31753ブラウズ

PHP の長い開発期間を経て、多くのユーザーが PHP をよく知っています。ここで私の個人的な理解を述べ、皆さんと議論します。ウェブサイトを構築しているとき、スパム記事がないか心配することがよくあります。ネットワーク状況やその他の理由により、ユーザーは送信が成功したかどうかがわからず、同じフォームを再度送信してしまい、PHP フォームの繰り返し送信が発生する場合があります。

同じフォームの重複送信を避ける簡単な方法があります。まず、PHP フォームの送信シーケンス番号を保存するセッション変数を定義します。ここでは「$userLastAction」として定義します。次に、フォームに隠し変数を追加し、値を

<ol class="dp-xml">
<li class="alt"><span><span>$userLastAction+1:  </span></span></li>
<li class="">
<span></span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>input</SPAN></FONT></STRONG><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>type</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>Hidden</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>name</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>lastAction</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>value</FONT></SPAN><SPAN>=</SPAN><SPAN class=tag><STRONG><FONT color=#006699><?</FONT></STRONG></SPAN><SPAN> =$userLastAction+1 </SPAN><STRONG><FONT color=#006699><SPAN class=tag>?></span><span class="tag">></span></font></strong><span>  </span>
</li>
</ol>

に設定します。最後に、送信を処理する前に、PHP フォームが送信されたかどうかを確認します。

<ol class="dp-xml">
<li class="alt"><span><span>if($lastAction</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>$userLastAction){  </span></span></li>
<li class=""><span>$userLastAction++; // 序列号加1  </span></li>
<li class="alt"><span>// 处理表单数据  </span></li>
<li class=""><span>}  </span></li>
<li class="alt">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>
</li>
</ol>

このテクニックの主な原則は、ユーザーが復帰後に再送信できないことです。つまり、復帰後の変更と再送信は許可されていませんが、Ctrl-C/Ctrl-V の灌漑方法です。避けられない。ダウンロードされたファイルのダウンロード数のバックフィル: ソフトウェアをダウンロードするとき、ソフトウェアのダウンロード統計をよく確認します。これらの統計は、ウェブマスターがソフトウェアの人気を分析するのに便利です。実装原理は、ソフトウェアの固有の識別子とダウンロード番号をバックエンド データベースに保存し、ユーザーがソフトウェアをダウンロードすると、まず対応するソフトウェアのダウンロード数が更新され、ダウンロード数が増加します。 1 によって、ダウンロード ファイルに対してダウンロードが正式に開始されます。以下の実装コードを見てください:

最初にデータ テーブルのダウンロードを作成します (バックエンドは MySql を使用します)

<ol class="dp-xml">
<li class="alt"><span><span>download表中含有下列两个字段:  </span></span></li>
<li class=""><span>id下载的文件的唯一标识  </span></li>
<li class="alt"><span>downnum 下载次数,默认值为0 </span></li>
</ol>

実装

データベースから取り出されているものとします: 説明ファイル名 Wubi フォント ダウンロード ファイル名: wbzx。 zip; 識別番号 ID 値 2 で処理した後に生成されるハイパーリンク コードは次のとおりです:

<ol class="dp-xml"><li class="alt">
<span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>a</SPAN></FONT></STRONG><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>href</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"download.php?filename=wbzx.zip&id=2"</FONT></SPAN><SPAN class=tag><STRONG><FONT color=#006699>></span></font></strong></span><span>五笔字型</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>a</SPAN><SPAN class=tag>></span></font></strong><span> </span>
</li></ol>

次のコード download.php は、ダウンロード時間の累積を処理し、渡されたファイル名に基づいてダウンロードされたファイルを見つけます。

りー

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446511.html技術記事 PHP は長い間開発されてきたため、多くのユーザーが PHP についてよく知っています。ここで私の個人的な理解を述べ、皆さんと議論します。ウェブサイトを構築していると、スパム記事が気になることがよくあります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。