이번에는 PHP+Session에서 양식의 반복 제출을 방지하는 단계에 대해 자세히 설명하겠습니다. PHP+Session에서 양식의 반복 제출을 방지하기 위해 사용해야 하는 노트는 무엇입니까? , 살펴 보겠습니다.
index.php
현재 양식 페이지 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
양식이 제출되면 현재 'is_submit을 1로 설정하고 post.php가 새로 고쳐지면 else를 설정합니다. 코드가 실행됩니다
SESSION_START(); if (isset($_POST['submit'])) { if ($_SESSION['is_submit'] == '0') { $_SESSION['is_submit'] = '1'; echo "代码块,要做的事,代码...<a onclick='history.go(-1);' href='javascript:void(0)'>返回</a>"; } else { echo "请不用重复提交<a href='index.php'>PHP+SESSION防止表单重复提交</a>"; } }
양식의 반복 제출 문제를 해결하기 위한 PHP 소개
[소개] 반복 제출은 반복 제출을 방지하기 위해 js를 사용하는 것 외에도 개발에서 자주 발생하는 문제입니다. 양식을 제출하려면 PHP를 사용하여 중복을 방지할 수도 있습니다.
예제 1 코드는 다음과 같습니다
중복 제출은 개발 중에 자주 발생하는 문제입니다. js를 사용하여 양식의 반복 제출을 방지하는 것 외에도 PHP를 사용하여 반복 제출을 방지할 수도 있습니다.
예제1
코드는 다음과 같습니다
<?php /* * php中如何防止表单的重复提交 */ session_start(); if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫 //...........//写入数据库操作 } else {//已经有第一次写入后的操作,也就不再写入数据库 echo '请不要再次刷新和后退'; //写一些已经写入的提示或其它东西 } ?>
구체적인 원리
세션 범위 변수 토큰을 방지합니다.
1. 세션 열기:
session_start();
session_start();
2. 如果有表单提交
代码如下 复制代码
if (isset($token))
if (isset($ token))
토큰은 숨겨진 형태로 양식에 포함됩니다. 다음과 같이 코드를 복사하세요<input type="hidden" name="token" value="<?php echo $token; ?>" />
if ($_SESSION["token"] != $token) { // 不让重复提交,在此处理 // header("location:".$_SERVER['PHP_SELF']); } else { // 正常的表单提交,在此处理 // echo "已提交"; }
$token = mt_rand(0,1000000); $_SESSION['token'] = $token;
php 중국어 웹사이트 학습 주제🎜: 🎜php 세션 🎜 (사진 및 텍스트 포함) , 동영상, 케이스)🎜🎜
위 내용은 PHP+Session을 사용하여 반복적인 양식 제출을 방지하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!