Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/07179.jsonl.gz/865

Sébastien L'haire - Rapport exercice 6 - Staf 14 (Daniel Schneider) - 4 juillet 1999
J'avais envie de réaliser un programme qui puisse envoyer des formulaires d'inscription par email, donner un feedback à l'utilisateur et faire éventuellement un calcul de prix. PHP est très efficace pour ce type de tâche car les champs de formulaire sont accessibles sous différentes formes.
Ici, j'ai utilisé la variable $HTTP_POST_VARS, qui contient tous les champs envoyés par le formulaire sous une forme de tableau. Chaque ligne de tableau est accessible entre autre par une commande each(). Ainsi, par la commande while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) , on obtient les variables et leurs valeurs ligne après ligne et on n'a pas besoin de connaître à l'avance le nombre et le nom des variables soumises au formulaire.
On a néanmoins quelques noms de variable prédéfinis qui font appel à des fonctions précises:
QT_n doit précéder immédiatement NR_m, et n et m doivent être identiques pour que le prix soit calculé correctement.
La documentation de PHP est également très abondante et très bonne. Il ne m'a pas fallu beaucoup d'efforts pour découvrir les commandes dont j'avais besoin.
Néanmoins, un bug dans la fonction strpos(a, b) m'a causé du fil à retordre. En effet, cette fonction ne marche pas correctement si la sous-chaîne à localiser est au début de la chaîne. Ce bug est bien connu, mais j'ai mis longtemps à découvrir le problème et à trouver la solution. La description du problème et sa solution se trouvaient bien sur le site de PHP, dans la page décrivant la fonction, mais dans les remarques faites par les utilisateurs. Pour un bug aussi gênant, cette manière de faire est un peu curieuse.
Retour à la page travaux