Lors de ce TP, nous allons étudier la programmation en PHP. Vous devrez me rendre un rapport (un par binôme) dans une semaine maximum (quelle que soit la date de votre prochain TP). Passé cette date, je ne le prendrai plus (vous pouvez me le rendre plus tôt). Aujourd'hui vous travaillerez sous Linux. Quand je propose des liens, ce n'est pas nécessairement la seule adresse intéressante.
Comme nous l'avons vu en cours, le langage PHP est nécessairement écrit dans une page HTML, et sera interprété par un serveur Web. Coup de chance, vous avez accès à un serveur Web installé sur ipst-sv. En fait, il vous suffit de mettre vos fichiers (.html ou .php) dans le répertoire "public_html" qui est dans votre répertoire de travail. Si vous vous appelez Jean Dupont, vous accéderez directement à cette page dans un navigateur par l'adresse ipst-sv/~dupontj (partout à l'IPST, notre parefeux ne permet pas d'échange avec l'extérieur)
1) Ecrivez une page HTML très simple, dans laquelle vous vous décrivez (nom, prénom, adresse...). Dans votre rapport dites moi à quelle adresse je peux le voir (depuis l'IPST, évidemment)
2) Vous allez désormais faire un programme séquentiel : à partir de 4 arguments nommés a, b, c, et x, votre programme calcule (et affiche) ax2+bx+c. Si votre page s'appelle p1.php, testez par exemple : ipst-sv/~dupontj/p1.php?a=2&b=-1&c=2&x=2
3) Vous allez désormais utiliser des tests IF. Supposons qu'un problème physique se modélise par l'équation ax2+bx+c=0. Trouvez toutes les solutions (réelles), quelles que soient les valeurs a,b,c proposées par l'utilisateur (par exemple a=quantité de patates, b=fromage, c=vin, x nb d'amis que je peux inviter pour une tartiflette, plusieurs solutions suivant le type d'invités). sqrt($v) donne la racine de $v. Essayez 1,-3,2 / 1,-2,1 / 1,0,2 / 0,1,2
4) Vous allez désormais rechercher la première racine positive de ax3+bx2+cx+d=0. Attention, ce n'est pas la meilleure méthode, ce problème est uniquement posé pour vous faire travailler les boucles. On cherche d'abord à encadrer la première racine positive (f(x) change de signe) par pas de 1 (si on arrive à 10000 on abandonne). Puis (sauf si vous êtres trop en retard) dans un second temps on restreint l'encadrement de moitié jusqu'à ce qu'on ait une précision de 10-3 (dichotomie).
5) Le but est d'approfondir le transfert d'arguments. Pour cela , l'ordinateur va nous faire jouer au plus ou moins : il va choisir un nombre, nous allons tenter de le découvrir.
Pour commencer, vous allez chercher comment transmettre une valeur plus simplement, grâce à un formulaire HTML (FORM). Nous n'enverrons ici qu'un seule valeur. Pour de la doc, voir http://www.commentcamarche.net/html/htmlform.php3. Faites une page qui demande un nombre dans un formulaire, et l'envoie à une page qui va l'afficher.
Pour faire choisir un nombre aléatoire par l'ordinateur (entre 1 et 100), il faut utiliser la fonction "mt_rand(1,100)" (doc : http://www.php.net/manual/fr/function.mt-srand.php). Modifiez la page précédente pour dire "gagné" ou "perdu, trop petit" ou "perdu, trop grand" suivant que la valeur proposée par l'utilisateur corresponde à celle choisie par l'ordinateur.
évidement, il faudrait que si on a perdu il repose la question, jusqu'à ce qu'on trouve son choix (ou qu'on décide d'abandonner). Le problème est qu'il faut mémoriser son choix, mais ce choix sera différent pour chaque client qui accède simultanément à ce jeu. Seule solution : mettre le choix sous forme d'un cookie (à la rigueur codé, pour les tricheurs) : doc : http://www.lephpfacile.com/cours/index.php?p=18