Quel codeur ne s'est pas posé cette question ?
La réponse n'est pas « ##c'est la même chose## ». Et NON ce ne sont pas deux choses redondantes que l'on peut substituer l'un l'autre à tout va.
La distinction entre les deux peut se résumer ainsi : __id__ est un attribut lu par le navigateur (en HTML, CSS ou Javascript) ; __name__ sert à PHP lors de la validation d'un formulaire.