J'élabore:
Le fait que ton code fonctionne chez toi, c'est bien, mais ça ne veut en rien dire qu'il est "correct", et que s'il ne fonctionne pas ailleurs le tort repose chez "l'autre".
Ton environnement a sa propre configuration, et puisqu'il s'agit d'un environnement de développement, cette configuration est forcément différente (sinon je m'en vais) de celle de l'environnement de production.
Ton rôle de développeur est de t'assurer que ton code fonctionne sur l'environnement de production (du moins, s'il est destiné à être utilisé). Au mieux, tu aurais chez toi un clone de cet environnement de production, avec les versions des produits et les configuration tels qu'installées sur le serveur de production. Sinon, il t'appartient de te renseigner sur l'environnement final de production, et faire le nécessaire pour que le code et cet environnement soient compatibles (en faisant évoluer l'un ou l'autre).
Le fait que ça ne fonctionne pas chez le client repose à priori sur toi, et non sur le client (par ailleurs, blâmer directement le client est une très mauvaise approche commerciale).
En réponse à ton dernier message:
- ne part jamais du principe que <? fonctionne. Oublie-ça, à jamais: n'utilise plus que <?php. short_open_tags est une relique de l'âge sombre (aka avant 2000) de php.
- si tu te bases sur MAMP, il est très probable qu'il y a d'autres "trucs sympas et faciles" propres à un environnement de développement qui ne se trouvent pas nécessairement, souvent par souci de sécurité, sur un environnement de production.
Marche à suivre:
- excuses-toi auprès de ton client, que tu ne t'attendais pas à un obstacle de cet ordre, et que c'est toi qui aurait du le prévoir (si tu désires maintenir une bonne relation);
- demande les version employées des logiciels sur lesquels tu te base (PHP, MySQL ?, Apache ?) de l'environnement de production;
- reproduis cet environnement chez toi: soit ça peut marcher facile moyennant quelques modifications, soit il faut faire évoluer l'environnement de production, bien qu'il vaut mieux partir du fait que c'est impossible (imagine que l'administrateur du système te méprise et refusera tout compromis. C'est souvent la réalité.);
- expédie le code remaniée chez le client après t'être ultra-assuré que TOUT fonctionne. Une erreur de plus et le client peut très bien se dire que tu es un amateur qui ne sait pas trop bien ce qu'il fait (ce qui est, dans mon opinion, la vérité - mais bon, on a tous commencé quelque part

).
- Peut-être es-tu encore dans la naïveté de la jeunesse. Ce que tu fais-la, te lancer dans un projet commercial (rétribué ? déclaré?) sans grande expérience, c'est dangereux. Lis le manual PHP, améliore-toi, fais des trucs gratuits. Quand tu te sentiras plus confiant, tu pourras te lancer dans des petits projets, et aller en grandissant et en apprenant.