У меня есть форма с большим количеством полей, и мне нужно, чтобы данные формы были в одном массиве.
Например: предположим, что имена полей формы name
, username
, password
и т.д., и мне нужно получить все эти поля внутри массива с именем $user
нравится это:
$user = array('name' => 'foo', 'password' => 'bar', ...);
Поэтому я даю имена полей формы как $user['name']
но это показывает сообщение об ошибке, как:
Имя содержит недопустимые символы. Имена должны начинаться с буквы, цифры или символа подчеркивания и содержать только буквы, цифры, цифры, символы подчеркивания («_»), дефисы («-«) и двоеточия («:»).
Может ли кто-нибудь помочь мне понять это?
Назовите ваши элементы так:
user[name]
user[password]
Не использовать $
не использовать '
,
$
только для переменных PHP, а не элементов формы HTML.
Включение кавычек в имя просто сделает ключи вашего массива $ _POST некрасивыми, поэтому не используйте их (очевидно, симфония не даст вам в любом случае).
Обратите внимание, без кавычек:
<input type="text" name="user[name]"/>
<input type="text" name="user[password]"/>
array(1) {
["user"]=>
array(2) {
["name"]=>
string(11) "Super Admin"["password"]=>
string(8) "PaSsWoRd"}
}
с одинарными кавычками:
<input type="text" name="user['name']"/>
<input type="text" name="user['password']"/>
array(1) {
["user"]=>
array(2) {
["\'name\'"]=>
string(11) "Super Admin"["\'password\'"]=>
string(8) "PaSsWoRd"}
}
Посмотрите, как включены обратные слэши, чтобы избежать кавычек … безобразно.
Других решений пока нет …