1

Тема: PHP. Оператор IF - ELSE

Вітаю!
Маю таку проблему: у зазначеному нижче коді php відпрацьовують обидві частини if-else. Тобто значення отримують і $idCustomer, і $_SESSION['massage_error']. Не розумію чому це відбувається. Прошу допомоги!

if (!empty($_POST['id'])) {
    $idCustomer = validatorInteger($_POST['id']);
} else {
    $_SESSION['massage_error'] = "Клієнта не визначено!";
    header('Location: ../кудись_там.php');
    exit;
}

2

Re: PHP. Оператор IF - ELSE

Мені здається, що Ви просто не знищуєте сесію після її використання (виводу повідомлення, що міститься в ній).

unset($_SESSION['massage_error']);

Тому вона й лишається активною.

3

Re: PHP. Оператор IF - ELSE

Дякую за відповідь! Ні - сесія знищується. Переписав цей код, але if все рівно кілька разів помилково спрацьовував:

$idCustomer = validatorInteger($_POST['id']);

if ($idCustomer < 1) {
    $_SESSION['massage_error'] = "Клієнта не визначено!";
    header('Location: ../кудись-там.php');
    exit;
}

4

Re: PHP. Оператор IF - ELSE

Спробуйте написати замість $_POST $_REQUEST

5

Re: PHP. Оператор IF - ELSE

Дивіться в бік того що саме записується в idCustomer
Як тій змінній хоч щось є то це вже більше ніж = 0

6

Re: PHP. Оператор IF - ELSE

Дякую всім за відповіді!
В цілому це більше схоже на якийсь серверний глюк, тому, що проблема виникала якось хаотично (використовую XAMPP та VSCode). Я так і не зрозумів закономірності. В idCustomer передається int-значення і воно не порожнє. $_REQUEST також потестую - дякую за підказку.
Я звернувся  на форум, щоб дізнатись, можливо це якась особливість ПО і я не перший, хто на це натрапив.
Дякую всім за участь!

7

Re: PHP. Оператор IF - ELSE

У PHP 7.2.14.0  $_POST чомусь не приймав, тому використовував $_REQUEST. Нехай сам думає як сприймати  :D