# TD Formulaire (intro). # ## Exo (Quizz) ## * Pour transmettre l'information d'un formulaire, je peux utiliser - get - set - post - lock - mock * Quelle forme est la plus adaptée si je veux pouvoir mettre un marque-page? * Quelle forme est la plus adaptée si je veux transmettre un mot de passe? pourquoi? * Quel élément de formulaire permet de choisir exactement une option? * Quel élément de formulaire permet de choisir plusieurs options? **correction** * get, post * get * post, car la valeur du mdp sera caché alors qu'avec get elles apparaitra dans l'url. * radio * checkbox ## Exo (Syntaxe) ## Notre page web contient ceci. ```html
ton surnom :
``` Nous souhaitons que salut.php (ci-dessous) affiche salut suivi du surnom entré à la page précédente. **à corriger** ```php Welcome ``` **correction** ```php Welcome ``` ## Exo (Un jeu) ## On souhaite coder le jeu super ludique suivant. L'utilisateur doit écrire une ligne de texte sur une première ligne et une autre ligne de texte sur une seconde ligne qui soit la traduction en rot13. Pour ceci PhP offre une méthode intéressante `str_rot13(string $string): string` Ainsi le fichier suivant : ```php "; echo str_rot13("Fnyhg gbgb, ebg13 p'rfg ahy pbzzr pelcgb"); ?> ``` va afficher ceci sur le navigateur. ``` Fnyhg gbgb, ebg13 p'rfg ahy pbzzr pelcgb Salut toto, rot13 c'est nul comme crypto ``` Pour le jeu on veut donc un formulaire ```html

Le Jeu du rot13






``` Détaillez les parties intéressates du fichier `rot13.php` qui permettent d'afficher win ou loss (en rot13 évidemment) selon que le joueur a gagné ou perdu en dessous du texte chiffré initial. Exemple si je soumet ``` le clair : Salut toto le chiffré : Fnyhg gbgb ``` alors le navigateur va afficher ``` Fnyhg gbgb ??? ``` où ??? correspond à win en rot13. Question bonus : quelle url permet-elle d'afficher win en rot13 en dessous de win? ## Exo ## * Proposez un page 'get.php' qui affiche une liste sous la forme variable=valeur de toutes les variables reçues par la méthode get. (NB. vous pouvez la tester en éditant directement l'url). * Proposez un page 'post.php' qui affiche une liste sous la forme variable=valeur de toutes les variables reçues par la méthode post. (NB. vous pouvez la tester en utilisant un formulaire qui pointe vers cette page via la méthode post, par exemple en changeant légèrement le formulaire du jeu rot13 ci-dessus). * Proposez une page 'getToPost.php' qui possède un boutton *redirect* qui une fois activé transmet à une page 'post.php' les variables qu'elle a reçu via la méthode get. * Testez votre tuyauterie complète en branchant dans l'ordre 'get.php' vers 'getToPost.php' puis 'post.php'. * En option, proposez une page 'PostToget.php'. ## Exo (string et tableaux associatifs)## introduction quelques méthodes pour les string. explode(string $separator, string $string, int $limit = PHP_INT_MAX): array Pour obtenir le tableau des mots d'une phrase : explode(" ","bonjour tout le monde") Pour faire la différence entre deux tableaux array_diff(array $array, array ...$arrays): array Exemple : "red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"green","g"=>"blue"); $result=array_diff($a1,$a2); print_r($result); ?> va afficher Array ( [d] => yellow ) Question. Écrire un programme PhP qui prend une phrase en argument, enlève les mots pas intéressants ou vulgaires (par exemple "le la les de du au à quel quelle il elle tu je nous vous ils mais ou et donc or ni car zouave étudiant athlète") et compte le nombre de mots. On affiche les mots sous forme d'un nuage de mot du pauvre en changeant la taille des mots en fonction de leur fréquence. Par exemple, dix fois leur fréquence en pixel:

Trendy

Cool