Laravel 5.4不一致的重复插入

时间:2017-10-06 23:44:50

标签: php mysql laravel xampp vagrant

运行以下Laravel代码时,我得到不一致的重复插入:(我知道我打破了所有最佳实践,但此示例代码隔离了问题。)

应用/路线/ web.php:

<?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()
    ]);
});

App / resources / views / testing / 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上开发,使用vagrant作为虚拟机。我的生产服务器是带有XAMPP v3.2.2的Windows Server 2008 R2标准计算机。不一致的重复插入仅发生在生产服务器上。以下是服务器上一些测试的屏幕截图。

With Unicode superscript

我在我的程序中插入了所有内容,并且其中任何一个都可以复制,并且它不一致。不应该那样。我的XAMPP配置中是否应该更改一些内容? PHP配置?是否有可以实现的解决方法可以防止在服务器上发生这种情况?

1 个答案:

答案 0 :(得分:0)

试试这个:

<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) {
    e.preventDefault();
    submit_button.disabled = true;
    if(text_box.value !== '') {
      form.submit();

      return true;
    } else {

      submit_button.disabled = false;

      return false;
    }
  }
</script>