@TimCec

В чем нюанс php скрипта?

Ребят, подскажите в чем вопрос
Скрипт
<?
include($_SERVER['DOCUMENT_ROOT'].'/_rout/_smtp.php');
//Обработка
$text='';
$text_f='';
foreach ($_POST as $k=>$v){
		$text.=$k.'='.$v.'<br />';
		$text_f.=$k.'='.$v."\r\n";
        foreach ($v as $k2=>$v2){
            $text.='&nbsp;&nbsp;'.$k2.'='.$v2.'<br />';
			$text_f.='   '.$k2.'='.$v2."\r\n";
        }
..............


В логе ошибки

PHP Warning: Invalid argument supplied for foreach() in /home/cbrcash/public_html/_rout/index.php on line 9

Заранее всем спасибо за внимание к вопросу.
  • Вопрос задан
  • 302 просмотра
Пригласить эксперта
Ответы на вопрос 4
PavelK
@PavelK
Добавьте проверку, действительно ли $v является массивом (php.net/manual/ru/function.is-array.php) перед запуском цикла.
Ответ написан
Комментировать
А где Вы увидели ошибку? Я вижу только warning. И непонятно которая из строк 9-я.
Ответ написан
profesor08
@profesor08 Куратор тега PHP
Раз ты с $v работаешь как со строкой, скорее всего она строкой и является, а раз так, то почему ты ее пытаешься итеррировать через foreach, если она не является массивом?
Ответ написан
Комментировать
<?
include($_SERVER['DOCUMENT_ROOT'].'/_rout/_smtp.php');
//Обработка
$text='';
$text_f='';
foreach ($_POST as $k=>$v){
If(!is_array($v)){
$text.=$k.'='.$v.'
';
$text_f.=$k.'='.$v."\r\n";
}
else if(is_array($v)){
foreach ($v as $k2=>$v2){
$text.='  '.$k2.'='.$v2.'
';
$text_f.=' '.$k2.'='.$v2."\r\n";
}
}
}

Проверка на массив но можно проще написать с телефона не удобно писать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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