폼의 중복 제출을 피합니다. (암호 인증 코드와 유사한 인증 코드를 추가합니다.)

2812 단어
1. 정적 제출 페이지에 새로 고칠 때마다 무작위 수를 써서session(if(!isset($session['code'])에 저장합니다.)form표에 넣고 함께 제출합니다.
2. 백엔드에서 제출 처리를 할 때 이전의session의 값이 제출한 input 폼의 코드와 같지 않은지 판단하고 정적 페이지를 두 번째 리셋하여 새로운 코드가 생겼다.그래서 세션이랑 달라요.
3. 다음 제출, 업로드 파일 사용에 영향을 주지 않기 위해 동일하고 다른 것을 판단하는 동시에session=null로 다음 번과 동일함을 보증합니다.정상적으로 제출할 수 있습니다.
view
<?php

    $fileSubmit = mt_rand(0,1000000);
    if(!isset($_SESSION['filesubmit'])){
        $_SESSION['filesubmit'] = $fileSubmit;
    }
?>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>    </title>
    <!--[if lt IE 9]>
    <script src="{{asset('public/js/html5shiv.js')}}"></script>
    <![endif]-->
</head>

<body style=" overflow-x:scroll; min-width:1600px;" >
<form method="POST" action="" enctype="multipart/form-data" class="act">
    <input type="hidden" name="fileSubmitCode" value="{{$fileSubmit}}">  <span style="font-family:Helvetica, Tahoma, Arial, sans-serif;">//        </span>
    <input type="hidden" name="status" value="{{$status}}">  //      ,<span style="font-family:Helvetica, Tahoma, Arial, sans-serif;">          ,(     ,   ,   </span>

Controller
		$status = '11';
		//page  
		$view_page = false;
		$view_table = false;
		if($input = Input::all()){
			//dd($input);
			if(isset($input['page'])){
				$view_page = true;
			}
			if(isset($input['tableid'])){
				$tableId = $input['tableid'];
				$view_table = true;
			}


			//dd($tableId);
		}
		//die();

		$file = Input::file('myfile');
		if(isset($input['fileSubmitCode'])){
			//dump($input['fileSubmitCode']);
			//dump($_SESSION['filesubmit']);


			if($input['fileSubmitCode'] != $_SESSION['filesubmit']){
				//echo "   ";
				$_SESSION['filesubmit'] = null;
				$status = '0';
				$file = null;  //   【    】   <span style="font-family:Helvetica, Tahoma, Arial, sans-serif;"> file  ,      ,        </span>

			}else{
				//echo "  ";
				$_SESSION['filesubmit'] = null;
				$status = '1';

			}
		}

		//dd($file);
		if($file){
			//dump($file);


//			$realPath = $file
//			$path = $file -> move(app_path().'/storage/uploads');
			$fileSize = round($file->getSize()/1024/1024,2);
			$realPath = $file->getRealPath();
			$original_name = $file->getClientOriginalName();
			$entension =  $file -> getClientOriginalExtension(); //       .

좋은 웹페이지 즐겨찾기