Un nome di input HTML può contenere spazi, virgole, ecc.?

Fondamentalmente, posso avere nomi di input come <input name="total sum(userID2223)" type="text" /> e simili? Ci sono delle regole per questo?

Si, puoi. Quando PHP legge il module, sarai in grado di indirizzare i dati con $POST["total sum(userID2223)"] .

Senza sapere di più su quello che stai cercando di fare non posso dirlo con certezza, ma probabilmente c'è una pessima decisione di progettazione da qualche parte.

Non è consentito in HTML4: da http://www.w3.org/TR/html401/types.html#type-cdata

I token ID e NAME devono iniziare con una lettera ([A-Za-z]) e possono essere seguiti da qualsiasi numero di lettere, cifre ([0-9]), trattini ("-"), trattini bassi ("_") , due punti (":") e punti (".").

È interessante notare che è stato a lungo uso comune [] negli attributi NAME , anche se non consentito da quanto sopra; PHP trasformsrà questi input in arrays in _$GET e $_POST .

È consentito in HTML5: da http://www.w3.org/TR/html5/forms.html#attr-fe-name

È consentito qualsiasi valore non vuoto per il nome, ma i nomi " charset " e "isindex" sono speciali

Per la tua applicazione, consiglierei la notazione arrays:

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

Quindi in PHP sarebbe $_POST['total'][2223] .