Вы на самом деле не сохраняете все значения флажков в сеансе, вы сохраняете только последнее, так как эта строка
$_SESSION['sides']=$check;
перезаписывает $_SESSION['sides']
каждый раз при циклическом цикле
Так что конкатенируйте это значение
<?php
session_start();
if(!empty($_POST['sides'])) {
foreach($_POST['sides'] as $check) {
$_SESSION['sides'] .= $check;
}
}
header('location: show.php');
?>
Вы также можете добавить туда разделитель, например:
<?php
session_start();
if(!empty($_POST['sides'])) {
foreach($_POST['sides'] as $check) {
$_SESSION['sides'] .= $check . ',';
}
}
rtrim($_SESSION['sides'], ','); // remove last comma seperator
header('location: show.php');
?>
Дополнительное примечание: помните, что PHP будет отправляться толькоПроверенные значения флажка.