Ошибка в цикле?

Есть код:
if(!empty($_POST["data"])) {
	foreach ($_POST["data"] as $entry) {
		$lines = explode("\n",$entry);
		if ($lines[0] == "sms_status") {
			$sms_id = $lines[1];
			$sms_status = $lines[2];
		}
	}
}

При получении любого POST запроса выдает ошибку:
Warning: Invalid argument supplied for foreach() in ********************************* on line 3
Вопрос, почему и как бороться?
  • Вопрос задан
  • 145 просмотров
Решения вопроса 2
gobananas
@gobananas
finishhim.ru
Что бы так сделать в $_POST["data"] должен быть массив. Сделайте var_dump($_POST["data"]); уверен что там строка, поэтому foreach и не работает. Скорее всего $_POST["data"] надо сначала разбить explode а уже потом можно бежать foreach по нему.
Ответ написан
iiifx
@iiifx
PHP, OOP, SOLID, Yii2, Composer, PHPStorm
О - Отладка.

В случае проблем вы смотрите что именно вам пришло, как пришло и в каком формате. Зачастую достаточно просто сделать var_export(), или любой аналогичный дамп, чтобы обнаружить проблему.

Если по какой-то причине нельзя сделать дамп используете логирование. Подключаете любой удобный логер и пишете в логи результаты работы. После выполнения скрипта открываете логи и смотрите что там как.

В самых сложных случаях используете отладчик - XDebug или подобные.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы