PHP simplexml_load_string включает данные поля формы - php


0

У меня есть форма на странице PHP. Все, что я пытаюсь сделать, это проанализировать некоторые XML, введенные в эту форму (COMMAND) с помощью simplexml_load_string, вот тестовый код:

<?php
    if($_POST){
        $Input = $_GET[COMMAND];
        $Data =<<<XML
        <?xml version="1.0" encoding="ISO-8859-1"?> .
        $Input .XML;

        $xml = simplexml_load_string($Data);
        var_dump($xml); 
    }
        else
    }
        echo WTF!
    }
?>

  <form id="form1" name="form1" method="post" action="index.php">
    <textarea name="COMMAND" id="COMMAND" cols="45" rows="5">
        <API>
         <COMMAND>Test</COMMAND>
        </API>
   </textarea>
   <input type="submit" name="button" id="button" value="Submit" />
  </form>

это ошибка, которую я получаю:

Ошибка анализа: синтаксическая ошибка, неожиданный $end в /var/www/cgi/index.php в строке 24

Я думаю, что это имеет какое-то отношение к моей слабой попытке конкатенации.

Источник
  •  18
  •  2
  • 23 апр 2020 2020-04-23 08:22:18

2 ответа

0

В дополнение к тому, что написал hobodave, вам не хватает; на вашем

echo WTF!;

строка

  • 23 апр 2020 2020-04-23 08:22:18
1

У вас есть закрывающая скобка, где вы хотите открыть скобу:

}
    else
}   // <- BAD!
    echo WTF!
}

Вы хотите:

}
    else
{   // <- GOOD!
    echo WTF!
}

Это личный выбор, но я рекомендую следовать стандарт PEAR для кодирования PHP. Ваш код будет выглядеть как:

if (...) {
} else {
}

Делает намного легче поймать эти злые брекеты!

  • 23 апр 2020 2020-04-23 08:22:18