Код воспламенитель проблема с отправкой нескольких форм - PullRequest
0 голосов
/ 25 февраля 2019

Я не могу точно выяснить, что заставляет мое приложение Code Igniter отправлять данные дважды, но я действительно обеспокоен, что это станет источником ошибок и проблем с производительностью (x2 использование базы данных) позже.

Моя веб-страница, изменяющая состояние, /user/login

Я подозреваю, что это CRSF.

$config['cookie_prefix']    = '';
$config['cookie_domain']    = '';
$config['cookie_path']      = '/';
$config['cookie_secure']    = TRUE;
$config['cookie_httponly']  = TRUE;
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'xg93ScAg5VzEG';
$config['csrf_cookie_name'] = 'xgesheE7EfuBZ';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = FALSE;
$config['csrf_exclude_uris'] = array();

Это мой маршрутизатор, страница, о которой идет речь, - это пользователь / логин

$route['user/login'] = 'user/login';

Это мой .htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]     
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Вот страница

  <FORM method="POST" action="user/login">

  <input type="hidden" name="<?php echo $this->security->get_csrf_token_name();?>" value="<?php echo $this->security->get_csrf_hash();?>">

   <button type="submit" onClick="this.innerHTML='Processing...'; this.disabled=true; ">Login </button>

  </FORM>

После прочтения того, что может вызывать двойные страницы, список кажется дико эклектичным,зависит от браузера, а не стабильный список во времени.

Вопрос: Какой самый простой и наиболее пригодный для повторного использования способ запретить моим страницам (при условии, что это приложение распространяется) дважды вызывать мой метод Controller?

Я хочу остановить поток, прежде чем он попадет в базу данных, из соображений производительности базы данных.

...