1
0
forked from monnerat/web_2024

Compare commits

...

72 Commits
main ... main

Author SHA1 Message Date
a233d3b719 cm et tp pour M. Pot 2025-04-14 20:15:01 +02:00
c984310cc2 tp3 2025-04-07 09:18:29 +02:00
66239bdc85 cm 04/04/2025 2025-04-04 08:53:21 +02:00
ac3656209c E. Brun git add -f Groupes.md ! 2025-04-03 13:57:47 +02:00
49ad6a87df retard 2025-04-02 17:23:25 +02:00
09f4e82d95 oubli 2025-04-02 11:20:13 +02:00
08d9b339ee soutenances 2025-04-02 09:34:00 +02:00
66085a9ddc ajout exo pour ceux qui ont fini le tp2 2025-04-02 09:09:05 +02:00
f56154d10d maj groupes 2025-04-01 14:19:46 +02:00
00133a0b71 maj groupes 2025-04-01 14:16:15 +02:00
c22e50bb06 dates git add README.md ! 2025-03-30 20:15:01 +02:00
db9aedd9aa tp2 2025-03-30 20:10:20 +02:00
b76a9de642 cm 2 2025-03-28 10:05:41 +01:00
4ceb1997d5 rand 2025-03-26 10:51:29 +01:00
e768da2cd2 ajout exo 61 2025-03-26 09:03:20 +01:00
bd7cc7ff3f ajout exo 61 2025-03-26 09:02:21 +01:00
0a3521310c ajout exo 61 2025-03-26 09:01:38 +01:00
3f095564fb Groupes 2025-03-25 20:07:42 +01:00
4863299eae f groupes 2025-03-24 11:55:15 +01:00
0e6f47bbb4 f groupes 2025-03-24 11:46:25 +01:00
2aa0f688bf Groupes 2025-03-21 18:19:27 +01:00
53d5c9a1db Groupes 2025-03-21 16:19:24 +01:00
4b2df8fd63 Groupes 2025-03-21 15:44:05 +01:00
c07fe8b2bb Groupes 2025-03-21 14:10:47 +01:00
2fa1362660 maj dates 2025-03-21 11:27:07 +01:00
762864c0d3 groupes 2025-03-20 17:20:35 +01:00
b24991aa31 oubli git add cm_bases_php.pdf ! 2025-03-18 11:07:30 +01:00
92f915c3eb ajout tp1 2025-03-17 09:15:21 +01:00
61278e2b10 debut cm prog web serveur 2025-03-16 10:41:40 +01:00
fc58d535dc info projet 2025-03-16 10:32:27 +01:00
0e03a68bed typo 2025-03-14 11:49:52 +01:00
506ecfa837 tp6 node 2025-03-14 11:47:00 +01:00
835598801e probleme location sur create dans l'api 2025-03-10 16:54:04 +01:00
8d62cd6c95 correction typo 2025-03-08 09:15:46 +01:00
e7d1f22be6 archives 2025-03-07 15:18:05 +01:00
5fe41c9a9e tp5 2025-03-07 14:53:05 +01:00
49798f4a7f ajout router 2025-03-03 08:34:13 +01:00
ae55e46aed ajout conseils 2025-02-18 18:32:06 +01:00
208584efef ajout conseils 2025-02-18 18:29:27 +01:00
47c12a4cd1 typo 2025-02-14 15:24:33 +01:00
738d8baad3 ajout tar.gz 2025-02-14 15:04:29 +01:00
35cdc8837c ajout cm/tp riot 2025-02-14 11:31:36 +01:00
7dda940779 typo 2025-02-14 11:29:37 +01:00
2e1e34db0e typo 2025-02-14 11:28:37 +01:00
560c8c0e15 ajout précisions projets 2025-02-14 11:25:37 +01:00
22912ec267 ajout précisions projets 2025-02-14 11:22:15 +01:00
8a43fbbab3 typo 2025-02-13 19:49:25 +01:00
c99e4e2e0c typo 2025-02-13 19:47:41 +01:00
326826ade6 typo 2025-02-13 19:45:53 +01:00
99e0cbbbba tp4 2025-02-13 19:38:19 +01:00
d23d17128c typo 2025-02-10 14:49:22 +01:00
20708cc0c3 ajout sources ex2 2025-02-10 14:06:55 +01:00
4eda7fe5af typo 2025-02-10 11:54:34 +01:00
cbb184a9c0 typo 2025-02-10 11:50:39 +01:00
1de2a07ce7 ajout exo2 2025-02-10 11:44:59 +01:00
cfb3fc3076 ajout exo2 2025-02-10 11:36:06 +01:00
442a662443 M. Jannaire 2025-02-07 15:24:22 +01:00
911aed402a M. Jannaire 2025-02-07 15:23:44 +01:00
27e24c917e tp3 2025-02-07 11:41:41 +01:00
b89351ab51 Merci M. Raymond 2025-02-03 15:40:31 +01:00
f3dafbc079 merci M. Raymond 2025-02-03 15:39:25 +01:00
cd0b51e170 typo 2025-02-03 10:55:02 +01:00
abc0c9ae9f typo 2025-02-03 10:53:11 +01:00
4bc10860a5 typo 2025-02-03 10:52:04 +01:00
1d7e676f43 typo 2025-02-03 09:14:41 +01:00
e3565e2d99 typo 2025-02-03 09:11:35 +01:00
c27f712980 typo 2025-02-03 09:05:09 +01:00
7fec517f7d typo 2025-02-03 08:57:52 +01:00
8820eb3745 typo 2025-02-03 08:51:22 +01:00
6bcf423312 test p0 2025-02-03 08:37:29 +01:00
e4706feb3b typo 2025-02-02 21:18:47 +01:00
6b6cb5d041 typo 2025-02-02 19:58:08 +01:00
195 changed files with 8807 additions and 11 deletions

67
R3.01/README.md Normal file

@ -0,0 +1,67 @@
# Programmation WEB coté serveur R3.01
Ce dépôt contient les ressources utilisées
(cours/td/tp) dans la ressource R3.01.
**Les objectifs**
> Savoir développer une application Web côté serveur, en utilisant le langage PHP.
Les notions suivantes seront abordées :
- Le langage php
On se limitera aux bases du langages. La couche objet sera présenté très succintement.
Toute la suite sera illustré avec PHP.
- Interaction avec le client
URL (Uniform Resource Locator), requêtes, formulaires, transmission des paramètres, des données, etc.
- Applications Web à états
Cookies et sessions
- Organisation de laccès aux données
Bases de données, annuaires, services Web, etc.
- Introduction à la programmation objet en PHP
Introduction au principe MVC
- Sensibilisation à la sécurité des applications web
## Calendrier
| Semaine | Cours | TD/TP |
| ------------------ | -------------------------------------------------------- | ------------------ |
| 1 : 24/03 - 28/03| [Bases du langages](./cours/cm_bases_php.pdf) | [tp1](./tp/tp1) |
| 2 : 03/04 - 07/04 | [Intéractions avec le client](./cours/cm_interaction_client_serveur.pdf) | [tp2](./tp/tp2) |
| 3 : 10/04 - 14/04 | [PHP/MySQL](./cours/cm_extension_mysqli.pdf) | [tp3](./tp/tp3) |
| 4 : 28/04 - 02/05 | [Cookies et sessions](./cours/cm_cookies_sessions.pdf) | [tp3](./tp/tp3) |
| 5 : 05/05 - 09/05 | | [tp4](./tp/tp4) |
## Les TPS
#### TP1 : Bases du langage PHP
Le [tp1](./tp/tp1)
permet de se familiariser avec le langage PHP.
À chaque exercice correspond un sous répertoire avec
des fichiers à compléter.
#### TP2 : Intéractions avec le client, formulaires et PHP
Le [tp2](./tp/tp2)
aborde la récupération des données de formulaires avec PHP.
À chaque exercice correspond un sous répertoire avec
des fichiers à compléter.
#### TP3 : PHP/Mysql
Le [tp3](./tp/tp3)
aborde l'interfaçage de php avec mysql, au moyen de l'extention
[mysqli](http://php.net/manual/fr/book.mysqli.php) de php.
À chaque exercice correspond un sous répertoire avec
des fichiers à compléter.
#### TP4 : Cookies et sessions
Le [tp4](./tp/tp4)
aborde la notion de cookies et de sessions,et
les fonctions php dédiées.
À chaque exercice correspond un sous répertoire avec
des fichiers à compléter.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

233
R3.01/tp/tp1/README.md Normal file

@ -0,0 +1,233 @@
# TP1 : bases du langage PHP
**À l'IUT**
Le repertoire `public_html` à la racine de votre compte est accessible par http(s) à l'url suivante :
```
http[s]://dwarves.iut-fbleau.fr/~login/
```
**Ailleurs**
Pour monter ce repertoire dans votre aborescence locale, vous pouvez utiliser le programme `sshfs` :
```
sshfs login@gatekeeper.iut-fbleau.fr:/export/home/an19/login repertoire/de/montage/local/
```
Depuis la version 5.4, la commande `php` embarque un serveur web interne :
```bash
php -S localhost:8080 -t repertoire
```
Le repertoire passé en paramètre est la racine du serveur web.
### Ex1
Vous allez tester votre premier script php : `hello_world` :
```php
<!DOCTYPE html>
<html>
<body>
<?php echo "<h1>hello world</h1>";?>
</body>
</html>
```
- Placez le fichier `hello_world.php` dans votre
repertoire `public_html`, et testez.
- En utilisant la fonction `phpinfo`, faites afficher dans le script
précédent la configuration php du serveur dwarves.
### Ex2
Quel est l'entier servant de clé à
- chaque élément du tableau
suivant :
```php
<?php
$clients = [
"Luc",
7 => "Paul",
2 =>"Martin",
"Arnaud"
];
?>
```
- à l'élément de valeur `Blouson` dans le tableau `$produits` ?
```php
<?php
$produits = [
20 => "Chemise",
3 => "Pantalon",
10 => "Jupe",
"Veste",
"Blouson"
];
?>
```
- à chaque élément du tableau `$array` ?
```php
<?php
$array = ["a","b","c"];
$array[] = "d";
$array[10] = "j";
unset($array[2]);
?>
```
### Ex21
- Créez un tableau de 10 cases dont la clé i contient la somme des entiers jusqu'à i.
- Créez un tableau de 10 cases dont la clé i<sup>2</sup> contient i
.
### Ex22
Écrivez un script php affichant les entiers de 1 à 50.
- Faites en sorte que les impairs soient en italique, et les pairs en gras.
- Regroupez chaque dizaine dans un même paragraphe.
### Ex3
Vous disposez du fichier [data.php](./ex3/include/data.inc.php) qui
représente, sous forme d'un tableau, un certain nombre
d'individus, avec pour chacun ses nom, prénom, email, taille et
poids.
Voici un extrait du fichier :
```php
$data = array(
array("Nom"=>"Garza","Prenom"=>"Forrest","Email"=>"eleifend@ligulaedu","Taille"=>"185","Poids"=>"65"),
array("Nom"=>"Tanner","Prenom"=>"Orla","Email"=>"adipiscing@vitaecouk","Taille"=>"180","Poids"=>"73"),
...
```
1. Ecrire un script qui affichent l'ensemble des données sous
forme d'un tableau html.
2. L'imc (indice de masse corporel) d'une personne est donné par
la formule $\frac{poids}{taille^2}$ (poids en kilogramme et taille en mètre).
Ajouter une colonne avec la valeur de l'imc (2 chiffres après la virgule).
3. Une personne est considérée en surpoids lorsque son imc
dépasse 25. Colorier les lignes du tableau lorsque la
personne correspondante est en surpoids.
![tableau](./ex3/img/tableau_ex3.png)
<details><summary>Conseils</summary>
<div>
- Pour utiliser le fichier de données, incluez-le dans votre
script.
- La structure de langage `foreach` fournit une façon simple de
parcourir des tableaux. `foreach` ne fonctionne que pour les
tableaux et les objets, et émettra une erreur si vous tentez de
l'utiliser sur une variable de type différent ou une variable
non initialisée. Il existe deux syntaxes :
```php
foreach (array_expression as $value){
}
foreach (array_expression as $key => $value){
}
```
Des [exemples]](http://fr2.php.net/manual/fr/control-structures.foreach.php).
- Pour arrondir un réel, vous pouvez utiliser la fonction [round](https://www.php.net/manual/fr/function.round.php).
</div>
</details>
### Ex4
Ecrivez un script qui permet de lancer deux dés, et en affiche la somme. Utilisez la fonction [mt_rand](https://www.php.net/manual/en/function.mt-rand.php) pour la génération aléatoire.
![tableau](./ex4/img/exo4.png)
### Ex5
Ecrire un programme PHP qui affiche, sous forme d'une liste
"cliquable" vos bookmarks (favoris) stockés dans un tableau
associatif. Vos bookmarks seront classés par répertoire. Chaque
répertoire aura donc un nom, et contiendra un certain nombre de
favoris représentés par un nom, une image et une url.
Exemple d'affichage :
- Moteurs de recherche :
- [<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/272px-Google_2015_logo.svg.png" width=40>](http://google.fr).
- [<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Yahoo%21_%282019%29.svg/200px-Yahoo%21_%282019%29.svg.png" width=40>](http://yahoo.fr).
- Journaux :
- [<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/5/54/Le_monde_logo.svg/200px-Le_monde_logo.svg.png" width=40>](http://lemonde.fr).
- [<img src="http://upload.wikimedia.org/wikipedia/fr/0/0a/GNUlinuxmagazinefrance.png" width=40>](http://www.unixgarden.com/index.php/category/gnu-linux-magazine).
- [<img src="http://upload.wikimedia.org/wikipedia/commons/3/32/L%27%C3%89quipe_wordmark.svg" width=40>](http://lequipe.fr).
- Sports :
- [<img src="http://upload.wikimedia.org/wikipedia/fr/6/67/Logo_F%C3%A9d%C3%A9ration_Fran%C3%A7aise_de_Football.svg" width=50>](http://fff.fr).
- [<img src="http://upload.wikimedia.org/wikipedia/fr/b/bf/FFDF.jpg" width=50>](www.ffdf.fr).
### Ex6
Ecrire (et tester) une fonction
```php
<?php
string createPassword(int $n, string $alphabet);
?>
```
qui permet de générer un mot de passe de `n` caractères choisis
aléatoirement parmi les caractères de `alphabet`.
<details><summary>Conseils</summary>
Il suffit de tirer aléatoirement n caractères de la chaîne alphabet et de les concatener.
Les fonctions
[strlen](https://www.php.net/manual/fr/function.strlen.php)
et
[mt_rand](https://www.php.net/manual/fr/function.mt-rand.php) pourront vous être utiles.
</details>
### Ex61
On considère les deux tableaux suivants :
```php
$tabMagazines = [
'le monde' => ['frequence' => 'quotidien', 'type' => 'actualité', 'prix' => 220],
'le point' => ['frequence' => 'hebdo' , 'type' => 'actualité', 'prix' => 80 ],
'causette' => ['frequence' => 'mensuel' , 'type' => 'féminin' , 'prix' => 180],
'politis' => ['frequence' => 'hebdo' , 'type' => 'opinion' , 'prix' => 100],
'le monde diplomatique' => ['frequence' => 'mensuel' , 'type' => 'analyse' , 'prix' => 60 ],
'libération' => ['frequence' => 'quotidien', 'type' => 'actualité', 'prix' => 190],
];
$tabMagazinesAbonne = ['le monde', 'le monde diplomatique'];
```
1. Afficher sur une ligne le nom de tous les magazines triés par ordre alphabétique et séparés par des virgules, sans faire de boucle.
Vous utiliserez des fonctions déjà existantes telles que [implode](https://www.php.net/manual/en/function.implode.php), [sort](https://www.php.net/manual/en/function.sort.php) et [array_keys](https://www.php.net/manual/en/function.array-keys.php) que vous trouverez dans le manuel php.
2. Afficher séparés par des virgule les noms des quotidiens (et uniquement ceux-ci).
3. Afficher les magazines exactement de la façon suivante en supposant quil peut y avoir beaucoup de magazines et beaucoup de propriétés associées :
- le monde (quotidien, actualité, 220)
- le point (hebdo, actualité, 80)
- causette (mensuel, féministe, 180)
- politis (hebdo, opinion, 100)
- le monde diplomatique (mensuel, analyse, 60)
4. En utilisant le tableau `$tabMagazinesAbonne` contenant le nom des magazines dun abonné, calculer le prix total de son abonnement.
### Ex7
On reprend l'exercice 3.
1. Ajouter une colonne de clé `Imc` aux personnes du tableau `$data`. On utilisera la fonction
[array_map](https://www.php.net/manual/fr/function.array-map.php).
2. Trier `$data` par ordre croissant d'imc. On utilisera la fonction [usort](https://www.php.net/manual/fr/function.usort.php).
3. Calculer l'imc moyen de l'ensemble des personnes. On utilisera la fonction [array_reduce](https://www.php.net/manual/fr/function.array-reduce.php).
### Ex8
1. Allez voir la page manuel PHP de [scandir](https://www.php.net/manual/en/function.scandir).
Quel(s) sont ses arguments ? Que renvoie-t-elle ?
2. Utilisez scandir pour afficher des liens vers les autres fichiers de votre dossier public_html. On rappelle
que la balise html `a` permet de créer des hyperliens.
3. Utilisez la méthode [str_ends_with](https://www.php.net/manual/en/function.str-ends-with.php) pour nafficher que les scripts PHP.
Par ailleurs, une liste des fonctions sur les chaînes de caractères est disponible [ici](https://www.php.net/ref.strings).

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<body>
<?php
echo "<h1>hello world !!!</h1>";
//phpinfo();
?>
</body>
</html>

@ -0,0 +1,26 @@
<?php
$clients = [
"Luc",
7 => "Paul",
2 =>"Martin",
"Arnaud"
];
$produits = [
20 => "Chemise",
3 => "Pantalon",
10 => "Jupe",
"Veste",
"Blouson"
];
$array = ["a","b","c"];
$array[] = "d";
$array[10] = "j";
unset($array[2]);
echo "<pre>";
print_r($clients);
print_r($produits);
print_r($array);
echo "</pre>";
?>

@ -0,0 +1,3 @@
.warning tr,.warning td {
background-color : rgb(255,154,0);
}

Binary file not shown.

After

(image error) Size: 114 KiB

@ -0,0 +1,106 @@
<?php
$data = array(
array("Nom"=>"Garza","Prenom"=>"Forrest","Email"=>"eleifend@ligulaedu","Taille"=>"185","Poids"=>"65"),
array("Nom"=>"Tanner","Prenom"=>"Orla","Email"=>"adipiscing@vitaecouk","Taille"=>"180","Poids"=>"73"),
array("Nom"=>"Griffith","Prenom"=>"Susan","Email"=>"condimentum@tristiqueca","Taille"=>"172","Poids"=>"75"),
array("Nom"=>"Wilkinson","Prenom"=>"Carla","Email"=>"tinciduntaliquamarcu@utmolestieca","Taille"=>"178","Poids"=>"71"),
array("Nom"=>"Kirkland","Prenom"=>"Vladimir","Email"=>"Donec@egettinciduntduiorg","Taille"=>"178","Poids"=>"73"),
array("Nom"=>"Holloway","Prenom"=>"Joy","Email"=>"enim@Nullamca","Taille"=>"191","Poids"=>"67"),
array("Nom"=>"Soto","Prenom"=>"Cleo","Email"=>"posuereatvelit@Incondimentumca","Taille"=>"167","Poids"=>"70"),
array("Nom"=>"Jacobson","Prenom"=>"Linda","Email"=>"disparturientmontes@metusurnaconvallisnet","Taille"=>"169","Poids"=>"73"),
array("Nom"=>"Wilder","Prenom"=>"Ina","Email"=>"odiovel@eratcouk","Taille"=>"167","Poids"=>"68"),
array("Nom"=>"Pace","Prenom"=>"Melvin","Email"=>"euismodindolor@DonecestNuncca","Taille"=>"175","Poids"=>"68"),
array("Nom"=>"Moody","Prenom"=>"Hayden","Email"=>"ornareelit@malesuadaIntegeridedu","Taille"=>"180","Poids"=>"63"),
array("Nom"=>"Rhodes","Prenom"=>"Jarrod","Email"=>"turpis@placeratnet","Taille"=>"168","Poids"=>"68"),
array("Nom"=>"Bean","Prenom"=>"Marah","Email"=>"suscipitest@ullamcorperDuiscursusnet","Taille"=>"165","Poids"=>"61"),
array("Nom"=>"Beard","Prenom"=>"Dylan","Email"=>"nonmagna@mollisnet","Taille"=>"173","Poids"=>"62"),
array("Nom"=>"Davenport","Prenom"=>"September","Email"=>"amet@purusca","Taille"=>"179","Poids"=>"67"),
array("Nom"=>"Boyd","Prenom"=>"Natalie","Email"=>"Aeneangravidanunc@metusorg","Taille"=>"179","Poids"=>"62"),
array("Nom"=>"Davidson","Prenom"=>"Kane","Email"=>"ullamcorpermagnaSed@eutemporcouk","Taille"=>"181","Poids"=>"67"),
array("Nom"=>"Burch","Prenom"=>"Tanek","Email"=>"a@Vivamussitorg","Taille"=>"169","Poids"=>"69"),
array("Nom"=>"Talley","Prenom"=>"Leo","Email"=>"musAeneaneget@ornareliberoatcom","Taille"=>"167","Poids"=>"72"),
array("Nom"=>"Stephens","Prenom"=>"Simone","Email"=>"in@auctorodioacom","Taille"=>"170","Poids"=>"65"),
array("Nom"=>"Haynes","Prenom"=>"Gloria","Email"=>"liberoettristique@diamvelarcucouk","Taille"=>"169","Poids"=>"70"),
array("Nom"=>"Blanchard","Prenom"=>"Faith","Email"=>"massa@augueeutellusnet","Taille"=>"166","Poids"=>"62"),
array("Nom"=>"Randall","Prenom"=>"Blaze","Email"=>"atpede@blanditNamnullacom","Taille"=>"163","Poids"=>"66"),
array("Nom"=>"Griffith","Prenom"=>"Roary","Email"=>"aliquetmetus@velnislcouk","Taille"=>"162","Poids"=>"64"),
array("Nom"=>"Morgan","Prenom"=>"Tanner","Email"=>"egetlaoreet@arcucouk","Taille"=>"179","Poids"=>"67"),
array("Nom"=>"Chapman","Prenom"=>"Amelia","Email"=>"nunc@massaQuisquecom","Taille"=>"164","Poids"=>"69"),
array("Nom"=>"Grant","Prenom"=>"Chloe","Email"=>"auctorMauris@loremegetorg","Taille"=>"173","Poids"=>"72"),
array("Nom"=>"Richardson","Prenom"=>"Ryan","Email"=>"scelerisque@ullamcorpermagnacouk","Taille"=>"173","Poids"=>"64"),
array("Nom"=>"Cleveland","Prenom"=>"Yeo","Email"=>"acsem@vehiculaca","Taille"=>"163","Poids"=>"69"),
array("Nom"=>"Gay","Prenom"=>"Amanda","Email"=>"fames@idsapienedu","Taille"=>"165","Poids"=>"63"),
array("Nom"=>"Peters","Prenom"=>"Bruno","Email"=>"ornaretortor@condimentumDonecatcom","Taille"=>"163","Poids"=>"66"),
array("Nom"=>"Lambert","Prenom"=>"Dean","Email"=>"sapien@sitametrisuscouk","Taille"=>"180","Poids"=>"71"),
array("Nom"=>"Petty","Prenom"=>"Nigel","Email"=>"pedeSuspendisse@risusDuiscouk","Taille"=>"168","Poids"=>"66"),
array("Nom"=>"Phelps","Prenom"=>"Cullen","Email"=>"euaugue@Vestibulumanteca","Taille"=>"159","Poids"=>"76"),
array("Nom"=>"Cochran","Prenom"=>"Marny","Email"=>"Lorem@enimconsequatpuruscouk","Taille"=>"157","Poids"=>"67"),
array("Nom"=>"Bauer","Prenom"=>"Sloane","Email"=>"nisi@liberonet","Taille"=>"174","Poids"=>"72"),
array("Nom"=>"Strong","Prenom"=>"Leigh","Email"=>"ut@Aliquamcouk","Taille"=>"176","Poids"=>"65"),
array("Nom"=>"Olsen","Prenom"=>"Herrod","Email"=>"uteratSed@rutrumloremedu","Taille"=>"167","Poids"=>"72"),
array("Nom"=>"Spears","Prenom"=>"Bruno","Email"=>"congueturpis@nullaorg","Taille"=>"162","Poids"=>"77"),
array("Nom"=>"Pearson","Prenom"=>"Marah","Email"=>"Donecatarcu@aedu","Taille"=>"174","Poids"=>"62"),
array("Nom"=>"Moore","Prenom"=>"Orson","Email"=>"semegetmassa@puruscouk","Taille"=>"189","Poids"=>"76"),
array("Nom"=>"Roman","Prenom"=>"Kylie","Email"=>"habitant@duiaugueca","Taille"=>"177","Poids"=>"66"),
array("Nom"=>"Michael","Prenom"=>"Ciaran","Email"=>"nostraper@nibhPhaselluscom","Taille"=>"156","Poids"=>"65"),
array("Nom"=>"Sheppard","Prenom"=>"Colton","Email"=>"enim@inaliquetedu","Taille"=>"159","Poids"=>"70"),
array("Nom"=>"Mathews","Prenom"=>"Pamela","Email"=>"auctor@Praesenteuedu","Taille"=>"168","Poids"=>"74"),
array("Nom"=>"Thompson","Prenom"=>"Olga","Email"=>"vel@egestascom","Taille"=>"173","Poids"=>"75"),
array("Nom"=>"Petersen","Prenom"=>"Jared","Email"=>"urna@Crasvulputatevelitca","Taille"=>"173","Poids"=>"75"),
array("Nom"=>"Leblanc","Prenom"=>"Aurora","Email"=>"dictum@egetcom","Taille"=>"164","Poids"=>"72"),
array("Nom"=>"Blanchard","Prenom"=>"Keiko","Email"=>"Suspendisse@torquentperconubiacouk","Taille"=>"167","Poids"=>"72"),
array("Nom"=>"Sharp","Prenom"=>"Barrett","Email"=>"Proineget@laoreetposuereedu","Taille"=>"163","Poids"=>"72"),
array("Nom"=>"Hughes","Prenom"=>"Orson","Email"=>"utdolor@risusDonecegestasnet","Taille"=>"159","Poids"=>"62"),
array("Nom"=>"Porter","Prenom"=>"Ava","Email"=>"Fuscedolor@Nuncnet","Taille"=>"178","Poids"=>"70"),
array("Nom"=>"Figueroa","Prenom"=>"Lesley","Email"=>"Quisquenonummy@eulacusorg","Taille"=>"168","Poids"=>"68"),
array("Nom"=>"Wyatt","Prenom"=>"Zelenia","Email"=>"sitametultricies@accumsansedfacilisiscom","Taille"=>"174","Poids"=>"61"),
array("Nom"=>"Stark","Prenom"=>"Sarah","Email"=>"natoquepenatibuset@neccursusacom","Taille"=>"167","Poids"=>"67"),
array("Nom"=>"Carney","Prenom"=>"Ariana","Email"=>"enimsit@nuncinterdumfeugiatorg","Taille"=>"180","Poids"=>"78"),
array("Nom"=>"Simmons","Prenom"=>"Herrod","Email"=>"ac@estnet","Taille"=>"172","Poids"=>"72"),
array("Nom"=>"Mayo","Prenom"=>"Carissa","Email"=>"Nulla@quamquisca","Taille"=>"182","Poids"=>"60"),
array("Nom"=>"Higgins","Prenom"=>"Serena","Email"=>"anteblanditviverra@aliquetPhasellusfermentumedu","Taille"=>"178","Poids"=>"71"),
array("Nom"=>"Fletcher","Prenom"=>"Remedios","Email"=>"Phaselluselitpede@consequatcouk","Taille"=>"180","Poids"=>"73"),
array("Nom"=>"Green","Prenom"=>"Dale","Email"=>"libero@temporeratorg","Taille"=>"171","Poids"=>"68"),
array("Nom"=>"White","Prenom"=>"Jack","Email"=>"velconvallis@anteedu","Taille"=>"172","Poids"=>"73"),
array("Nom"=>"Russo","Prenom"=>"Giselle","Email"=>"nonnisi@luctusvulputateorg","Taille"=>"160","Poids"=>"69"),
array("Nom"=>"James","Prenom"=>"Kimberley","Email"=>"malesuadafamesac@nuncsitametcom","Taille"=>"191","Poids"=>"72"),
array("Nom"=>"Huffman","Prenom"=>"Thomas","Email"=>"Nuncmauriselit@Pellentesqueca","Taille"=>"168","Poids"=>"68"),
array("Nom"=>"Turner","Prenom"=>"Cody","Email"=>"lorem@elitcouk","Taille"=>"172","Poids"=>"73"),
array("Nom"=>"Neal","Prenom"=>"Cheryl","Email"=>"nequevitaesemper@rhoncusidcom","Taille"=>"170","Poids"=>"68"),
array("Nom"=>"Patel","Prenom"=>"Hamilton","Email"=>"ametultriciessem@nonantebibendumedu","Taille"=>"172","Poids"=>"79"),
array("Nom"=>"Alexander","Prenom"=>"Grant","Email"=>"nonnisiAenean@massacom","Taille"=>"174","Poids"=>"68"),
array("Nom"=>"Shepherd","Prenom"=>"Tad","Email"=>"ac@inorg","Taille"=>"165","Poids"=>"76"),
array("Nom"=>"Wynn","Prenom"=>"Danielle","Email"=>"lectusquismassa@InfaucibusMorbiorg","Taille"=>"169","Poids"=>"66"),
array("Nom"=>"Pollard","Prenom"=>"Ahmed","Email"=>"velarcu@Nullaegetorg","Taille"=>"164","Poids"=>"62"),
array("Nom"=>"Peters","Prenom"=>"Hollee","Email"=>"loremipsum@sitametca","Taille"=>"177","Poids"=>"75"),
array("Nom"=>"Alston","Prenom"=>"Brendan","Email"=>"antebibendumullamcorper@idblanditcouk","Taille"=>"156","Poids"=>"68"),
array("Nom"=>"Keith","Prenom"=>"Vernon","Email"=>"diam@sagittisnet","Taille"=>"168","Poids"=>"70"),
array("Nom"=>"Rodgers","Prenom"=>"Angela","Email"=>"pharetra@vellectusCumcom","Taille"=>"171","Poids"=>"65"),
array("Nom"=>"Parker","Prenom"=>"Tatiana","Email"=>"penatibusetmagnis@scelerisquesedca","Taille"=>"173","Poids"=>"68"),
array("Nom"=>"Miller","Prenom"=>"Timothy","Email"=>"tinciduntcongue@atca","Taille"=>"178","Poids"=>"66"),
array("Nom"=>"Wilder","Prenom"=>"Rosalyn","Email"=>"mauris@aliquameuorg","Taille"=>"165","Poids"=>"67"),
array("Nom"=>"Baker","Prenom"=>"Sheila","Email"=>"sitametrisus@euplacerategetcouk","Taille"=>"178","Poids"=>"69"),
array("Nom"=>"Lee","Prenom"=>"Roary","Email"=>"nequenon@acouk","Taille"=>"159","Poids"=>"61"),
array("Nom"=>"Gillespie","Prenom"=>"Quemby","Email"=>"nonenimcommodo@lobortiscom","Taille"=>"167","Poids"=>"61"),
array("Nom"=>"Dixon","Prenom"=>"Zenaida","Email"=>"risus@etmagnisdisca","Taille"=>"170","Poids"=>"72"),
array("Nom"=>"Holden","Prenom"=>"Chloe","Email"=>"in@elementumorg","Taille"=>"169","Poids"=>"76"),
array("Nom"=>"Rios","Prenom"=>"Stone","Email"=>"consequatenim@enimMaurisca","Taille"=>"169","Poids"=>"77"),
array("Nom"=>"Berg","Prenom"=>"Sara","Email"=>"faucibusleo@Maurisblanditenimorg","Taille"=>"162","Poids"=>"63"),
array("Nom"=>"Clay","Prenom"=>"Timon","Email"=>"etultrices@necorg","Taille"=>"168","Poids"=>"72"),
array("Nom"=>"Schneider","Prenom"=>"Knox","Email"=>"dolor@liberoca","Taille"=>"165","Poids"=>"65"),
array("Nom"=>"Cervantes","Prenom"=>"Pandora","Email"=>"metusVivamuseuismod@ligulaca","Taille"=>"179","Poids"=>"73"),
array("Nom"=>"Allen","Prenom"=>"Micah","Email"=>"dolorsitamet@nonhendreritorg","Taille"=>"176","Poids"=>"75"),
array("Nom"=>"Kirkland","Prenom"=>"Jolie","Email"=>"Fuscemollis@Nuncullamcorperorg","Taille"=>"154","Poids"=>"66"),
array("Nom"=>"Woodard","Prenom"=>"Quincy","Email"=>"idliberoDonec@Phasellusnullaca","Taille"=>"166","Poids"=>"69"),
array("Nom"=>"Peck","Prenom"=>"Octavius","Email"=>"lobortis@semperegestasurnaca","Taille"=>"167","Poids"=>"68"),
array("Nom"=>"Andrews","Prenom"=>"Wade","Email"=>"sedpede@mifelisorg","Taille"=>"158","Poids"=>"64"),
array("Nom"=>"Kennedy","Prenom"=>"Lydia","Email"=>"Vestibulumaccumsanneque@ipsumnuncidnet","Taille"=>"178","Poids"=>"67"),
array("Nom"=>"Velez","Prenom"=>"Erin","Email"=>"sagittisDuisgravida@nonduineccouk","Taille"=>"167","Poids"=>"66"),
array("Nom"=>"Hendrix","Prenom"=>"Sopoline","Email"=>"asollicitudin@etcouk","Taille"=>"173","Poids"=>"74"),
array("Nom"=>"Boyd","Prenom"=>"Neville","Email"=>"nuncidenim@vehiculaPellentesquetinciduntcom","Taille"=>"173","Poids"=>"75"),
array("Nom"=>"Rice","Prenom"=>"Lois","Email"=>"nonmassanon@Aeneanca","Taille"=>"166","Poids"=>"58"),
array("Nom"=>"Lloyd","Prenom"=>"Aline","Email"=>"dapibusgravida@utmolestieinedu","Taille"=>"145","Poids"=>"80")
);
?>

@ -0,0 +1,38 @@
<?php
include './include/data.inc.php';
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>tp1 - ex3</title>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
>
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<main>
<h2>Exercice 3 : IMC </h2>
<table>
<thead>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Email</th>
<th>Taille</th>
<th>Poids</th>
<th>IMC</th>
</tr>
</thead>
<tbody>
<!-- À compléter -->
</tbody>
</table>
</main>
</body>
</html>

@ -0,0 +1,7 @@
img{
width : 10rem;
margin:2rem;
}
.is-center{
text-align : center;
}

@ -0,0 +1,9 @@
<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<path d="m0,0h512v512h-512z"/>
<path d="m74.5,36h363a38.5,38.5 0 0,1 38.5,38.5v363a38.5,38.5 0 0,1 -38.5,38.5h-363a38.5,38.5 0 0,1 -38.5-38.5v-363a38.5,38.5 0 0,1 38.5-38.5" fill="#fff"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(0,-.71549,.71911,0,123.67678,212.03015)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,346.03015,254.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,346.03015,522.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,78.03015,522.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,78.03015,254.32322)"/>
</svg>

After

(image error) Size: 1020 B

@ -0,0 +1,8 @@
<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<path d="m0,0h512v512h-512z"/>
<path d="m74.5,36h363a38.5,38.5 0 0,1 38.5,38.5v363a38.5,38.5 0 0,1 -38.5,38.5h-363a38.5,38.5 0 0,1 -38.5-38.5v-363a38.5,38.5 0 0,1 38.5-38.5" fill="#fff"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,346.03015,254.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,346.03015,522.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,78.03015,522.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,78.03015,254.32322)"/>
</svg>

After

(image error) Size: 868 B

@ -0,0 +1,5 @@
<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<path d="m0,0h512v512h-512z"/>
<path d="m74.5,36h363a38.5,38.5 0 0,1 38.5,38.5v363a38.5,38.5 0 0,1 -38.5,38.5h-363a38.5,38.5 0 0,1 -38.5-38.5v-363a38.5,38.5 0 0,1 38.5-38.5" fill="#fff"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(0,-.71549,.71911,0,123.67678,212.03015)"/>
</svg>

After

(image error) Size: 410 B

@ -0,0 +1,10 @@
<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<path d="m0,0h512v512h-512z"/>
<path d="m74.5,36h363a38.5,38.5 0 0,1 38.5,38.5v363a38.5,38.5 0 0,1 -38.5,38.5h-363a38.5,38.5 0 0,1 -38.5-38.5v-363a38.5,38.5 0 0,1 38.5-38.5" fill="#fff"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(0,-.71549,.71911,0,257.67678,212.03015)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(0,-.71549,.71911,0,-10.32322,212.03015)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,346.03015,254.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,346.03015,522.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,78.03015,522.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,78.03015,254.32322)"/>
</svg>

After

(image error) Size: 1.1 KiB

@ -0,0 +1,7 @@
<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<path d="m0,0h512v512h-512z"/>
<path d="m74.5,36h363a38.5,38.5 0 0,1 38.5,38.5v363a38.5,38.5 0 0,1 -38.5,38.5h-363a38.5,38.5 0 0,1 -38.5-38.5v-363a38.5,38.5 0 0,1 38.5-38.5" fill="#fff"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(0,-.71549,.71911,0,123.67678,212.03015)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,346.03015,254.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,78.03015,522.32322)"/>
</svg>

After

(image error) Size: 715 B

@ -0,0 +1,6 @@
<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<path d="m0,0h512v512h-512z"/>
<path d="m74.5,36h363a38.5,38.5 0 0,1 38.5,38.5v363a38.5,38.5 0 0,1 -38.5,38.5h-363a38.5,38.5 0 0,1 -38.5-38.5v-363a38.5,38.5 0 0,1 38.5-38.5" fill="#fff"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,346.03015,254.32322)"/>
<path d="m8.428,184.011a69.882,69.5309 0 1,1 -139.7641,0 69.882,69.5309 0 1,1 139.7641,0z" transform="matrix(-.71549,0,0,-.71911,78.03015,522.32322)"/>
</svg>

After

(image error) Size: 563 B

Binary file not shown.

After

(image error) Size: 23 KiB

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>tp1 - ex4</title>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
>
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<main>
<h5><a href=""> Tirage aléatoire</a></h5>
<article class="is-center">
<img src='./img/dice-six-faces-five.svg'>
<img src='./img/dice-six-faces-one.svg'>
</article>
<h5>Somme = </h5>
</main>
</body>
</html>

@ -0,0 +1,5 @@
img{
height:15px;
vertical-align:middle;
margin:0;
}

@ -0,0 +1,29 @@
<?php
$favoris = [
"Moteurs de recherche" => [
[
"nom"=>"Google",
"url"=>"http://google.com",
"img"=>"https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/272px-Google_2015_logo.svg.png"
],
[
"nom"=>"Yahoo",
"url"=>"http://yahoo.com",
"img"=>"https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Yahoo%21_%282019%29.svg/200px-Yahoo%21_%282019%29.svg.png"
]
],
"Journaux" => [
[
"nom"=>"Le Monde",
"url"=>"http://lemonde.fr",
"img"=>"http://upload.wikimedia.org/wikipedia/commons/thumb/5/54/Le_monde_logo.svg/200px-Le_monde_logo.svg.png"
],
[
"nom"=>"L'equipe",
"url"=>"http://lequipe.fr",
"img"=>"http://upload.wikimedia.org/wikipedia/commons/3/32/L%27%C3%89quipe_wordmark.svg"
]
]
];
?>

@ -0,0 +1,27 @@
<?php
include './include/favoris.inc.php';
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>tp1 - ex4</title>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
>
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<main>
<h2>
Exercice 4 : Favoris
</h2>
<!-- À compléter -->
</main>
</body>
</html>

@ -0,0 +1,7 @@
<?php
function createPassword($n,$alphabet){
$length = strlen($alphabet);
$password = "";
return $password;
}
?>

@ -0,0 +1,35 @@
<?php
include './include/fonction.php';
$alphabet = "@#!*^&azertyuiopqsdfghjkklmwxcvbnAZERTYUIOPLMKJHGFDSQWXCVBN1234567890";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Exercice 5</title>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
>
</head>
<body>
<main>
<hgroup>
<h2>Exercice 5 : createPassword </h2>
<h3>
Test de la fonction createPassword
</h3>
</hgroup>
<article>
<ul>
<li><code><?php echo createPassword(5, $alphabet);?></code></li>
<li><code><?php echo createPassword(10,$alphabet);?></code></li>
<li><code><?php echo createPassword(15,$alphabet);?></code></li>
</ul>
</article>
</main>
</body>
</main>
</html>

118
R3.01/tp/tp2/README.md Normal file

@ -0,0 +1,118 @@
# TP 2 : Intéractions avec le client. Formulaires HTML et PHP.
> On utilisera autant que possible les fonctions
[filter\_input](http://php.net/manual/fr/function.filter-input.php) ou
[filter\_var](http://php.net/manual/fr/function.filter-var.php) qui
permettent de valider le type (ou nettoyer) des entrées d'un formulaire
(entre autre).
### Ex1.
Ecrire le script de traitement associé au formulaire (2 champs texte
pour le nom et prénom, quatre boutons radio pour choisir le système) qui
affiche les données saisies :
<div align="center">
<img src="./img/exo1.png">
<img src="./img/exo11.png">
</div>
Faites en sorte que la première lettre (et elle seule) du prénom et
du nom soit en en majuscule.
Vous pouvez utilisez les fonctions :
```php
string strtolower ( string $string );
string ucfirst ( string $str );
```
### Ex2.
Ecrire un (seul) script qui saisit dans un champs texte un entier et
qui affiche la table de multiplication correspondante lors de la
soumission.
<div align="center">
<img src="./img/exo2.png">
</div>
### Ex3.
Ecrire une petite calculatrice permettant d'effectuer des
opérations arithmétiques élémentaires (+,x,-,/) sur deux opérandes.
<div align="center">
<img src="./img/exo3.png">
</div>
1. Première version : affichez un formulaire permettant, dans
l'ordre, de saisir la première opérande, puis dans une liste
(`SELECT`) l'opération, enfin de saisir la deuxième opérande.
Associez à ce formulaire le script effectuant le calcul et
affichant le résultat.
2. Assurez-vous qu'on ne puisse pas diviser par 0.
3. Deuxième version : après un calcul, réaffichez le formulaire en
proposant comme valeur par défaut de la première opérande le
résultat du calcul précédent.
### Ex4.
Vous diposez du fichier html `quizz.html`. Pour chaque question, il
n'y a qu'une réponse exacte. On vous demande d'écrire le script
php de traitement des réponses qui affiche au joueur le résultat du
jeu :
<div align="center">
<img src="./img/exo4.png">
<img src="./img/exo41.png">
</div>
Regardez-bien comment est structuré le quizz (nom des variables,
valeurs transmises, etc ). Cela doit vous permettre d'écrire un
script php qui s'adaptera automatiquement si on rajoute ou on
enlève des questions au quizz.
Evidemment, il est très facile de tricher !
### Ex5.
Vous disposez du formulaire suivant :
<div align="center">
<img src="./img/exo5.png">
</div>
- Un champ texte permet de saisir un verbe du premier groupe à
conjuguer.
- Des cases à cocher permettent de choisir les temps de
conjugaisons.
Ecrire le script PHP qui receptionne les données **postées** par le
formulaire précédent, et qui affiche le verbe conjugué aux temps
choisis.
<div align="center">
<img src="./img/exo51.png">
</div>
<details>
<summary>Conseils</summary>
<div>
Pour extraire le radical, vous pouvez utiliser la
fonction <a href='http://fr2.php.net/manual/fr/function.substr.php'>substr</a>
```php
string substr ( string $string , int $start [, int $length ] );
```
Vous pouvez également stocker dans un tableau associatif les
terminaisons possibles, ainsi que les pronoms personnels.
```php
$terminaisons = array("present"=>array("e","es","e","ons","ez","ent"), ...
```
</div>
</details>

@ -0,0 +1,3 @@
form button{
float:right;
}

54
R3.01/tp/tp2/ex1/ex1.html Normal file

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
/>
<link rel="stylesheet" href="./css/style.css">
<title>Exercice 1</title>
</head>
<body>
<main>
<h3> Exercice 1</h3>
<form action="ex1.php" method="POST">
<fieldset>
<legend>Qui êtes-vous ?</legend>
<!-- Text input-->
<label>Nom
<input name="nom" placeholder="nom" type="text">
</label>
<!-- Text input-->
<label >Prénom
<input name="prenom" placeholder="prénom" type="text">
</label>
</fieldset>
<!-- Multiple Radios -->
<fieldset>
<legend>Système d'exploitation préféré</legend>
<label>
<input name="os" value="1" checked="checked" type="radio">
Linux
</label>
<label >
<input name="os" value="2" type="radio">
Windows
</label>
<label >
<input name="os" value="3" type="radio">
macOS
</label>
<label >
<input name="os" value="4" type="radio">
Android
</label>
</fieldset>
<!-- Button -->
<button type="submit">Envoyer</button>
</form>
</main>
</body>
</html>

26
R3.01/tp/tp2/ex1/ex1.php Normal file

@ -0,0 +1,26 @@
<?php
include 'include/controller.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="./css/style.css">
<meta charset="UTF-8" />
<title></title>
</head>
<body>
<main>
<ul>
<?php
echo "<li>$prenom $nom</li>";
echo "<li><i class='fa-brands $icon fa-2x'></i></li>";
?>
</ul>
</main>
</body>
</html>

@ -0,0 +1,2 @@
<?php
// TODO

@ -0,0 +1,4 @@
input[type="text"]{
display:inline;
width:auto;
}

@ -0,0 +1,2 @@
<?php
// TODO

@ -0,0 +1,23 @@
<?php
include 'include/controller.php';
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
/>
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<main>
<h4>Table de multiplication</h4>
<form method="GET">
<input type=number name="table" placeholder="table">
<button type="submit">ENVOYER</button>
</form>
</main>
</body>
</html>

@ -0,0 +1,34 @@
<?php
include 'include/controller.php';
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<title></title>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css"
/>
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<main class="container">
<h3>Calculatrice</h3>
<form method="POST">
<div class="grid">
<input placeholder="un nombre" type="number" step="any" name="op1" value ="" required>
<select name="operation" required>
<option value="+">+</option>
<option value="-">-</option>
<option value="x">x</option>
<option value="/">/</option>
</select>
<input placeholder="un nombre" type="number" step="any" name="op2" required>
<button type="submit" name="soumis"> Calculer</button>
</grid>
</form>
</main>
</body>
</html>

@ -0,0 +1,6 @@
input[type="text"],
select
{
display:inline-block;
width:auto;
}

@ -0,0 +1,2 @@
<?php
//TODO

@ -0,0 +1,4 @@
button{
float:right;
}

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
/>
<link rel="stylesheet" href="./css/style.css">
<meta charset="UTF-8" />
<title></title>
</head>
<body>
<main class="container">
<h3>Quizz</h3>
<form action="score.php" method="post">
<fieldset>
Quelle est la capitale de la France ?
<label class="radio">
<input type="radio" name="question1" value="faux" > Lyon
</label>
<label class="radio">
<input type="radio" name="question1" value="vrai"> Paris
</label>
<label class="radio">
<input type="radio" name="question1" value="faux"> Marseille
</label>
</fieldset>
<fieldset>
Quelle est le nombre suivant de la suite 1,2,4,8 ?
<label class="radio">
<input type="radio" name="question2" value="vrai" > 16
</label>
<label class="radio">
<input type="radio" name="question2" value="faux"> 32
</label>
</fieldset>
<fieldset>
La bataille de Marignan a eu lieu en
<label class="radio">
<input type="radio" name="question3" value="faux" > 1492
</label>
<label class="radio">
<input type="radio" name="question3" value="vrai"> 1515
</label>
<label class="radio">
<input type="radio" name="question3" value="faux"> 1789
</label>
</fieldset>
<button type="submit">Envoyer</button>
</fieldset>
<input type="hidden" value="3" name="nbq">
</form>
</main>
</body>
</html>

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="./css/style.css">
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
/>
<title></title>
</head>
<body>
<main>
<h4>Réponses</h4>
</div>
</main>
</body>
</html>

@ -0,0 +1,23 @@
<?php
include 'include/controller.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
/>
<link rel="stylesheet" href="./css/style.css">
<title></title>
</head>
<body>
<main>
</main>
</body>
</html>

@ -0,0 +1,4 @@
input[type="text"]{
width:auto;
}

31
R3.01/tp/tp2/ex5/ex5.html Normal file

@ -0,0 +1,31 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
/>
</head>
<body>
<main>
<h3>Conjugaison</h3>
<form method="post" action="conjuguer.php">
<fieldset>
<label>Verbe du premier groupe<br>
<input type=text name="verbe" required>
</label>
Temps
<label class="checkbox"><input type=checkbox name="temps[]" value="present"> Présent </label>
<label class="checkbox"><input type=checkbox name="temps[]" value="futur"> Futur </label>
<label class="checkbox"><input type=checkbox name="temps[]" value="imparfait"> Imparfait </label>
</fieldset>
<button type="submit" name="accepter">Envoyer</button>
</form>
</main>
</body>
</html>

@ -0,0 +1,12 @@
<?php
$terminaisons = array(
"present"=>array("e","es","e","ons","ez","ent"),
"futur"=>array("erai","eras","era","erons","erez","eront"),
"imparfait"=>array("ais","ais","ait","ions","iez","aient")
);
$pronoms=array("je","tu","il","nous","vous","ils");
$verbe = filter_input(INPUT_POST,"verbe",FILTER_SANITIZE_STRING);
$radical = substr($verbe,0,strlen($verbe)-2);

BIN
R3.01/tp/tp2/img/exo1.png Normal file

Binary file not shown.

After

(image error) Size: 26 KiB

BIN
R3.01/tp/tp2/img/exo11.png Normal file

Binary file not shown.

After

(image error) Size: 4.2 KiB

BIN
R3.01/tp/tp2/img/exo2.png Normal file

Binary file not shown.

After

(image error) Size: 25 KiB

BIN
R3.01/tp/tp2/img/exo3.png Normal file

Binary file not shown.

After

(image error) Size: 6.8 KiB

BIN
R3.01/tp/tp2/img/exo4.png Normal file

Binary file not shown.

After

(image error) Size: 30 KiB

BIN
R3.01/tp/tp2/img/exo41.png Normal file

Binary file not shown.

After

(image error) Size: 18 KiB

Some files were not shown because too many files have changed in this diff Show More