Home page personnelle - Page "travaux"

Page d'accueil du projet PHP - Questionnaire - Code source PHP de la réponse - Commentaire des utilisateurs - Rapport du projet PHP


Rapport


Programmation PHP

Avant de commencer mon rapport, je voudrais dire que le travail que je fais actuellement (mise sur pied d'un dossier médical informatisé) utilise un langage et un raisonnement de programmation très proche du PHP (sans être identique - le langage que j'utilise au travail, est un langage personnel mis sur pied par notre informaticien). Par conséquent, ceci a beaucoup influencé toutes les étapes de la réalisation de ce projet. Je souhaiterai également ajouter, que j'ai écrit ce rapport d'en l'idée de m'en faire une sorte de mémo me rappelant comme j'ai utilisé le langage PHP ! Raison pour laquelle il peut paraître un peu long.

Objectifs de la réalisation:

Mon objectif principal était de construire un maximum d'intéractions différentes au travers de mon questionnaire, afin de connaître différentes règles de programmation de PHP. J'entend par intéraction, une présentation de la question, tel que répondre sous forme de texte, sous forme d'un choix multiples, avec un menu déroulant, etc.

Le contenu du questionnaire a rapidement été trouvé. En effet, cela fait quelques temps que j'avais envie d'avoir quelques part la possibilité de calculer son BMI (= Body Mass Index, en français Indice de Masse Corporelle - IMC) sans utiliser une calculatrice. Est-ce un sujet utile ? Oui, je pense qu'il est intéressant de savoir à quel niveau on se situe par rapport à notre poids. En fait, ce calcul du BMI (= poids/taille au carré [kg/m2]) permet de savoir si nous sommes considéré comme trop maigre (<20), dans la norme (20-25), en excès pondéral (25-30), obèse (30-40) ou même en obésité morbide (>40).

Mais juste un calcul (le BMI) ne suffit de loin pas à proposer différentes intéractions, donc il a fallut ajouter des questions et en faire quelque chose ! C'est pourquoi, j'ai ajouté le prénom, l'âge, le sexe, et une information, un peu plus en rapport avec les problèmes de poids, sur le sport. Ensuite, je voulais également proposer une zone de texte pour permettre d'y inscrire un commentaire. La grande question était où et commentaire sur quoi ? Et finalement, j'ai trouvé: proposer au gens de se défouler après qu'ils aient reçu leur réponse. Mais la réponse va servir à qui et où pourrait-on la stocker ? Finalement, je me suis dit que le commentaire va me servir personnellement à voir comment les gens ont pensé de mon questionnaire et qu'il fallait que je le stocke quelques part où je pourrais aller de temps en temps le visualiser via Internet.

Pour pouvoir faire le calcul du BMI, il faut que la personne inscrive son poids et sa taille. Mais que fait-on si la personnea n'a rien inscrit, ou de façon incomplète ? Donc, il a également fallut prévoir un feed-back tenant compte de cela que j'ai appelé "erreur" et qui renvoie la personne corriger ses erreurs.

Finalement, j'ai réalisé qu'en partant de pas grand chose (simple calcul du BMI), je suis arrivée à me donner plusieurs objectifs pour parvenir à une réalisation intéressante de mon questionnaire en PHP.

Analyse de besoins:

Afin de pouvoir réaliser mes objectifs, j'ai eu besoin de mes syllabus de cours que j'ai bien entendu dû mettre au goût du jour, c'est-à-dire l'adapté au xhtml, car les cours étaient écris à l'époque du html !.

Ces différents syllabus m'ont donc été très utile, mais j'ai également eu besoin de trouver d'autre information, tel qu'arrondir un nombre (round ($xxx)), comment rendre une chaîne de caractère en un nombre afin de pouvoir l'utiliser dans le calcul (settype ($xxx, "integer")),etc. Ces informations ont été trouvé dans le Manuel PHP (en français) et le Doc PHP (sur Tecfa) (malheureusement, les gens ne faisant pas partie de Tecfa ne peuvent pas y accéder !). J'avoue qu'à ce niveau, mon mari m'a beaucoup aiguillé, sans toutefois faire mon travail à ma place !

Mon mari m'a également été très utile pour me dire ce que je pouvais ou ne pas faire. Surtout des choses que je voulais faire et qui n'était pas possible en PHP mais seulement en Javascript, tel que guider immédiatement l'utilisateur à ne pas faire d'erreur de réponse (par exemple choisir aucun sport et sport à raquette), ouvrir une petite fenêtre pour donner le feed-back sans que l'on aie à quitter le questionnaire, rendre en surbrillance ou empêcher de remplir, faire un bouton back. Comme on le devine sur ces dernières lignes, j'essayais de trouver comment gérer les "mauvaises" réponses.

Une autre chose qui m'a été très utile pour la réalisation de mon dispositif est d'avoir PHP avec Apache d'installé à la maison. En effet, cela me permettait de faire mes tests, sans passer par FTP sur le serveur de Tecfa.

Design:

Là, une fois de plus, je voulais que ce soit des pages agréables à lire, à naviguer et qui ressemble à mes autres pages (homepage, autres projet staf 14, ...) html. Pour cela, j'ai repris mon fichier css habituelle que j'ai légèrement modifié selon mes besoins.

J'ai également chercher à être le plus simple possible quant à la réponse donnée aux "erreurs" de réponse. C'est-à-dire qu'avec les moyens en ma possession (à savoir la non connaissance de Javascript), je propose à l'utilisateur qui a mal répondu pour son poids, sa taille ou le choix du sport (aucun avec un sport choisi), de retourner avec ses moyens en sa possession (navigateur) de revenir, au questionnaire. Si j'avais fait un lien, cela aurait effacé toutes les autres données qu'il aurait inscrit.

Commentaires sur la réalisation:

Je pense qu'une bonne partie de mon texte ci-dessus sont déjà des "commentaire sur la réalisation", mais bon tanpis. Je vais quand même essayer de ne pas me répéter.

Alors, pour commencer, j'ai mis en place mon questionnaire avec mes différentes questions selon des différentes intéractions:

Une fois que mon questionnaire a été mis en place, j'ai commencé à construire mon fichier php. Tout d'abord, j'ai regardé comment mes variables apparaissaient. Surtout si l'utilisateur n'avait rien remplis. C'est à ce moment que j'ai définit des valeurs par défaut, comme le zéro pour le poids et la taille. Puis j'ai construit mon calcul du BMI. Là je me suis rendue compte que le nombre inscrit pas l'utilisateur était reconnu par le système comme une chaîne de caractère, mais comme un nombre, raison pour laquelle j'ai utilisé la règle "settype ($xxx, "integer")". Par la suite, j'ai mis en place les phrases qui devaient apparaître selon les choix et réponses faites dans le questionnaire. Cet à ce moment, que j'ai décidé de mettre toute mon intéraction sur la base du tutoyement. En effet, je me suis dis que le poids était un problème si "intime" que le tutoyement serait beaucoup plus approprié pour ce genre de discussion. De plus, mes réponses sont un peu moralisateur. J'ai voulu cela, afin de pouvoir avoir un minimum de réponse intéressant, sinon cela n'aurait été que des constatations de fait, ce qui aurait rendu l'intéraction moins intéressante.

Après que le résultat ait été donné à l'utilisateur, je propose une zone de texte permettant à l'utilisateur de commenter le dispositif, voire de se "défouler". En réalité, comme je l'ai déjà mentionné, mon premier but était d'avoir une zone de texte quelque part. Cette décision de proposer là un commentaire, m'a permis d'apprendre plusieurs paramètres que je voulais qu'ils découlent du résultat de cette zone de texte:

Concernant les bugs rencontré, j'ai pu, vu mon expérience avec mon travail (que j'ai mentionné au début de ce rapport), rapidement les corriger, comme par exemple l'oubli de fermeture soit par ";" soit par "}".

Finalement, j'ai également dû aprendre à faire un lien symbolique des fichiers php afin de pouvoir présenter le code PHP que j'avais écrit sans qu'il soit interpréter par le serveur.(C'est mon mari qui m'a dit comment faire !). Pour ceux qui veulent savoir comment faire, voici la recette: aller sur telnet du serveur (ici tecfa), et dans le répertoire où se trouve le fichier php, tapper la commande: " ln -s X.php X.phps " (le X étant le nom du fichier !).

Conclusion:

En conclusion, j'ai pris mon pied à apprendre PHP, et j'ai appris énormément de chose... Je me réjouis d'apprendre également Javascript afin de pouvoir augmenter les potentialités des questionnaires. Je me demande même si mon exercice en Javascript ne va pas être tout simplement de reprendre ce questionnaire et de le simplifier (notamment le feed-back parlant des erreurs), voire de présenter les différentes façon de guider un utilisateur dans ses réponses (c'est-à-dire l'empêcher de donner des "mauvaises" réponses).

J'espère que mon rapport n'a pas été trop barbant et je vous remercie de m'avoir lu.


Valid XHTML 1.0! - Valid CSS!



T.R. (fév-2003)