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>
最初にデータ テーブルのダウンロードを作成します (バックエンドは 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 は、ダウンロード時間の累積を処理し、渡されたファイル名に基づいてダウンロードされたファイルを見つけます。
りー