0
내가 일관성이 중복 삽입을 얻을 삽입합니다. PHP :Laravel 5.4 일관성 중복은 다음 Laravel 코드를 실행할 때
<?php
use Illuminate\Support\Facades\DB; // NOTE: I am using the query builder, not a model
use Carbon\Carbon;
Route::get('formtest', function() {
return view('testing.index');
});
use Illuminate\Http\Request;
Route::post('formtest', function(Request $request) {
DB::table('pers2_testing_inserts')
->insert([
'data' => $request["test"],
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
]);
});
앱/자원 /보기/테스트/index.blade.php :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TESTING</title>
</head>
<body>
<form id="form" action="" method="post" novalidate autocomplete="off" onsubmit="disableAndSubmit(event)">
<input type="text" name="test" id="text_box">
<input type="submit" id="submit_button">
</form>
<script type="text/javascript">
var text_box = document.getElementById('text_box');
var submit_button = document.getElementById('submit_button');
var form = document.getElementById('form');
function disableAndSubmit(e) {
submit_button.disabled = true;
if(text_box.value !== '') {
form.submit();
} else {
e.preventDefault();
submit_button.disabled = null;
}
}
</script>
</body>
</html>
내 프로젝트가 Laravel 5.4에 내장되어, PHP 7.1.7. Mac에서 방랑자를 가상 머신으로 사용하여 개발합니다. 내 프로덕션 서버는 XAMPP v3.2.2가 포함 된 Windows Server 2008 R2 표준 컴퓨터입니다. 일치하지 않는 중복 삽입은 프로덕션 서버에서만 발생합니다. 다음은 서버에 대한 몇 가지 테스트의 스크린 샷입니다.
나는 내 프로그램에 모든 것을 삽입을 가지고 있고, 그 중 하나는 복제 할 수 있습니다, 그리고 일관성입니다. 그렇게해서는 안됩니다. 내 XAMPP 구성에서 변경해야 할 것이 있습니까? PHP 구성? 이 문제가 서버에서 발생하지 않도록 구현할 수있는 해결 방법이 있습니까?
반환 문 어? 나는 문제가 자바 스크립트에 있다고 생각하지 않았지만 많은 테스트를 거친 후에도 문제가 해결되지 않았다. 고맙습니다! – n8jadams
@ n8jadams 문제는 단지 반환되지 않습니다. preventDefault()는 정말로 중요합니다. 자바 스크립트를 사용하여 제출하려는 경우 처음부터 방지해야합니다. 그래서 html은 처음 스크립트를 렌더링 할 때 제출하지 않습니다. – ssuhat
나는 그 변화를 또한 알아 차렸다. 다시 한번 감사드립니다. :) – n8jadams