Дублируется запись в сессии из формы PHP

Есть форма с кнопкой, где методом POST передаются данные сессию.

$_SESSION['global_str'][] = $_POST;

Все отлично работает, но если обновить страницу, то даже с не заполненной формой, дублируются предыдущие данные. Получается, если 20 раз обновить страницу, добавится 20 одинаковых массив в сессию.

Помогите сделать проверку, что если такое уже есть в $_SESSION['global_str'], тогда не добавлять.

Пробовала array_unique, но все перестает работать.


Ответы (1 шт):

Автор решения: LEX
$count_arr = count($_SESSION['global_str']) - 1; // проверить количество записей в массиве и минус 1, потому как счет идет с нуля

// если запись не равна, то добавить строчку
if ($_SESSION['global_str'][$count_arr]['text_tab1'] !== $_POST['text_tab1']) {
    $_SESSION['global_str'][] = $_POST; // запись данных с формы в сессию
}
else {
    echo "запись есть, ничего не делать, просто вывести это сообщение";
    
}
// если запись не равна, то добавить строчку

Вероятнее всего у вас массив с индексами, поэтому вычисляется последний элемент и по нему идет проверка.
['text_tab1'] - сюда подставьте название одно/несолько название полей из формы. Не идеально, но вашу задачу решит 100%.

→ Ссылка