Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Запись в массив значения из POST
if(isset($_POST['id'])||die('Значение не передано')){
$arr[]=$_POST['id'];
}
В первом примере у вас всё было верно, так и надо добавлять. Только проверку лучше ставить на существование, потому что если допустим id будет равно 0, тогда условие не пройдет.
Так же рекомендую проверять post-данные, если это число int то как то так:
if(isset($_POST['id'])||die('Значение не передано')){
$arr[]=$_POST['id'];
}
В первом примере у вас всё было верно, так и надо добавлять. Только проверку лучше ставить на существование, потому что если допустим id будет равно 0, тогда условие не пройдет.
Так же рекомендую проверять post-данные, если это число int то как то так:
if((isset($_POST['id'])&&preg_match('#^[0-9]{1,10}$#',$_POST['id'])||die('Передано не корректное значение'))||die('Значение не передано')){
$arr[]=$_POST['id'];
}
Проверки это хорошо, конечно, но у меня просто меняется значение с каждым новым POST, хоть убейте.
$arr = [1,25,12,48, вот сюда добавляет, а потом только меняет];
if(isset($_POST['id']) || die('Значение не передано')) {
$arr[] = $_POST['id'];
}
Prizma
Отправлено: 14 Января, 2016 - 12:40:35
Посетитель
Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012 Откуда: Санкт-Петербург
Помог: 5 раз(а)
мэлс пишет:
Проверки это хорошо, конечно, но у меня просто меняется значение с каждым новым POST, хоть убейте.
$arr = [1,25,12,48, вот сюда добавляет, а потом только меняет];
if(isset($_POST['id']) || die('Значение не передано')) {
$arr[] = $_POST['id'];
}
ахах) ну конечно, же... потому, что каждый новый раз, при отправке POST данных у вас запускается новый скрипт, который не может иметь прямого доступа к данным из уже отработавшего скрипта.
Для того, чтобы собирать все значения, Вам нужно записывать их в файл или базу данных и потом оттуда доставать
мэлс
Отправлено: 14 Января, 2016 - 12:56:28
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
Prizma пишет:
мэлс пишет:
Проверки это хорошо, конечно, но у меня просто меняется значение с каждым новым POST, хоть убейте.
$arr = [1,25,12,48, вот сюда добавляет, а потом только меняет];
if(isset($_POST['id']) || die('Значение не передано')) {
$arr[] = $_POST['id'];
}
ахах) ну конечно, же... потому, что каждый новый раз, при отправке POST данных у вас запускается новый скрипт, который не может иметь прямого доступа к данным из уже отработавшего скрипта.
Для того, чтобы собирать все значения, Вам нужно записывать их в файл или базу данных и потом оттуда доставать
Ну я в принципе так и думал))) Надежда умирает последней. Я пытался с сессией повозится - та же канитель. Хотя $_SESSION должно сохраняться, нет?
Sail
Отправлено: 14 Января, 2016 - 13:14:17
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
мэлс пишет:
В массив записывается только одно последнее значение. Как сделать, чтобы предыдущие значения сохранялись?
Для начала давайте определимся, что представляет из себя $_POST['id']?
Массив идентификаторов, или один идентификатор?
И действительно ли в html-форме передаваемое ею значение передаёт массив, а не одно значение?
мэлс
Отправлено: 14 Января, 2016 - 13:24:28
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
Sail пишет:
мэлс пишет:
В массив записывается только одно последнее значение. Как сделать, чтобы предыдущие значения сохранялись?
Для начала давайте определимся, что представляет из себя $_POST['id']?
Массив идентификаторов, или один идентификатор?
И действительно ли в html-форме передаваемое ею значение передаёт массив, а не одно значение?
$_POST['id'] один из трех идентификаторов, в каждом 1 значение приходит.
мэлс
Отправлено: 14 Января, 2016 - 20:38:56
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
УРА! Я забыл открыть сессию в обработчике. И еще код изменил (подсмотрел).
И все заработало.
Решение очень простым оказалось. Инициализация происходит 1 раз и потом не затирает массив.
Работает как надо. Записывает значение каждый раз последним элементом сохраняя предыдущие.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.