diff --git a/core/lib/Drupal/Core/Form/FormBuilder.php b/core/lib/Drupal/Core/Form/FormBuilder.php index 878967b..af3e9b6 100644 --- a/core/lib/Drupal/Core/Form/FormBuilder.php +++ b/core/lib/Drupal/Core/Form/FormBuilder.php @@ -2,6 +2,7 @@ namespace Drupal\Core\Form; +use Drupal\Component\Render\FormattableMarkup; use Drupal\Component\Utility\Crypt; use Drupal\Component\Utility\Html; use Drupal\Component\Utility\NestedArray; @@ -996,6 +997,9 @@ public function doBuildForm($form_id, &$element, FormStateInterface &$form_state } } foreach (Element::children($element) as $key) { + if (preg_match('@[^a-zA-Z0-9_-.*]+@', $key)) { + trigger_error(new FormattableMarkup('"@key" is an invalid form array key in the form with ID "@form_id"', ['@key' => $key, '@form_id' => $form_id]), E_USER_ERROR); + } // Prior to checking properties of child elements, their default // properties need to be loaded. if (isset($element[$key]['#type']) && empty($element[$key]['#defaults_loaded']) && ($info = $this->elementInfo->getInfo($element[$key]['#type']))) {