|
Prochaine révision
|
Révision précédente
|
clubinfo:php2 [2024/08/18 10:26] mrcjl créée |
clubinfo:php2 [2024/08/18 14:38] (Version actuelle) mrcjl [Améliorations] |
| Elle reprend le code vu précédemment et demande le nom, prénom, age et sexe du visiteur (le sexe est demandé par 2 méthodes différentes). | Elle reprend le code vu précédemment et demande le nom, prénom, age et sexe du visiteur (le sexe est demandé par 2 méthodes différentes). |
| |
| <file html formulaire.html> | <file html formulaire.html > |
| <!DOCTYPE html> <!--Déclaration de la page HTML --> | <!DOCTYPE html> <!--Déclaration de la page HTML --> |
| <html lang="fr"> <!-- Début de page écrite en français --> | <html lang="fr"> <!-- Début de page écrite en français --> |
| </SELECT> | </SELECT> |
| </FIELDSET> | </FIELDSET> |
| <INPUT type="submit" value="Envoyer" /> | <INPUT type="submit" value="Envoyer" name="ok" /> |
| <INPUT type="reset" value="Effacer" /> | <INPUT type="reset" value="Effacer" /> |
| </FORM> | </FORM> |
| </body> <!-- Fin du corps --> | </body> <!-- Fin du corps --> |
| </html> <!-- Fin de la page --> | </html> <!-- Fin de la page --> |
| <code> | </file> |
| | |
| | =====Variables et instructions utiles en PHP===== |
| | **Les données du formulaire sont transmises dans un tableau $_POST**. Il correspond à l'attribut "method" et il contient une liste de variables et leurs valeurs : $_POST["nom"], $_POST["prenom"], $_POST["age"], $_POST["sexe1"], $_POST["sexe2"], $_POST["ok"]. Le nom des variables correspond à la valeur de l'attribut "name" des champs du formulaire. |
| | |
| | **La validation du formulaire le transmet son contenu à la page indiquée dans son attribut "action"** soit "reponse.php" (validation = clic sur "Envoyer"). Si "action='#"", il sera transmis à la page qui a demandé les informations (même page). |
| | |
| | **L’existence d'une variable peut être testée par la fonction isset(variable);**. Le caractère '!' utilisé en début de condition inverse celle-ci [if (!vrai) = if (faux)]. |
| | L'instruction **strtoupper(texte)** transforme le texte entièrement en majuscule et **ucwords(texte)** le transforme entièrement en minuscule sauf la 1ere lettre de chaque mot en majuscule. |
| | |
| | =====Page de la réponse===== |
| | Elle précisera au visiteur les informations transmises et sera composé de HTML et de PHP. |
| | |
| | <file php reponse.php> |
| | <!DOCTYPE html> <!--Déclaration de la page HTML --> |
| | <html lang="fr"> <!-- Début de page écrite en français --> |
| | <head> <!-- Début entête --> |
| | <meta charset="UTF-8"> <!-- Codage des caractères (important mais sera vu plus tard) --> |
| | <title>Connaitre le visiteur</title> |
| | <!--link href="style.css" rel="stylesheet" type="text/css" /> <!-- Autre fichier (ici mise en forme) utile à la page --> |
| | </head> <!-- Fin de entête --> |
| | <body> <!-- Début du corps --> |
| | <h1>Une page pour faire connaissance</h1> |
| | <?php |
| | if (! isset ($_POST["ok"])) { |
| | echo "\t<p>Vous n'avez pas répondu à mes questions et appelé la page directement.</p>\n"; |
| | } else { |
| | echo "\t<p>Merci d'avoir répondu à mes questions.</p>\n"; |
| | echo "\t<p>Si j'ai bien compris :<br />\n"; |
| | echo "\t\t<ul>\n"; |
| | printf ("\t\t\t<li>Vous vous appelez : %s %s</li>\n", strtoupper($_POST["nom"]), ucwords($_POST["prenom"])); |
| | if ($_POST["nom"] == "") echo "\t\t\t<li> - en fait vous n'avez pas de nom</li>\n"; |
| | if ($_POST["prenom"] == "") echo "\t\t\t<li> - en fait vous n'avez pas de prenom</li>\n"; |
| | printf ("\t\t\t<li>Vous avez : %d ans</li>\n", $_POST["age"]); |
| | if ($_POST["age"] < 10) echo "\t\t\t<li> - vous me paressez très jeune ?</li>\n"; |
| | if ($_POST["age"] > 90) echo "\t\t\t<li> - vous me paressez très vieux ?</li>\n"; |
| | if ($_POST["sexe1"] != $_POST["sexe2"]) echo "\t\t\t<li> - vous ne semblez pas sur de votre sexe ?</li>\n"; |
| | else switch ($_POST["sexe1"]) { |
| | case "M": echo "\t\t\t<li>Vous êtes un homme.</li>\n"; break; |
| | case "F": echo "\t\t\t<li>Vous êtes une femme.</li>\n"; break; |
| | default: echo "\t\t\t<li>Vous ne connaissez pas votre sexe.</li>\n"; |
| | } |
| | echo "\t\t</ul>\n"; |
| | } |
| | echo "\t</p>\n"; |
| | ?> |
| | </body> |
| | </html> |
| | </file> |
| | |
| | =====Améliorations===== |
| | Faite calculer l'année de naissance ? |
| | * l'instruction date("j/m/Y") retourne la date sous la forme "JJ/MM/AAAA", date("Y") ne renvoi que l'année. Voir la documentation de l'instruction pour obtenir plus d'information sur les dates et heures. |
| |