Я не могу точно выяснить, что заставляет мое приложение 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?
Я хочу остановить поток, прежде чем он попадет в базу данных, из соображений производительности базы данных.