Změna nicku vyhazuje warning session_regenerate_id(): Session object destruction failed
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- BuMoRi
- Člen | 109
Ahoj, dostávám warning: session_regenerate_id(): Session object destruction
failed. ID: files (path: C:\xampp\tmp)
Mám formulář na změnu nicku, vše probíhá v pořádku. Přidal jsem
k tomu ale AJAX na zjištění, jestli už nick není v databázi:
<script>
$('#nick').change(function () {
if ($('#badNick').length) {
$('#badNick').remove();
}
$.nette.ajax({
type: 'GET',
dataType: 'json',
url: {link checkNick!},
data: { nick: $(this).val() },
success: function (payload) {
if (!payload.available) {
$('input[name=nick]')
.focus()
.addClass('is-invalid').removeClass('has-success')
.prev('.input-group-addon').css('background-color', '#f14b59')
.closest('.input-group').after('<em class="invalid-feedback" id="badNick" style="display: inline">Tento nick je již obsazen.</em>');
}
else {
$('input[name=nick]')
.addClass('has-success').removeClass('is-invalid')
.prev('.input-group-addon').css('background-color', '#4c2da2');
}
}
});
});
</script>
<?php
public function handleCheckNick($nick)
{
if ($this->frontUserManager->getByNick($nick)) {
$this->payload->available = false;
}
else {
$this->payload->available = true;
}
$this->sendPayload();
}
?>
Když z inputu vyjedu tabulátorem nebo myší kliknu někam do prostoru před odesláním formuláře, tak je vše OK. Pokud změním nick a rovnou kliknu na „Potvrdit“, vyhodí mi to warning. Problém tedy asi bude v tom, že se v jednu chvíli zpracovává handle i formulář. Prosím o radu, jak toto vyřešit.