Préambule
Ce site est fait pour vous fournir une série d'exercices qui suivent la progression du cours.
Au fur et à mesure de l'avance dans le cours votre enseignant va libérer les solutions des exercices.
Pour vous aider vous avez votre support de cours. Les liens suivants peuvent vous aider :
Pour tous les exercices ci-dessous, on suppose la création d'une page HTML 5 valide, c'est-à-dire, une page HTML contenant au minimum les balises suivantes:
<!DOCTYPE html >
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="DCTERMS.creator" content="Prénom Nom" />
<meta name="DCTERMS.subject" content="Thème" />
<meta name="DCTERMS.created" content="aaaa-mm-jj" />
<title>Exercices X</title>
</head>
<body>
...
</body>
</html>
Exercice 1-10
Ce qui est exercé:
L'absence de types dans les déclarations de variables
PHP au contraire du langage C#, ne comporte pas de types de variable. L'exercice suivant va vous aider à vous rendre compte de cette particularité.
Pour chacune des expressions ci-dessous, on demande le contenu de la variable ainsi que son type
Remplissez d'abord le tableau à la main puis écrivez un script pour vérifier vos solutions.
Aide
gettype($str);
| Instruction | Contenu | Type |
| $str = '12' | ||
| $nbr = (int) $str | ||
| $nbr += '1' | ||
| $nbr = $nbr . '1' | ||
| $str .= '0' |
Exercice 1-20
Ce qui est exercé:
Différence entre un retour à la ligne dans le code source
(celui reçu par le navigateur) et dans le code html
(celui interprété par ce même navigateur), boucle.
Dans une seule balise de paragraphe (<p>),
itérez 20x l'instruction suivante
echo 'Bonjour<br />'
puis dans une autre balise de paragraphe (<p>),
itérez 20x l'instruction suivante
echo 'Bonjour' , PHP_EOL
Observez le résultat affiché et le code source. Que constatez-vous ?
Exercice 1-30
Ce qui est exercé:
boucles et tests.
On vous demande d'afficher le BEUZEU pour les valeurs de 1 à100. Il faut dire "BEUZEU" pour tous les nombres contenant le chiffre 7 (17, 27, 37, 47 etc...) et pour tous ses multiples (14, 21, 28, etc...).
Aide :
Un multiple se détecte avec modulo.
Contient fera appel à une fonction sur les string
Exercice 1-40
Ce qui est exercé:
boucles imbriquées et table HTML avec CSS.
On vous demande d'afficher une page HTML générée en PHP qui affiche une table de multiplication sous forme d'une matrice.
Contraintes :
La première ligne et la dernière ligne seront des lignes de titre.
La première colonne sera un titre de ligne
Exercice 1-50
Ce qui est exercé:
Boucle, tableau HTML, conversion ASCII/int
Aide
int ord (string string)
string chr (int ascii)
Exemple
print ord ("1")
Affiche 49
print chr (49) Affiche 1
Dans un tableau HTML, afficher la table ASCII allant de 48 à 123
| Int | String | Int | String |
| 48 | 0 | 49 | 1 |
| 50 | 2 | 51 | 3 |
| ... | ... | ... | ... |
| 120 | x | 121 | y |
| 122 | z | 123 | { |
Exercice 2-10
Ce qui est exercé:
Formulaire simple
Créez le formulaire ci-dessous en respectant les consignes suivantes :
Utilisez la méthode POST pour l'envoi des données et envoyez votre formulaire au script php suivant : http://ict133.cpln.ch/2-10/traitement_post.php
Exercice 2-20
Ce qui est exercé:
Récupération de données de formulaires
Ecrivez le script PHP qui récupère et renvoie les données d'un formulaire utilsant la méthode POST pour l'envoi des données.
L'affichage comportera le nom et la valeur de chaque variable.
Testez votre script en utilisant le formulaire créé à l'exercice précédent. Modifiez simplement le chemin et le nom du script appelé lors de l'envoi du formulaire.
Exercice 3-10
Ce qui est exercé:
Utilisation d'un nombre aléatoire, concaténation de chaîne, création d'un
lien dynamique (le lien change à chaque fois)
Aide
$nb_aleatoire = rand (1, 3);
Créez un répertoire "images" à la racine de votre site. Placez à l'intérieur de ce répertoire 3 images de votre choix. Ensuite, créez une page PHP qui affiche à chaque rafraîchissement une des 3 images de manière aléatoire.
Exercice 3-20
Ce qui est exercé:
Utilisation de tableaux et de fonctions liées aux dates
Aide
$jours_en_francais
= array (
'lundi'
,
'mardi'
,
'mercredi'
,
'jeudi'
,
'vendredi'
,
'samedi'
,
'dimanche'
);
echo 'Monday en français: ',$jours_en_francais[0];
La fonction date en PHP permet l'affichage de la date et de l'heure du serveur sur lequel le module PHP est installé. Ces informations sont fournies en anglais.
Ecrivez le script PHP permettant l'affichage de la date en français. Pour la traduction, utilisez des tableaux (array) contenant les noms des jours en français.
Exercice 3-30
Ce qui est exercé:
Création d'une fonction personnelle
Créez une fonction qui arrondit un prix aux n centimes.
Exemple 1: 4.274 arrondi aux n=0.05 centimes retournera 4.25
Exemple 2: 4.274 arrondi aux n=0,1 centimes retournera 4.3
Prototype de la fonction
function arrondi ( $nbr, $n )
Formule à appliquer dans votre fonction :

Exercice 3-40
Ce qui est exercé :
Les chaînes de caractères.
Ecrire un script qui découpe une chaîne de caractères comportant le nom d'un fichier en détaillant :
Exercice 4-10
Ce qui est exercé:
Ecriture dans un fichier texte sur le serveur
Réalisez un script qui écrit la phrase "Toto aime le chocolat chaud" dans un fichier texte nommé [toto.txt]. Si le fichier texte existe déjà, alors on le remplace. En pratique, cela signifie qu'il n'y aura qu'un seul fichier texte contenant uniquement 1x la phrase "Toto aime le chocolat chaud".
Exercice 4-20
Ce qui est exercé:
Manipulation de chaînes de caractères, affichage dynamique d'images,
lecture/écriture dans un fichier texte
Réalisez un compteur de page qui indique le nombre de consultations de la page. Le nombre de consultations sera sauvé dans un fichier texte. L'affichage se fera à l'aide des images ci-dessous:
L'affichage se fera toujours sur 5 chiffres. Par exemple, la valeur de compteur 1482 sera affichée ainsi:
Une fois arrivé à 99999, le compteur recommencera à 00000
Aide :
Pour mettre le compteur sur 5 digits :
$str_compteur = sprintf('%05s', $compteur);
Découpez votre programmes en fonctions/procédures.
Exercice 4-30
Ce qui est exercé:
Parcours de répertoires
Ecrivez une page qui affiche comme hyperliens les répertoire (uniquement) se trouvant dans le répertoire courant.
Aide
opendir($str), readdir($handle), is_dir($entry)
Exercice 4-40
Ce qui est exercé:
Parcours de fichiers
Ecrivez une page qui affiche toutes les images (gif, jpg et png) se
trouvant dans le répertoire <images>.
Elle se présenteront 3 par ligne, doivent avoir toutes la même hauteur et seront entourées d'une bordure.
Aide
pathinfo(string $path ,int $options)
Exercice 4-50
Ce qui est exercé:
Lecture de fichier, manipulation de chaînes de caractères
Les sites tel que www.wikipedia.org ont mis en place une syntaxe appelée "syntaxe wiki". Celle-ci permet de formater le texte d'un article en plaçant des symboles particulier à l'intérieur même du contenu. Nous allons utiliser ce même principe dans cet exercice.
Dans un fichier texte nommé [texte.txt], délimitez les mots que vous aimeriez voir en gras avec des *. Réalisez ensuite un script qui lit le contenu du fichier texte et qui affiche en gras tous les mots délimités par les * dans le navigateur. Profitez de l'occasion pour remplacer les fin de ligne par des balises.
| Texte contenu dans le fichier texte.txt | Texte affiché par le navigateur. Les * ont été remplacées par des balises bold |
| La *Cigale*, ayant chanté Tout l'été, Se trouva fort dépourvue Quand la bise fut venue : Pas un seul petit morceau De mouche ou de vermisseau. Elle alla crier famine Chez la *Fourmi* sa voisine, La priant de lui prêter Quelque grain pour subsister Jusqu'à la saison nouvelle. "Je vous paierai", lui dit-elle, Avant l'*Oût*, foi d'animal, Intérêt et principal... |
La Cigale, ayant chanté Tout l'été, Se trouva fort dépourvue Quand la bise fut venue : Pas un seul petit morceau De mouche ou de vermisseau. Elle alla crier famine Chez la Fourmi sa voisine, La priant de lui prêter Quelque grain pour subsister Jusqu'à la saison nouvelle. Je vous paierai, lui dit-elle, Avant l'Oût, foi d'animal, Intérêt et principal. |
Exercice 5-10
Ce qui est exercé:
Formulaire avancé
Complétez votre formulaire "curriculum vitae" en respectant les consignes suivantes :
Utilisez la méthode GET pour l'envoi des données.
Créez le script PHP qui retournera uniquement les valeurs correspondant au bouton utilisé pour l'envoi. Seules les variables correspondant aux champs saisis seront affichées
Aide
Fonctions isset et empty
Le formulaire à créer :
Résultat lors du clic sur le bouton "Envoyer coordonnées" :
Vous remarquerez que seules les données saisies de la zone Coordonnées sont affichées.
Exercice 5-20
Ce qui est exercé:
Validation de formulaire et rémanence
Créez un formulaire qui demande à l'utilisateur son nom et son prénom. Lorsque l'utilisateur clique sur le bouton "Envoyer", le script vérifie les saisies de l'utilisateur.
La saisie est considérée valide si le nom ET le prénom sont présents. Si l'une des deux valeurs est manquante, le formulaire sera réaffiché avec, à côté de la ou des saisie(s) manquante(s), un message en rouge invitant l'utilisateur à entrer une valeur.
Le formulaire sera rémanent, c'est-à-dire que la valeur déjà saisie se réaffiche.
Une fois les deux valeurs saisies, le formulaire disparaît au profit d'un message affichant le nom et le prénom sous la forme Bonjour prenom nom
Exercice 6-10
Ce qui est exercé:
Mécanisme des sessions
Dites où est stocké physiquement sur le serveur, la valeur de compteur du code ci-dessous:
<?php
session_start ();
$_SESSION['compteur'] = 12;
?>
Exercice 6-20
ce qui est exercé:
Validité des sessions
À quel moment un fichier de session est-il créé
?.................................................................
À quel moment ce même fichier de session est-il caduc
?.................................................................
Exercice 6-30
ce qui est exercé:
Sauvegarde de valeurs dans une session
Réalisez le "site" ci-dessous:

La page d'accueil [accueil.php] initialise une session dans laquelle elle sauvegarde la
date et l'heure d'accès.
Sur chacune des deux autres pages, on affiche les valeurs précédemment sauvées.
Exercice 6-40
ce qui est exercé:
Sécurisation d'accès à un site par les sessions
Sécurisez l'accès à votre site en demandant à l'utilisateur un couple login/pass.

Aide
header('Location: mapage.php');
Exercice 7-10
Ce qui est exercé:
Sécurisation d'accès (simple) à un site par login et mot de passe, lecture de fichier
texte, manipulation de chaînes de caractères
Créez une page de connexion à un site contenant un formulaire de saisie
du login ainsi que du mot de passe.
Lorsque l'utilisateur clique sur le bouton "Login", le script vérifie le couple
[login/passe] par rapport à un fichier texte contenant toutes les personnes
ayant le droit d'entrer dans le site.
Option:
Le test du couple login/passe se fera comme dans la réalité, c'est-à-dire:
case-insensitive sur le login
case-sensitive sur le mot de passe
Le fichier texte contenant les couples [login/passe] se présentera de la manière suivante ( ® = tabulation):
shadow.txt
| user1®pass1 user2®pass2 user3®pass3 |
