Ваше условие if обратное.
empty()
возвращает значение true, если переменная не установлена или содержит пустое значение.
!empty()
(с !
передit) возвращает true, если переменная установлена и не содержит пустого значения.
Таким образом, код:
if (!empty($_SESSION['UserBasketID']))
будет оцениваться как true
, еслисеанс определен и имеет непустое значение, что означает, что вы в настоящее время устанавливаете сеанс, только если он уже установлен.
Удалите !
перед empty()
, и оно должно работать:
if (isset($_POST['ProductName'])) {
if (empty($_SESSION['UserBasketID'])) {
$order = $_POST['ProductName'];
$date = date("Ymd");
$_SESSION['UserBasketID'] = $date . $order;
var_dump($_SESSION['UserBasketID']);
} else {
echo 'The session is set';
// We can remove the if-statement here since we
// we've already checked it
var_dump($_SESSION['UserBasketID']);
}
}