В форме авторизации, есть скрытое поле куда вставляется случайные символы хранящиеся в сookie, если в сookie нет переменной id_user в которой они и хранятся, js создает и записывает туда сам случайно генерированные символы на 365 дней.
Проблема в том что по какой-то непонятой причине у НЕКОТОРЫХ пользователей 1-2 раза в неделю этот id_user теряется и создается новый. Это замечено у пользователей Win и iPhone - 100% они ничего не чистят руками. Почему такое происходит?
C localStorage такая же ситуация.
<form action="/login" method="POST" role="form">
<input type="text" name="email" required>
<input type="password" name="password" required>
<input type="hidden" name="id_user" value="" id="id_user">
<input type="hidden" name="recaptcha_response" id="recaptchaResponse">
<input type="submit" value="Log In">
</form>
<script>
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
} else expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
if (readCookie('id_user')) {
$("#id_user").val(readCookie('id_user'));
} else {
var id_user = new Array(10).join().replace(/(.|$)/g, function() {
return ((Math.random()*36)|0).toString(36)[Math.random() < .5?"toString": "toUpperCase"]();
});
createCookie('id_user', id_user, 365);
$("#id_user").val(id_user);
}
// if (localStorage.getItem('id_user')) {
// $("#id_user").val(localStorage.getItem('id_user'));
// } else {
// var id_user = new Array(10).join().replace(/(.|$)/g, function() {
// return ((Math.random()*36)|0).toString(36)[Math.random() < .5?"toString": "toUpperCase"]();
// });
// localStorage.setItem('id_user', id_user);
// $("#id_user").val(id_user);
// }
</script>