Jeux concours en PHP : galères de dernières minutes
Publié par PH dans Langages informatique, PHP, SQLJe viens de réaliser un jeu concours en PHP pour un de mes clients dans le ménage et je voulais partager avec vous 2 ou 3 trucs sur lesquels vous pourriez perdre beaucoup de temps, surtout si vous n’avez que 4 jours devant vous (4 jours uniquement après le taff, soit entre 19h et 1h du mat).
Le jeux en question est à cette adresse, d’ailleurs n’hésitez pas à participer, il y a 935€ de ménage de ménage à gagner.
Donc les 2 ou 3 trucs qui m’ont un peu fait galérer :
1- Le template : à l’origine on m’avait dit qu’on me fournirait le design. Sachant cela j’avais évalué à 2 jours de travail pour le PHP, or en fait il s’est trouvé qu’on m’a simplement fournit une image .jpg et absolument pas un template avec du HTML, CSS et Javascript en bon et du forme. Du coup une journée de boulot supplémentaire. Donc premier conseil : bien s’entendre sur les éléments fournit, le travail à faire, les fonctionnalités, avant d’envisager quoi que ce soit.
2- Le Charset : alors c’est sympa de développer son petit script sur son serveur dédié avec son IDE favori (Netbean en ce qui me concerne), mais on en vient rapidement à oublier que les « autres » on tsouvent une config différente, notamment en ce qui concerne l’encodage. Travaillant uniquement en UTF-8 je n’avais pas songé une seconde que la config par défaut de PHP sur le serveur du client avait définit le charset à « disable » au lieu du traditionnel UTF-8. Du coup quelques headers à ajouter/modifier et pas mal de utf8_encode().
3- Transmission des variables : là bien sûr que 2 options : soit $_GET, ce qui est moyen pour la sécurité des données, soit $_POST, mais restreint par action. Donc j’ai opté pour $_POST en utilisant les $_SESSION. Du coup ça fait pas trop crade dans la barre d’adresse, ça évite les soucis d’injection SQL (de toute manière avec prepare je suis tranquille de ce coté là) et ça permet de balader ses variables où on veut. Bien entendu il faut manipuler les sessions avec soin pour éviter d’éventuels vols.
4- Contrôleurs : mine de rien on les oublis souvent un peu, mais c’est bien eu qui prennent le plus de temps, d’autant plus qu’ils différent en fonction de ce qui a été défini avec le client (possibilité de rejouer, champs obligatoires ou pas, etc)
Au final on a quoi :
- un petit formulaire classique avec info utilisateurs + réponses
- une petite fonction mail qui envoi les infos au client et au joueur, une fois le formulaire soumis
- un petit insert en BDD avec les info + datetime + http_referer
- un petit système viral qui génère une url tracking à la volée pour inviter les amis à jouer et qui permettra de tirer le vainqueur au sort. Bien sûr couplée à Google Analytics avec entonnoir de conversion.
Voila, donc rien de bien méchant, mais c’est quand même mieux de ne pas s’y prendre à la dernière minute.

Bulletins (RSS)