Я хочу добавить динамические переменные сеанса. Итак, я начинаю с id = 0, но после отправки формы идентификатор должен быть установлен в 1, а затем в 2 и т. Д. Вот то, что я пытался. Я пытался сделать $ id ++ в функции отправки, но это не работает.
<?php
$id = 0;
if (isset($_POST['submit'])) {
$_SESSION['person'][$id] = array(
'id' => $id,
'voornaam' => $_POST['firstname'],
'achternaam' => $_POST['lastname'],
'leeftijd' => $_POST['age'],
'rol' => $_POST['role'],
'omschrijving' => $_POST['description'],
);
$id++;
header('Location: mysite');
}
?>
$id = count($_SESSION['person']);
(Предполагая, что вы определили $_SESSION['person']
как массив в другом месте.)
Полный фрагмент выглядит так:
if (!is_array($_SESSION['person']))
{
$_SESSION['person'] = array();
}
if (isset($_POST['submit']))
{
$id = count($_SESSION['person']);
$_SESSION['person'][$id] = array(
'id' => $id,
'voornaam' => $_POST['firstname'],
'achternaam' => $_POST['lastname'],
'leeftijd' => $_POST['age'],
'rol' => $_POST['role'],
'omschrijving' => $_POST['description'],
);
header('Location: mysite');
}
Вы на самом деле нигде не сохраняете значение. Так что каждый раз будет сбрасываться в 0.
Вы создаете значение каждый раз:
$id = 0;
И вы увеличиваете это:
$id++;
Но вы нигде не держите это. Если значение должно следовать за сеансом пользователя, сохраните его в сеансе. Что-то вроде:
// get the id from session, or create a new one
$id = 0;
if (isset($_SESSION['id'])) {
$id = $_SESSION['id'];
}
// use the id value in your code
// increment the id and store it back in the session
$_SESSION['id'] = $id + 1;
Я не понял вас ясно, но это может помочь
<?php
$id = 0;
if (isset($_POST['submit'])) {
$currID = $_SESSION['person']['id'];
$_SESSION['person'] = array(
'id' => $currID++,
'voornaam' => $_POST['firstname'],
'achternaam' => $_POST['lastname'],
'leeftijd' => $_POST['age'],
'rol' => $_POST['role'],
'omschrijving' => $_POST['description'],
);
header('Location: mysite');
}
?>