Logo CPLN-ET Logo ict

Module ict-133

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>

Valid HTML 5 Strict

Exercice 1-10

top   exec   source

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

top   exec   source

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

top   exec   source

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

top   exec   

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

top   exec   

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

top   exec   

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

Image

Exercice 2-20

top   exec   

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.

Exemple de résultat

Image

Exercice 3-10

top   exec   

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

top   exec   

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

top   exec   

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 :

Formule pour arrondir

Exercice 3-40

top   exec   

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

top   exec   

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

top   exec   

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:

image image image image image image image image image image

L'affichage se fera toujours sur 5 chiffres. Par exemple, la valeur de compteur 1482 sera affichée ainsi:

image image image image image

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

top   exec   

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

top   exec   

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

top   exec   

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

top   exec   

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 :

Image

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.

Image

Exercice 5-20

top   exec   

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

top   exec   

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

top   exec   

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

top   exec   

ce qui est exercé:
Sauvegarde de valeurs dans une session

Réalisez le "site" ci-dessous:

Image

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

top   exec   

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.

Image

Aide

header('Location: mapage.php');

Exercice 7-10

top   exec   

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

Image