Может ли входное имя HTML содержать пробелы, запятые и т. Д.?

В принципе, могу ли я иметь имена ввода, такие как <input name="total sum(userID2223)" type="text" /> и тому подобное? Есть ли какие-то правила для этого?

Да, ты можешь. Когда PHP читает форму, вы сможете обращаться к данным с помощью $POST["total sum(userID2223)"] .

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

Это запрещено в HTML4: http://www.w3.org/TR/html401/types.html#type-cdata

Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв, цифр ([0-9]), дефис («-»), подчеркивание («_») , colons (":") и периоды (".").

Интересно, что уже давно принято использовать [] в атрибутах NAME , хотя это не разрешено выше; PHP превратит эти входы в массивы в _$GET и $_POST .

Это разрешено в HTML5: С http://www.w3.org/TR/html5/forms.html#attr-fe-name

Любое непустое значение для имени разрешено, но имена « charset » и «isindex» являются специальными

Для вашего приложения я бы рекомендовал запись массива:

 <input name="total[2223]" type="text" /> 

Тогда в PHP это будет $_POST['total'][2223] .