>  기사  >  백엔드 개발  >  반복적인 양식 제출을 방지하는 PHP 솔루션

반복적인 양식 제출을 방지하는 PHP 솔루션

不言
不言원래의
2018-04-04 14:30:031186검색

이 글의 내용은 양식의 반복 제출을 방지하는 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로 설정하세요. , 그렇지 않으면 실행됩니다 코드

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 양식의 반복 제출을 해결하는 구현 방법 소개

[소개] 반복 제출은 우리가 사용하는 것 외에도 자주 접하는 문제입니다. Node.js를 사용하여 양식의 반복 제출을 방지할 수 있으며, PHP를 사용하여 반복 제출을 방지할 수도 있습니다. 예제 1 코드는 다음과 같습니다. 코드 복사

반복 제출은 개발 중에 자주 발생하는 문제입니다. js를 사용하여 양식의 반복 제출을 방지하는 것 외에도 PHP를 사용하여 반복 제출을 방지할 수도 있습니다.

예제 1

코드는 다음과 같습니다 코드 복사

/*
* php
에서 폼 반복 제출 방지 방법
*/
session_start();
if (empty( $_SESSION['ip'])) {//첫 번째 쓰기 작업에서는 IP 주소가 기록되어 있는지 확인하여 데이터베이스에 쓸지 여부를 확인합니다
$_SESSION['ip'] = $ _SERVER['REMOTE_ADDR'] ; //다음 새로 고침 또는 후퇴 결정을 위한 길을 마련하는 첫 번째 쓰기
                                                               // 쓰기 후 작업은 더 이상 데이터베이스에 기록되지 않습니다
echo '새로 고치지 말고 다시 돌아가세요'; //몇 가지 프롬프트나 작성된 다른 내용을 작성하세요
}
?>

<br>특정 원리

이를 방지하기 위해 세션 범위 변수 토큰이 사용됩니다.

1. 세션 열기:

session_start();

2. 양식 제출이 있는 경우

코드는 다음과 같습니다 코드를 복사하세요

if (isset($token) )

<br>토큰은 숨겨진 형태로 폼에 포함됩니다.

코드는 다음과 같습니다 코드를 복사하세요

<br>3. 양식을 반복적으로 제출하는 경우

코드는 다음과 같습니다 코드를 복사하세요

1.if ($_SESSION["token"] != $ token) { <br>2.​ // 아니요 여기서 중복 제출을 처리합니다. <br>3. // header("location:".$_SERVER['PHP_SELF']) <br>4.} else { <br>5. 제출은 여기에서 처리됩니다 <br>6. // echo "Submitted"; <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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.