Vous êtes sur la page 1sur 40

Cours d’Informatique

Classes de Terminale TI
Module 1 : Programmation

Chapitre 1 : Programmation en HTML

Leçon 1 : Les formulaires


Compétences :

- Créer un formulaire
Situation problème : …

1- Introduction aux formulaires


Les formulaires sont certainement le moyen le plus simple et le plus utilisé pour recueillir des données à
propos de vos utilisateurs. En cela, ils sont essentiels et incontournables.
Cependant, nous touchons là aux limites du HTLM. En effet, si l’on peut créer des formulaires en HTML, on
ne peut pas en revanche stocker ni utiliser les données du formulaire avec ce langage. Pour cela, nous devrons
utiliser d’autres langages comme le PhP et le MySQL par exemple.
2- Créer le squelette de notre formulaire
Pour créer notre formulaire, nous allons devoir tout d’abord utiliser l’élément form avec deux attributs :
method et action.
- L’attribut action, tout d’abord, va servir à indiquer où les informations recueillies dans le formulaire
doivent être envoyées pour être traitées. Ce sera généralement vers une page PhP.
- L’attribut method va lui spécifier de quelle manière on va envoyer ces données. On peut choisir entre
deux valeurs : GET et POST. En utilisant la valeur get, les données vont transiter via l’URL de la page
ce qui ne sera pas le cas si l’on utilise la valeur post. Il faut savoir que la valeur get est assez limitée
par rapport à post.
En effet, avec get, on est limité dans le nombre d’informations que l’on peut envoyer et surtout les informations
sont visibles lors de l’envoi, ce qui est problématique si l’on envoie un mot de passe par exemple. C’est
pourquoi je vous conseille de plutôt utiliser la valeur post, qui ne possède pas ces inconvénients.
3- Créer un formulaire simple
Nous allons commencer par créer un formulaire très simple, demandant simplement un pseudo et un mot de
passe à l’utilisateur. Pour capturer des données textuelles simples comme un pseudo par exemple, on utilise
soit l’élément input (pour des textes courts), soit l’élément textarea (pour des textes longs). Dans notre cas,
nous allons utiliser l’élément input. Cet élément prend forcément un attribut « type ». La valeur de l’attribut
type correspond au type de données demandées. On a le choix entre text, password, date, email, tel, number,
time, color et url. Toutes ces valeurs ont été créées pour des raisons de sémantique. A noter également que
l’affichage par défaut de chaque champ de votre formulaire pourra être légèrement différent selon la valeur
choisie
pour l’attribut type.
NB : Il faut également préciser un deuxième attribut à l’élément input qui est l’attribut name. On lui
donnera la valeur que l’on souhaite en essayant de rester cohérent. Cet attribut va nous être très utile pour
traiter les données de notre formulaire.
A noter que l’élément input est représenté sous forme d’une balise orpheline.
Il va maintenant falloir indiquer à votre visiteur ce qu’il doit renseigner comme information dans chaque
champ. C’est le rôle du label, qu’on va donc ajouter juste avant l’input.
4- Finaliser et envoyer notre formulaire
Nous avons vu l’essentiel de ce qu’il vous fallait savoir pour créer des formulaires en HTML. Cependant,
sachez qu’il existe encore énormément de petites choses à propos des formulaires dont je n’ai pas parlé afin
de ne pas surcharger le cours. N’hésitez donc pas à aller vous renseigner ! Parmi ces petites choses,

Cours Informatique Terminale TI 1


justement, j’aimerais vous parler encore des attributs placeholder, required et des éléments fieldset et
legend.
- L’attribut placeholder,
Cet attribut tout d’abord, sert à donner d’avantage d’indications sur vos champs à vos visiteurs. Il vous sert à
donner un exemple de remplissage de champ.
- L’attribut required
Pour rendre une question ou un champ de votre formulaire obligatoire, vous devrez utiliser l’attribut
required.
- Le bouton d’envoi
Pour créer le bouton d’envoi, on va tout simplement utiliser un input de type submit avec un attribut value.

Leçon 2 : les tableaux


Compétences :
- Créer un tableau
Situation problème : ….

1- Création d’un tableau simple


Les tableaux en HTML ne servent et ne doivent être utilisés que pour organiser des données. Pour créer un
tableau, il va nous falloir utiliser au minimum trois éléments : les éléments table, tr et td.
L’élément table définit le tableau en soi. A l’intérieur de cet élément table, on va utiliser l’élément tr (table
raw) pour ajouter des lignes à notre tableau. Tout tableau en HTML sera construit ligne par ligne. Enfin, on
utilise l’élément td (table data) pour ajouter des cellules dans nos lignes. Si l’on insert plusieurs éléments td
à l’intérieur d’un élément tr, des colonnes vont se créer automatiquement à l’intérieur de notre ligne.
Voyons un premier exemple :

2- Mise en forme d’un tableau


Tout d’abord, nous allons commencer par ajouter des bordures à notre tableau. Pour cela, nous allons utiliser
les propriété CSS border, et border-collapse. On connaît déjà la propriété border qui va nous permettre de
créer des bordures autour de chaque cellule de notre tableau. Ensuite, pour « coller » ces différentes bordures
entre elles, nous allons utiliser la propriété border-collapse. Cette propriété accepte trois valeurs : collapse
(les bordures des cellules se collent), separate (valeur par défaut) et inherit. Cela ressemble déjà beaucoup
plus à un tableau !

Cours Informatique Terminale TI 2


3- Combiner des cellules
Maintenant, apprenons à combiner des cellules. Pour combiner des cellules, on va utiliser les attributs
HTML colspan et rowspan.
L’attribut colspan va nous permettre de combiner des cellules appartenant à différentes colonnes dans une
même colonne tandis que l’attribut rowspan va nous permettre de combiner des cellules provenant de
différentes lignes.

Cours Informatique Terminale TI 3


Chapitre 2 : Programmation
JavaScript
Leçon 3&4 : Contrôle des saisies.
Compétences :
- Contrôler la saisie des données dans une page web en utilisant JavaScript
Situation problème :
Votre petit frère vous rapporte les différentes remarques qu’il a effectué pendant qu’il créait son compte de
messagerie électronique. Il vous dit ceci :
- Je n’ai pas pu enregistrer mon inscription avant d’avoir rempli tous les champs
- J’ai été averti automatiquement quand mon mot de passe était différent dans les deux champs
concernant le mot de passe
Explique-lui pourquoi et dites-lui ce qui a rendu cella possible et comment on peut le faire ?

Introduction :
Le langage JavaScript permet de gérer les formulaires définis dans une page web afin de renforcer
l'interactivité de cette page. Découvrons ensemble comment faire.
I- Rappels sur les formulaires
Les formulaires enrichissent les pages web en permettant à l'utilisateur de saisir des informations sous
différentes formes : zone de texte, cases à cocher, listes déroulantes, etc. À l'intérieur d'une page web, un
formulaire est défini sous la forme d'une balise HTML<form> contenant différents champs de saisie :
balises<input>,<select> ou encore<textarea>.
Si vous avez besoin d'une petite piqûre de rappel au sujet des formulaires, relisez ce chapitre du cours
HTML/CSS.
Classiquement, les données saisies par l'utilisateur dans un formulaire sont ensuite envoyées via le réseau à
un serveur web qui va les traiter et renvoyer une réponse adaptée au navigateur client sous la forme d'une
nouvelle page web. Pour réaliser cette tâche, un serveur web emploie une technologie adaptée, comme par
exemple le langage PHP.
II- Gestion des formulaires avec JavaScript
Grâce à JavaScript, nous allons pouvoir manipuler le formulaire et ses données directement côté navigateur
client, avant (éventuellement) d'envoyer ces données vers un serveur externe. Ainsi, on pourra avertir
immédiatement l'utilisateur en cas de saisie erronée, ou bien lui proposer une liste de suggestions au fur et à
mesure de sa frappe, et bien d'autres choses encore.
Plutôt alléchant, non ? Allez, au travail pour découvrir tout ça !
1- Le formulaire d'exemple
Nous allons partir d'un formulaire assez classique permettant à l'utilisateur de s'inscrire à un service en ligne.
Ce formulaire contient plusieurs types de zones de saisie : texte, case à cocher, boutons radio, liste
déroulante, ainsi que des boutons "Envoyer" et "Annuler". Nous allons découvrir successivement comment
gérer ces éléments avec JavaScript.
Vous aurez peut-être remarqué que la balise<form> ne contient pas les habituels attributs action et method.
Ces attributs permettent de définir la ressource demandée au serveur et le type de requête utilisé pour cette
demande. Puisque notre formulaire sera géré uniquement côté client avec JavaScript, ils sont superflus ici.

Cours Informatique Terminale TI 4


<!doctype html> <br>
<html> <input type="radio" name="abonnement" id="abonews"
<head> value="abonews">
<meta charset="utf-8"> <label for="abonews">M'abonner uniquement à la
<title>Manipulation des formulaires</title> newsletter</label>
</head> <br>
<body> <input type="radio" name="abonnement" id="aborien"
<form> value="aborien" checked>
<h1>Formulaire d'inscription</h1> <label for="aborien">Ne pas m'abonner</label>
<p> <br>
<label for="pseudo">Pseudo</label> : </p>
<input type="text" name="pseudo" id="pseudo" required> <p>
<span id="aidePseudo"></span> <label for="nationalite">Nationalité :</label>
</p> <select name="nationalite" id="nationalite">
<p> <option value="FR" selected>Française</option>
<label for="mdp">Mot de passe</label> : <option value="BE">Belge</option>
<input type="password" name="mdp" id="mdp" required> <option value="SUI">Suisse</option>
<span id="aideMdp"></span> <option value="XX">Autre</option>
</p> </select>
<p> </p>
<label for="courriel">Courriel</label> : <input type="submit" value="Envoyer">
<input type="email" name="courriel" id="courriel" required <input type="reset" value="Annuler">
placeholder="utilisateur@domaine.fr"> </form>
<span id="aideCourriel"></span> <script src="../js/cours.js"></script>
</p> </body>
<p> </html>
<input type="checkbox" name="confirmation" id="confirmation">
<label for="confirmation">M'envoyer un courriel de confirmation</label>
</p>
<p>
<input type="radio" name="abonnement" id="abonewspromo"
value="abonewspromo">
<label for="abonewspromo">M'abonner à la newsletter et aux
promotions</label>

2- Les zones de texte


a- Accès à la valeur saisie
Une zone de texte permet à l'utilisateur de saisir du texte sur une ou plusieurs lignes. Une zone mono ligne
correspond à la balise HTML<input type="text">. Une zone multi ligne est définie grâce à la
balise<textarea>.
Voici l'extrait du formulaire précédent qui permet de créer la zone de saisie du pseudo.

<label for="pseudo">Pseudo</label> :
<input type="text" name="pseudo" id="pseudo" required>
<span id="aidePseudo"></span>

En JavaScript, on accède à la valeur d'une zone de texte en utilisant la propriété value de l'élément du DOM
correspond. En donnant une nouvelle valeur à cette propriété, on modifie la valeur affichée dans la zone de
texte.
L'exemple suivant donne à la zone de saisie identifiée par "pseudo" la valeur "MonPseudo".

var pseudoElt = document.getElementById("pseudo");


pseudoElt.value = "MonPseudo";

Cours Informatique Terminale TI 5


Gestion du focus
Lorsqu'une zone de texte est la cible de saisie, on dit que cette zone possède le focus. L'utilisateur d'un formulaire qui clique sur une zone
de saisie pour y taper une information déclenche l'apparition d'un événement de type focus. Inversement, le changement de cible de saisie
provoque l'apparition d'un événement de type blur sur l'ancienne zone qui avait le focus.
On peut utiliser ces événements pour afficher à l'utilisateur une aide contextuelle associée à la zone de saisie courante, comme dans
l'exemple suivant.

// Affichage d'un message contextuel pour la saisie du pseudo


pseudoElt.addEventListener("focus", function () {
document.getElementById("aidePseudo").textContent = "Entrez
votre pseudo";
});
// Suppression du message contextuel pour la saisie du pseudo
pseudoElt.addEventListener("blur", function (e) {
document.getElementById("aidePseudo").textContent = "";
});

En cliquant dans la zone de saisie du pseudo, vous obtenez l'affichage d'un message informatif dans la balise <span> prévue à cet effet et
initialement vide.
Depuis le code JavaScript, on peut modifier la cible de saisie en appelant les méthodes focus (pour donner le focus) et blur (pour l'enlever)
sur un élément du DOM.

// Focus sur la zone de saisie du pseudo


pseudoElt.focus();

Le fonctionnement des zones de texte multi lignes (balises<textarea>) est similaire à celui des balises<input>.
La vérification des données saisies dans une zone de texte est abordée plus loin dans ce chapitre.
Les éléments d'options
Ces éléments permettent à l'utilisateur de faire un choix parmi plusieurs possibilités. Ils ont en commun de déclencher un événement de
type change lorsque l'utilisateur modifie son choix.
Cases à cocher
On définit une case à cocher dans un formulaire avec la balise<input type="checkbox">.
Voici l'extrait du formulaire initial qui permet de demander à l'utilisateur s'il souhaite ou non obtenir une confirmation de son inscription.

<input type="checkbox" name="confirmation" id="confirmation">


<label for="confirmation">M'envoyer un courriel de
confirmation</label>

Lorsque la case change de valeur, l'objetEvent associé à l'événement dispose d'une propriété booléenne checked qui indique le nouvel état
de la case (cochée/décochée).
L'exemple de code ci-dessous gère les événements change sur la case à cocher pour afficher dans la console le choix effectué lorsque
l'utilisateur clique dans la case ou sur le libellé associé.

// Affichage de la demande de confirmation d'inscription


document.getElementById("confirmation").addEventListener("change",
function (e) {

Cours Informatique Terminale TI 6


console.log("Demande de confirmation : " + e.target.checked);
});

b- Boutons radio
Un groupe de boutons radio permet à l'utilisateur de faire un seul choix parmi plusieurs possibilités. On crée
ces boutons avec des balises <input type="radio"> possédant le même attribut name et des attributs value
différents.
Voici l'extrait du formulaire initial qui crée trois boutons radio permettant de choisir un type d'abonnement.
<input type="radio" name="abonnement" id="abonewspromo"
value="abonewspromo">
<label for="abonewspromo">M'abonner à la newsletter et aux
promotions</label>
<br>
<input type="radio" name="abonnement" id="abonews" value="abonews">
<label for="abonews">M'abonner uniquement à la newsletter</label>
<br>
<input type="radio" name="abonnement" id="aborien" value="aborien"
checked>
<label for="aborien">Ne pas m'abonner</label>
<br>

L'exemple de code suivant ajoute le même gestionnaire pour les événements de type change sur chacun des
boutons radio, afin d'afficher dans la console le type d'événement choisi.

// Affichage du type d'abonnement choisi


var aboElts = document.getElementsByName("abonnement");
for (var i = 0; i < aboElts.length; i++) {
aboElts[i].addEventListener("change", function (e) {
console.log("Formule d'abonnement choisie : " +
e.target.value);
});
}

Lors d'un changement de valeur d'un groupe de bouton radio, la propriétée.target.value de l'événement
change contient la valeur de l'attribut value de la nouvelle balise<input> sélectionnée.

c- Listes déroulantes
On construit une liste déroulante au moyen d'une balise<select> dans laquelle on ajoute une
balise<option> par choix possible dans la liste.
Voici l'extrait du formulaire initial qui crée une liste déroulante contenant trois nationalités.
<label for="nationalite">Nationalité :</label>
<select name="nationalite" id="nationalite">
<option value="FR" selected>Française</option>
<option value="BE">Belge</option>
<option value="SUI">Suisse</option>
<option value="XX">Autre</option>
</select>

Cours Informatique Terminale TI 7


L'exemple de code suivant exploite les événements de type change déclenchés sur la liste déroulante pour
afficher le nouveau choix (attribut value de la balise<option>associée au choix).
// Affichage du code de nationalité choisi
document.getElementById("nationalite").addEventListener("change",
function (e) {
console.log("Code de nationalité : " + e.target.value);
});

Comme pour les boutons radio, la propriétée.target.value de l'événement change contient la valeur de
l'attribut value de la balise<option> associé au nouveau choix, et non pas le texte affiché dans la liste
déroulante.

Chapitre 3 : Les Serveurs Web


Leçon 5 : Configuration d’un serveur web
Compétences :
- Citer quelques exemples de serveurs web ;
- Citer quelques exemples d’environnements intégrés de développement web (EasyPHP, WampServer, XAMPP, LAMP) ;
- Décrire les éléments constitutifs d’un environnement intégré de développement web (serveur web, serveur de données, préprocesseur).
Situation Problème :
Dans un restaurant, lorsqu’un client arrive, un serveur s’approche et le salut afin de créer un climat
d’amabilité entre eux ; ensuite le client passe sa commande comme suit :
- Pourrais-je avoir du poisson à la braise avec des frits de plantain ?
- Si cela est possible, le serveur lui répondra “sans problème, je vous l’apporte dans un instant”.
- Le serveur récupère la commande et va rencontrer le magasinier ;
- Le magasinier prend la commande et identifie l’ensemble des ingrédients nécessaires pour la
confection du plat.
- Ensuite, le magasinier sélectionne ces ingrédients et les retourne en cuisine où la préparation du plat
sera enfin effectuée ;
- Le serveur va enfin servir ce plat au client.
Au cas contraire le serveur lui répond “désolé, ce repas n’est pas disponible”. D’après vous :
a. Pourquoi, celui qui passe la commande est-il appelé client ?
b. Pourquoi celui qui répond à la commande est-il appelé serveur ?
c. Quel rôle joue le serveur ?
d. Qui est chargé de sélectionner les ingrédients nécessaires pour la confection du plat ?

INTRODUCTION
Pour échanger des informations sur le net, un utilisateur a besoin d’effectuer des demandes sur une machine
serveur, et grâce aux protocoles qui régissent les règles de communication sur internet, cela est possible. Mais
avant tout échange, il faudrait au préalable avoir installé un serveur de données dans sa machine.
I- DEFINITION ET ROLE D’UN SERVEUR WEB
1- Définition
Un serveur web ou serveur HTTP est un logiciel permettant de rendre accessible les pages web d’un site.
2- Rôle
Un serveur web ou serveur HTTP est un logiciel permettant de rendre accessible les pages web d’un site.
Quand un utilisateur fait une demande (requête), le serveur web traite la demande et renvoie le résultat à
l’utilisateur.
Quelques Exemples de serveur web :
• Apache HTTP Server de l’Apache Software Foundation,
• Internet Information Services (IIS) de Microsoft,

Cours Informatique Terminale TI 8


• Oracle Java System Web Server de Oracle,
• Zeus Web Server de Zeus Technology ;
• Lighttpd de Jan Kneschke ;
• Nginx d’Igor Sysoev ;
• Cherokee de Alvaro López Ortega.
II- ENVIRONNEMENT DE DÉVELOPPEMENT WEB
Un environnement de développement Web est une base de code des fonctions principales utilisées dans une
application Web. L'environnement de développement Web gère les fonctions d'application Web de base
permettant ainsi aux développeurs de se concentrer sur leurs exigences spécifiques et de développer leurs
applications Web plus rapidement. Une application Web peut souvent être créée avec peu ou pas d'expérience.
Selon que l'on crée un site statique ou un site dynamique, on a besoin de logiciels différents. En fait, faire un
site dynamique nécessite malheureusement pour nous quelques logiciels supplémentaires !
Avec un site statique
Les webmasters qui créent des sites statiques avec HTML et CSS ont de la chance, ils ont en général déjà tous
les programmes dont ils ont besoin :
• Un éditeur de texte : en théorie, un programme tel que le bloc-notes livré avec Windows suffit, bien
qu'il soit recommandé d'utiliser un outil un peu plus évolué comme Notepad++. Nous reparlerons du
choix de l'éditeur à la fin de ce chapitre ;
• Un navigateur web : il permet de tester la page web. Vous pouvez utiliser par exemple Mozilla
Firefox, Internet Explorer, Google Chrome, Opera, Safari, ou tout autre navigateur auquel vous êtes
habitué pour aller sur le Web. Il est conseillé de tester son site régulièrement sur différents navigateurs.
Cependant, pour ceux qui travaillent sur des sites dynamiques, ces outils ne suffisent pas. Il est nécessaire
d'installer des programmes supplémentaires.
Avec un site dynamique
Pour que votre ordinateur puisse lire du PHP, il faut qu'il se comporte comme un serveur. Rassurez-vous, vous
n'avez pas besoin d'acheter une machine spéciale pour cela : il suffit simplement d'installer les mêmes
programmes que ceux que l'on trouve sur les serveurs qui délivrent les sites web aux internautes.
Ces programmes dont nous allons avoir besoin sont :
• Apache : c'est ce qu'on appelle un serveur web. Il s'agit du plus important de tous les programmes, car
c'est lui qui est chargé de délivrer les pages web aux visiteurs. Cependant, Apache ne gère que les sites
web statiques (il ne peut traiter que des pages HTML). Il faut donc le compléter avec d'autres
programmes.
• PHP : c'est un plug-in pour Apache qui le rend capable de traiter des pages web dynamiques en PHP.
En clair, en combinant Apache et PHP, notre ordinateur sera capable de lire des pages web en PHP.
• MySQL : c'est ce qu'on appelle un serveur de données. C'est le logiciel de gestion de bases de
données. Il permet d'enregistrer des données de manière organisée (comme la liste des membres de
votre site).
Tous ces éléments qui vont nous aider à créer notre site dynamique sont libres et gratuits. Certes, il en existe
d'autres (parfois payants), mais la combinaison Apache + PHP + MySQL est la plus courante sur les serveurs
web, à tel point qu'on a créé des « packs » tout prêts qui contiennent tous ces éléments appelé environnement
de développement Web donc voici quelques exemples :
- XAMPP
- EasyPHP
- WAMPServer
- MAMP
-
NB. : Il est possible de les installer un à un, mais cela prend plus de temps et vous n'allez rien y gagner (sauf
si vous êtes administrateur de serveur, ce qui ne devrait pas être votre cas).

Cours Informatique Terminale TI 9


Travaux Pratique 1 :
Installation et configuration d’un environnement intégré de
développement web
Compétences :
- Installer et configurer un environnement intégré de développement web ;
- Démarrer et arrêter un service web ;
- Spécifier le rôle du répertoire racine du serveur d’hébergement d’une application web ;
- Accéder au fichier de configuration d’un serveur web ;
- Démarrer une application hébergée sur un serveur web ;
- Configurer le port d’écoute d’un serveur web ;
- Identifier le port d’écoute d’un serveur web ;
XAMPP : plateforme pour héberger son propre site web

1- Définition de XAMPP
XAMPP est un ensemble de logiciels permettant de mettre en place facilement un serveur Web et un serveur
FTP. Il s’agit d’une distribution de logiciels libres (X Apache MySQL Perl PHP) offrant une bonne souplesse
d’utilisation, réputée pour son installation simple et rapide. Ainsi, il est à la portée d’un grand nombre de
personnes puisqu’il ne requiert pas de connaissances particulières et fonctionne, de plus, sur les systèmes
d’exploitation les plus répandus. Cette « distribution » se chargera donc d’installer l’ensemble des outils dont
vous pourriez avoir besoin lors de la création d’un site Web.
Plus d’une dizaines d’utilitaires sont intégrés comme
• MySQL
• PHP
• Perl
• ou encore phpMyAdmin
Il est distribué avec différentes bibliothèques logicielles qui élargissent la palette des services de façon
notable
• OpenSSL
• Expat(parseur XML)
• PNG
• SQLite
• zlib
• différents modules Perl et Tomcat
• FileZilla Server

2- Alternative à XAMPP : WAMPServer


L’alternative WAMPServer vaudrait apparemment le détour mais je vous conseille XAMPP car il peut
s’installer sur une clé usb et donc être transporter n’importe où, tandis que WAMP Server ne s’installe que
sur Windows et via un exécutable uniquement.
Il faut rappeler, que XAMPP n’est pas une application en soit mais simplement une distribution avec une
installation automatique ; ce qui signifie en clair que pour la documentation « avancée », il faut utiliser celle
des logiciels qui la composent (apache.org, php.net, etc).
3- Quel est le but de XAMPP ?
XAMPP de Bitnami est « une distribution Apache contenant PHP et Perl ». Il suffit de comprendre que
XAMPP est un programme simple et gratuit qui permet aux utilisateurs d’héberger des sites Web sur
leur PC.
Bien que la configuration d’un serveur local à l’aide de XAMPP soit quelque peu technique, le processus est
également assez facile et direct. Une fois que tout a été mis en place, vous constaterez que la gestion et l’édition
de sites Web est un jeu d’enfant.

Cours Informatique Terminale TI 10


En utilisant XAMPP pour créer et modifier des sites Web, vous pourrez modifier un site Web quand vous le
souhaitez.
Mais l’inconvénient, c’est que vous êtes aussi plus susceptible de perdre vos sites, surtout si vous ne créez
pas de sauvegardes.
Cependant, si vous démarrez en développement web, XAMPP est fait pour vous. Cela inclut tous les projets
liés au HTML, CSS, JavaScript, et au-delà !

4- Installation de XAMPP
• Rendez-vous sur le site Web de XAMPP et téléchargez le paquet.
• Suivez le processus d’installation par défaut.
• Une fois que vous avez téléchargé XAMPP, votre panneau de contrôle XAMPP devrait s’ouvrir
automatiquement.
• Si ce n’est pas le cas, vous pouvez localiser le programme XAMPP comme n’importe quel autre programme,
via le menu Démarrer.
Dans votre panneau de configuration XAMPP, vous devriez voir une présentation simple des processus
XAMPP en cours d’exécution.
Pour nos besoins, nous nous concentrerons sur les deux premières options : Apache et MySQL.
a- Apache
Noyau principal de XAMPP, l’option Apache crée un serveur Apache sur votre PC. C’est ce qui vous
permettra d’exécuter et d’éditer des sites Web sur votre PC à l’aide de navigateurs Web, tout comme on le
ferait pour un site.
Sauf, bien sûr, que ce site fonctionne sur votre PC, par opposition à un serveur connecté à Internet.
b- MySQL SQL
MySQL/SQL permet la communication entre les bases de données et les sites Web, ce qui permet aux
utilisateurs de tester et de stocker les emails, les mots de passe et toute autre donnée.

Cliquez sur le bouton Démarrer dans votre panneau de configuration XAMPP. Attendez qu’Apache et
MySQL soient surlignés en vert sous votre section de module. Une fois activé, vous êtes libre d’utiliser
XAMPP.
Pour vous assurer que tout est en ordre de marche, ouvrez un navigateur Web, entrez http://localhost/ dans
votre barre d’adresse et appuyez sur Entrée. Vous devriez être redirigé vers http://localhost/dashboard/, qui
est la page par défaut de XAMPP.
Ensuite, cliquez sur le bouton phpMyAdmin dans le menu de navigation supérieur. Vous serez dirigé vers
votre page phpMyAdmin par défaut.
Si vous cliquez sur l’option de menu phpMyAdmin, vous pouvez commencer à configurer vos bases de
données MySQL. L’écran de connexion phpMyAdmin s’ouvrira dans une nouvelle fenêtre du navigateur.
Par défaut, le nom d’utilisateur administrateur sera root, et vous pouvez laisser le champ mot de passe vide.
A partir de là, vous pouvez créer de nouvelles bases de données MySQL et modifier celles qui existent déjà.
La plupart des logiciels, comme WordPress, mettront automatiquement en place une nouvelle base de données
pour vous.
Si tout fonctionne, vous êtes prêt à commencer à créer des sites Web !

5- Création de sites Web à l’aide de XAMPP


Maintenant vient la partie amusante. Dirigez-vous vers le dossier XAMPP situé dans votre répertoire racine
(C:\xampp par défaut). Ensuite, dirigez-vous vers htdocs.
Avant de créer et de modifier un site Web, vous aurez besoin d’un éditeur de texte.
Bien que vous puissiez utiliser un éditeur de texte par défaut comme Notepad++, il est généralement
préférable de télécharger un éditeur tiers spécialement conçu pour le code et les balises.
a- Comment commencer à télécharger et installer des sites Web dans XAMPP
• Téléchargez le fichier zip du site Web et conservez-le dans un endroit dont vous vous souviendrez.
• Ensuite, créez un dossier dans le dossier htdocs de XAMPP pour votre site Web.
• Décompressez et extrayez le contenu de votre fichier zip dans ce dossier htdocs.
• Une fois que vous avez extrait les fichiers, dirigez-vous dans htdocs pour vous assurer qu’ils ont été extraits
correctement.

Cours Informatique Terminale TI 11


• Enfin, accédez à votre page Web dans votre navigateur Web.
Votre site web, pour ainsi dire, sera accessible en utilisant le localhost mentionné précédemment avec le
nom du dossier contenant vos fichiers.
Les sites Web sont essentiellement des fichiers contenus dans des dossiers, tous sous un seul nom de
domaine !
Conclusion
Vous avez créé un serveur local sur votre PC par lequel vous pouvez créer, modifier et adapter des pages
Web à votre guise. Le meilleur de tout, c’est que vous en avez le contrôle total. Il ne vous reste plus qu’à
commencer votre expérimentation.

Leçon 6 : Hébergement Web


Compétences :
- Décrire la procédure d’hébergement (local) d’un site web ;
Introduction
Héberger un site Web signifie simplement s'assurer que votre site Web peut être accessible sur le World Wide
Web (WWW). Cela se fait généralement de deux manières. Vous pouvez payer l'hébergement auprès d'un
fournisseur de services ou vous pouvez l'héberger vous-même sur votre propre serveur.

1- Comment fonctionne l'hébergement Web


Les fichiers de sites Web, tels que HTML, images, vidéos, sont stockés sur des serveurs connectés à Internet.
Lorsque les utilisateurs souhaitent visiter votre site Web, ils saisissent l'adresse de votre site Web dans leur
navigateur et leur ordinateur se connecte ensuite à votre serveur. Vos pages Web seront ensuite transmises
aux utilisateurs via le navigateur Internet.
2- Comment héberger un site en utilisant un fournisseur d'hébergement
L'utilisation d'un fournisseur de services est le moyen le plus simple d'héberger un site Web. Vous pouvez
payer une petite redevance mensuelle et compter sur le fournisseur de services pour prendre soin de tous vos
équipements, infrastructures et autres besoins associés.
a- Avantages de l'hébergement avec un fournisseur de services
• Habituellement moins cher
• Le soutien est souvent facilement disponible
• Pas besoin de maintenance matérielle
• Plus grande fiabilité
b- Inconvénients de l'hébergement avec un fournisseur de services
• Peut-être des restrictions de service
• Moins de choix dans les lieux d'hébergement
Voici les étapes pour héberger un site Web avec un fournisseur de services d'hébergement.

Cours Informatique Terminale TI 12


- Décidez du type de site Web que vous créez
Il existe deux principaux types de sites Web ; statique et dynamique.
Des sites Web statiques simples peuvent être créés à l'aide d'une application Ce que vous voyez est ce que
vous obtenez (WYSIWYG), puis transférés sur le compte d'hébergement.
Les sites dynamiques sont principalement pilotés par des applications et utilisent des scripts, des bases de
données et d'autres outils pour générer certaines parties du site à la volée. WordPress et Joomla sont des
exemples d'applications courantes de Content Management System (CMS) qui sont populaires aujourd'hui.
D'autres, tels que Magento et PrestaShop, sont utilisés pour les sites Web de commerce électronique.
- Comparez les types d'hébergement Web
Tout comme il existe de nombreuses catégories de voitures, l'hébergement de sites Web se décline également
en plusieurs variantes. Par exemple, l'hébergement mutualisé est le moins cher et plus facile à gérer - ils
s'apparentent aux voitures compactes du monde.
Comme le type d'hébergement Web évolue, il en va de même pour le coût impliqué et souvent la complexité
de la gestion du compte d'hébergement. Par exemple, dans L'hébergement VPS vous devez gérer non
seulement les détails de l'hébergement, mais également l'environnement dans lequel il est hébergé.
Trois types d'hébergement Web
En bref, les types d'hébergement les plus courants sont
• Hébergement partagé
• Hébergement VPS / Cloud
• Dedicated Hosting Server
WordPress ? Prestashop ? Magento ? Hébergement WooCommerce ?
Il est important de savoir que les applications Web et l'hébergement Web ne sont pas la même chose. Certains
hébergeurs proposent des plans tels que l'hébergement WordPress, l'hébergement PrestaShop, l'hébergement
WooCommerce, etc. Ce ne sont pas vraiment des types d'hébergement, mais destinés à attirer des profanes qui
ne sont peut-être pas familiers avec les termes d'hébergement Web réels. Ces offres d'hébergement ne font
qu'attirer les utilisateurs avec les noms des applications Web populaires.
Par exemple, peu de gens connaissent la différence de types d'hébergement, mais beaucoup reconnaîtront le
terme « WordPress ».
Le type d'hébergement Web dont vous aurez besoin est généralement défini par :
1. Le volume de trafic que vous attendez sur votre site Web, ou
2. Tous les besoins spécifiques de votre site Web pourraient avoir.
La plupart des sites Web qui viennent de démarrer auront généralement un faible volume de trafic (c'est-à-
dire peu de visiteurs) et les comptes d'hébergement partagé conviendront à ceux-ci. La plupart des comptes
partagés sont également fournis avec des programmes d'installation d'applications (tels que Softaculous), mais
pour vous assurer que vos besoins sont satisfaits, demandez à l'hôte si l'application que vous souhaitez peut
être installée sur le compte que vous consultez.
Hébergement partagé vs VPS / Cloud vs hébergement dédié
En termes de performances et de gestion, chaque type d'hébergement Web a également ses avantages et ses
inconvénients, alors choisissez le vôtre en conséquence.
Hébergement partagé est souvent bon marché et facile à gérer, mais ne comprend pas de commandes
avancées et n'est pas en mesure de gérer des volumes de trafic élevés. Vous pouvez get services d'hébergement
partagé de Hébergement A2, Hostinger, InMotion Hosting.
Hébergement VPS / Cloud est plus cher et très polyvalent. Les utilisateurs peuvent installer presque tout ce
dont ils auront besoin sur ces comptes et être en mesure de faire face à des volumes de trafic variables en
fonction du montant des ressources payées. Vous pouvez obtenir des services d'hébergement VPS ou Cloud à
partir de Océan numérique, Interserver, SiteGround.
Serveurs dédiés sont les plus complexes à gérer et les plus coûteux. Ils sont très puissants et peuvent être
gérés jusqu'au niveau matériel par les administrateurs. AltusHost, InMotion Hosting Hébergement
TMD fournir des services d'hébergement dédiés.

- Choisissez et achetez un plan d'hébergement Web


Même au sein des types d'hébergement, les fournisseurs de services ont souvent une variété de plans
disponibles. La principale différence dans ces plans réside souvent dans la quantité de ressources que chacun
obtient. Plus votre site dispose de ressources, plus il peut gérer de visiteurs.

Cours Informatique Terminale TI 13


En ce qui concerne les ressources sur l'hébergement Web, nous faisons généralement référence à trois éléments
de base : le processeur (CPU), la mémoire (RAM) et le stockage (HDD ou SSD). Cependant, ceux-ci ne se
traduisent pas toujours par de bonnes performances d'un hébergeur Web.
Dans le passé, il n'existait pas de moyen simple d'évaluer les performances d'un hébergeur Web. La plupart
des utilisateurs ont dû s'appuyer sur des avis qui, malheureusement, ne prennent normalement que des
instantanés des performances d'un hôte et mettent rarement à jour cela. Pour surmonter cela, essayez
d'utiliser HostScore, un site qui évalue constamment les performances des hébergeurs sur la base d'une collecte
de données continue. Cela signifie que leurs évaluations des performances de l'hébergeur sont beaucoup plus
précises.
Gardez également un œil sur les fonctionnalités à valeur ajoutée telles que SSL gratuit, le nom de domaine,
les crédits publicitaires, un constructeur de site Web inclus ou d'autres éléments qui peuvent vous aider à créer
ou à commercialiser votre site.
Certains hébergeurs Web offrent également d'autres avantages sur des plans plus chers tels que des
optimisations spéciales ou des améliorations. Un bon exemple de cela est le plans d'hébergement partagé sur
A2 Hosting. Le plan le plus cher de cette série est constitué de 20 vitesses «Turbo».
Habituellement, juste après avoir acheté un hébergeur, vous recevrez un e-mail de bienvenue avec des détails
sur vos identifiants de connexion et votre serveur de noms. Conservez cet e-mail en lieu sûr - vous aurez
besoin des informations pour configurer votre domaine et vous connecter à votre panneau de configuration de
serveur.
Après avoir testé et examiné plus de 60 services d'hébergement dans le passé, j'ai pu affiner certains meilleures
options d'hébergement pour différents cas d'utilisation.

Hébergeur Web pour débutants / sites Web simples


• Hébergement A2 (inscription à 3.92 $ / mois)
• Hostinger (inscription à 0.99 $ / mois)
• GreenGeeks (inscription à 2.95 $ / mois)

Hébergeur pour entreprises / sites Web en croissance


• Hébergement InMotion (inscription à 3.99 $ / mois)
• Interserver (inscription à 4 $ / mois)
• SiteGround (inscription à 3.95 $ / mois)

Hébergeur Web pour développeurs / utilisateurs avancés


• Kinsta (inscription à 30 $ / mois)
• LiquidWeb (inscription à 29 $ / mois)

- Acheter un domaine
Lorsque votre hébergement Web est l'espace réel sur lequel se trouvent les fichiers de votre site Web, vous
avez besoin d'un nom de domaine pour que les utilisateurs puissent accéder à votre site. Le nom de domaine
agit comme votre adresse sur le WWW. Comme de vraies adresses, chacun est unique.
De nombreux plans d'hébergement Web seront livrés aujourd'hui avec un nom de domaine gratuit, alors
assurez-vous de vérifier si cela s'applique à l'hébergement Web que vous avez l'intention d'acheter. Si c'est le
cas, vous pouvez prendre soin du nom de domaine en même temps que lorsque vous payez pour votre plan
d'hébergement Web.
Sinon, vous devrez acheter un nom de domaine séparément. Cela peut être fait à partir du même endroit où
vous avez acheté le plan d'hébergement ou d'un autre fournisseur de services. Si vous devez acheter le nom
de domaine séparément, je vous recommande fortement de chercher ailleurs.
Les noms de domaine ne sont pas des articles à prix fixe et sont souvent mis en vente. Certains fournisseurs
ont souvent des ventes à bas prix sur les noms de domaine et si vous êtes chanceux, vous pouvez en acheter
un pour un vol. Namecheap, par exemple, proposait souvent des noms de domaine proposés jusqu'à 98% de
réduction.
L'exception à cela est si vous êtes propriétaire d'un site pour la première fois. Dans ce cas, l'achat d'un nom de
domaine et l'hébergement auprès du même fournisseur de services peuvent vous faciliter la tâche en tant que
débutant.

Cours Informatique Terminale TI 14


- Déplacer / créer votre site Web vers le serveur
Une fois votre nom de domaine et votre plan d'hébergement Web prêts, il est temps de migrer. La migration
de site peut être complexe, donc si vous faites cela pour la première fois, demandez de l'aide à votre nouvel
hôte. Certains hébergeurs proposent migrations de site gratuites.
Pour lancer un transfert de site sur InMotion Hosting, connectez-vous au tableau de bord AMP> Opérations
de compte> Demande de transfert de site Web. Cliquez ici pour lancer la migration de site libre InMotion
maintenant.
Si vous avez construit votre site Web localement (sur votre propre ordinateur), transférez simplement nos
fichiers sur votre serveur Web. Pour ce faire, vous pouvez soit utiliser le Gestionnaire de fichiers dans votre
panneau de contrôle d'hébergement Web, soit effectuer le transfert à l'aide d'un client FTP.
Le processus est similaire à la copie de fichiers d'un endroit à un autre sur votre propre ordinateur.
3- Comment héberger un site localement
Héberger un site Web localement signifie que vous utilisez essentiellement votre propre emplacement pour
configurer un serveur Web à partir de zéro. Cela signifie que vous êtes responsable de tout, du matériel et des
logiciels à la fourniture de bande passante et aux autres besoins en infrastructure.

a- Avantages de l'auto-hébergement
• Contrôle extrême de votre environnement d'hébergement
• Potentiel d'accélération des délais de service
• Votre choix d'équipements et de prestataires de services

b- Inconvénients de l'auto-hébergement
• Peut être très cher
• Pas toujours possible dans les environnements résidentiels

Attention : l'hébergement local de serveurs Web est complexe et peut coûter très cher. Il est également souvent
moins fiable que l'hébergement avec un fournisseur de services.

- Sélectionnez l'équipement et le logiciel


Le matériel de base du serveur peut être très similaire au matériel de votre propre PC avec quelques légères
différences. En fait, techniquement, vous pouvez prendre votre propre PC (ou même un ordinateur portable)
et le transformer en serveur Web domestique si vous le souhaitez vraiment.
La principale différence réside dans la fiabilité de votre serveur Web et le volume de visiteurs qu'il peut gérer.
Comme pour les fournisseurs de services, vous devrez garder un œil sur le processeur, la mémoire et l'espace
de stockage. Si vous optez pour un équipement serveur haut de gamme tel qu'un serveur rack, vous devrez
également vous assurer que les besoins spécifiques de cet équipement sont satisfaits. Cela inclut l'espace, le
refroidissement et l'alimentation.
Si vous avez besoin que le service soit plus fiable, vous devrez également envisager la redondance du matériel.
Par exemple, exécuter vos disques de stockage en RAID, plus la mise en miroir active des sauvegardes sur
des disques supplémentaires.
Vos autres équipements d'infrastructure tels que les routeurs et les modems devront également être capables
de gérer des charges de trafic élevées.
Pour les logiciels, outre votre système d'exploitation, vous devrez également vous concentrer sur votre plate-
forme de serveur Web (pour le moment, Apache et Nginx sont les plus populaires du marché). Cela signifie
également que vous devez être responsable non seulement de la configuration du logiciel, mais également des
licences.

- Assurer une bande passante suffisante


La bande passante Internet est également vitale pour faire fonctionner votre propre serveur. Dans de nombreux
cas, la plupart d'entre nous acceptent la bande passante Internet standard car nous utilisons des connexions
limitées à Internet. Imaginez si 30 personnes essayaient d'utiliser votre Internet domestique en même temps -
c'est peut-être ce que vous cherchez à soutenir.
Ce qui doit également être pris en considération est votre adresse IP. La plupart des plans Internet à domicile
sont livrés avec des adresses IP dynamiques attribuées. Pour exécuter un serveur Web, vous avez besoin d'une

Cours Informatique Terminale TI 15


adresse IP statique. Cela peut être géré par un fournisseur de services tel que DynDNS ou en achetant le service
auprès de votre fournisseur d'accès Internet (FAI).

- Développer et déployer un site Web


La partie suivante est similaire à l'expérience d'utilisation d'un fournisseur d'hébergement Web, sauf que vous
n'obtenez aucune assistance. Vos fichiers Web doivent être déplacés sur votre hébergeur pour que votre site
commence à fonctionner.

Chapitre 4 : Programmation en PHP


Leçon 7 : Généralités sur la programmation PHP
Compétences
• Expliquer de quel côté s’exécute un script PHP ;
• Insérer un code PHP dans un document HTML ;
• Décrire quelques variables serveurs ;
• Tester un script PHP ;
• Décrire la structure d’un script PHP ;
• Inclure un fichier PHP dans un code ;
• Lister les variables super globales ;
• Expliquer les variables super globales $_GET, $_POST et $_FILES ;
• Utiliser les variables super globales $_GET, $_POST et $_FILES ;
• Déclarer une variable, une constante en PHP ;
• Déclarer un tableau (indexé, associatif) ;
• Afficher le contenu d’une variable PHP ;
• Insérer les commentaires en PHP ;
• Utiliser les fonctions ECHO, PRINT et PRINT_R;
• Déclarer une fonction PHP et l’appeler dans un script ;
• Utiliser les balises HTML pour formater un texte à renvoyer par le serveur
• Récupérer les valeurs d’un formulaire HTML dans un fichier PHP ;
• Utiliser les opérateurs arithmétiques ; les opérateurs de comparaison ; les opérateurs logiques ; les opérateurs d’assignation.
• Utiliser les structures de contrôle en PHP (if, else, elseif, switch, for, foreach, while, do…while)
• Utiliser la fonction date() ;
Introduction :
PHP est un langage de script HTML exécuté du côté du serveur. Il veut dire « PHP : Hypertext Preprocessor
». Sa syntaxe est largement inspirée du langage C, de Java et de Perl, avec des améliorations spécifiques. Le
but du langage est d'écrire rapidement des pages HTML dynamiques. Le PHP est utilisé dans
• Forums et Messageries
• Commerce électronique
• Banque / Comptes en ligne
• Publication en ligne
• Moteurs de recherche
• Tout ce que vous voulez, (sauf les jeux)

1- Implantation / Interprétation
Un script PHP est un simple fichier texte (caractères ASCII 7 bits). Le code PHP est délimité par des balises
spécifiques et est généralement incluse dans du code HTML avec lequel il se marie parfaitement. Ce fichier
qui est stocké sur un serveur web doit avoir une extension ".php" pour être reconnu comme tel et être
interprété.
Lorsqu’un client fait une requête de demande d’une page PHP via un navigateur, la page ne lui est transférée.
Elle est interprétée coté serveur par un module PHP (interpréteur) et si nécessaire un code HTML est généré
et transmis au navigateur. C’est pour cette raison que vous ne verrez jamais le code source d’une page PHP
en demandant l’affichage de sa source depuis le navigateur.
2- Bases du langage

Cours Informatique Terminale TI 16


a- Balises de PHP
Le code PHP est délimité par une paire de balises (une balise ouvrante et une balise fermante). On parle de
balise de début et balise de fin. On distingue plusieurs formes de basiles mais une seule de ces formes est
recommandé pour raisons de compatibilité.
• <?php … ?>
• <? … ?>
• <script language="php"> … </script>
• <% … %>
C’est la première forme qu’il est recommandé d’utiliser. Exemple :
< ?php
echo "Mon premier code php !" ;
?>
b- Séparateur d’instruction
Comme dans la plupart des langages, en PHP chaque instruction se termine par un point-virgule. Toutefois,
la dernière instruction avant la balise de fin n’a pas besoin de point-virgule.
c- Commentaires
Les commentaires en PHP héritent des commentaires du C++ et du shell Unix. Ainsi on a :
• // permet de commenter une ligne ou une partie d’une ligne
• # a le même effet de commentaire que le //
• /* … */ permet de commenter un bloc de code qui peut s’étendre sur plusieurs lignes.
Exemple :
<?php
echo "Première ligne<br/>"; //un commentaire sur une ligne comme en C++
/* un commentaire sur plusieurs lignes,comme en C et C++ */
echo "Seconde ligne";
echo "<br/>Enfin, je m’arrête"; #un commentaire comme en Shell Unix
?>
d- Types
PHP supporte les types basiques suivants :
Types scalaires
• Booléen
• Entier
• Nombre à virgule flottante
• Chaîne de caractères
• Types composés
• Tableau
• Objet
Types spéciaux
• Ressource
• Null
- Un booléen a pour valeur vrai ou faux et est exprimé par l’une des deux valeurs constantes TRUE ou
FALSE. Le chiffre 0, le réel 0.0, la chaine vide, la chaine "0", la constante NULL, correspondent aussi
à FALSE ; et toutes autres valeurs correspond à TRUE.
- Un entier est un nombre de l’ensemble des entiers naturels. Il est possible de spécifier les nombres
entiers en décimale (base 10), hexadécimale (base 16), octale (base 8) éventuellement précédé du signe
moins (‐). Pour la notation octale, vous devez préfixer le nombre avec un zéro; pour la notation
hexadécimale, vous devez préfixer le nombre avec 0x.
Exemple :
<?php
$a = 1234; # nombre entier en base 10
$a = -123; # nombre entier négation
$a = 0123; # nombre entier en base 8, (équivalent à 83 en base 10)
$a = 0x12; # nombre entier en base 16, (équivalent à 18 en base 10)
?>
- Les nombres à virgule flottante (nombre réels) peuvent être spécifiés en utilisant plusieurs syntaxes.
Exemple :
<?php

Cours Informatique Terminale TI 17


$a = 1.234;
$a = 1.2e3;
$b = .9 ;
?>
- Les chaînes de caractères sont des séquences de caractères. Une chaîne peut être spécifiée de trois
manières différentes :
• Guillemets simples
• Guillemets doubles
• Syntaxe HereDoc
Exemples :
<?php
$str1 = ’Ceci est une chaîne simple’;
$str2 = "ceci est une autre chaîne " ;
$str3 = <<<EOD
?>
Exemple de chaîne s’étalant sur plusieurs lignes avec la syntaxe heredoc EOD;
Nota : Lorsqu’une chaîne est spécifiée avec des guillemets doubles, ou en utilisant la syntaxe heredoc, les
variables qu’elle contient sont remplacées par leur valeur.
Exemple :
<?php
$outil = "ordinateur";
Echo 'un $outil par table<br/>' ;
echo "Un $outil pour deux étudiants!<br/>";
echo "Tous les ${outil}s sont occupés au cours de PHP !";
?>
Les caractères d’une chaîne sont accessibles en spécifiant leur offset (le premier caractère est d’offset 0) entre
accolade, après le nom de la variable. Pour assurer la compatibilité ascendante, il est toujours possible
d’accéder aux caractères avec des crochets.
Exemple :
<?php
$str = ’Ceci est un test.’;
$first = $str{0};
$second = $str[1];
?>
Pour les autres types, nous allons y revenir plus tard.
e- Identificateur
Un identificateur est un mot qui sert à désigner ou à nommer (telle des étiquettes) certains éléments et
concepts du langage de programme (les variables, les constantes, les procédures, les fonctions, et les
programmes). En règle générale, c’est une chaîne de caractères alphanumérique + le caractère sous tiret. Il
commence par une lettre de l’alphabet ou par le sous tiret, suivie d’une combinaison quelconque de lettres, de
chiffres et de sous tiret. Les mots clés réservés ne peuvent pas être utilisés comme identificateurs.
f- Constantes
Une constante est un identifiant (un nom) qui représente une valeur simple dont la valeur ne change plus une
fois définie. Les constantes magiques __FILE__ et __LINE__ sont les seules exceptions.
Comme leur nom le suggère, cette valeur ne peut jamais être modifiée durant l’exécution du script. Les noms
des constantes ne commencent pas par le signe ($) et par convention, les constantes sont toujours en
majuscules. Les constantes sont accessibles de manière globale.
La syntaxe de déclaration d’une constante en PHP se fait avec la fonction define() de la manière suivante :
Syntaxe :
define(string NOM_CONSTANTE, mixed valeur, case_sensitive=TRUE);
Exemple :
define("PI", 3.14);
define("MESSAGE","Bonjour le Monde") ;
En dehors des constantes définies par l’utilisateur il existe des constantes prédéfinies. On peut citer :
__FILE__ TRUE E_PARSE
__LINE__ FALSE E_NOTICE
PHP_VERSION E_ERROR E_ALL
PHP_OS E_WARNING
g- Variables

Cours Informatique Terminale TI 18


Le langage PHP n’est pas un langage fortement typé. A la déclaration d’une variable, son type n’est pas
précisé. C’est l’assignation qui impose un type une variable, et ce type peut changer d’une assignation à une
autre.
A partir de PHP4, une variable peut être aussi bien assignée par valeur que par référence. Le nom d’une
variable PHP s’écrit avec le symbole $ suivi de l’identificateur de la variable. Le nom est sensible à la casse.
Syntaxe :
$nom_variable ;
Mais en règle générale la définition d’une variable est suivie d’une assignation.
$nom_variable = valeur;
Exemple 1:
<?php
$reel = 0.3;
$entier = 22;
$chaine = "tout le monde !";
$phrase1 = "Bonjour $chaine !";
$phrase2 = "Bonjour" .$chaine ."!" ;
$phrase3 = 'Bonjour $chaine !';
?>
En imprimant le contenu de chacune de ces variables, on aura comme affichage :
0.3
22
tout le monde !
Bonjour tout le monde !
Bonjour tout le monde !
Bonjour $chaine !
Exemple 2 :
<?php
$chaine1 = "Bonjour";
$chaine2 = &$chaine1; //$chaine2, Rréférence sur $chaine1.
$chaine2 = "$chaine2 tout le monde !";
?>
L’impression des contenus de ces variables donnent cette fois‐ci la même chose ; i.e.
Bonjour tout le monde !
Bonjour tout le monde !
En dehors des variables définies par l’utilisateur, PHP met à disposition plusieurs variables pré‐définies. Mais
plusieurs de ces variables dépendent du serveur sur lequel elles tournent, de sa version et de sa configuration
ou encore d'autres facteurs. De même, certaines de ces variables ne sont pas accessibles en ligne de commande.
A partir de sa version 4.1.0, PHP met à disposition un ensemble de tableaux pré-définis, automatiquement
disponibles et visibles quelques soit le contexte. On les appelle des variables super-globales.
Les variables super‐globales sont :
$GLOBALS : Référence toutes les variables disponibles dans un contexte global
$_SERVER : Variables de serveur et d'exécution
$_GET : Variables HTTP GET
$_POST : Variables HTTP POST
$_FILES : Variable de téléchargement (upload) de fichier via http
$_COOKIE : Cookies http
$_SESSION : Variables de session
$_REQUEST : Variables de requête http
$_ENV : Variables d'environnement
etc.
Variables Apache
Ces variables sont créées par le serveur Apache ; donc ne sont utilisables que lorsque le serveur Web est
Apache.
- $SERVER_NAME
- $DOCUMENT_ROOT

Cours Informatique Terminale TI 19


- $HTTP_REFERER
- $REMOTE_ADDR
- $REMOTE_PORT
- etc.
Mes aujourd’hui la plupart de ces variables sont obsolètes et sont accessibles via le tableau associatif
$_SERVER.

h- Les Tableaux
Un tableau est une suite de valeurs référencées par une unique variable. PHP gère dynamiquement la taille des
tableaux. Contrairement à ce qu’on observe dans plusieurs langages de programmation, le contenu d’un
tableau en PHP peut être mixte sans problème. Les tableaux en PHP peuvent être soit indicés (les valeurs sont
référencées par leur position en débutant à 0), soit associatifs (les valeurs sont référencées par des noms).

Tableaux indicés
$tab[0] = "élément 1" ;
$tab[1] = "élément 2" ;
$tab[2] = 12 ;
On peut aussi faire de l’affectation automatique
$tab[] = "élément 1" ; //correspond à $tab[0]="élément 1"
$tab[] = "élément 2" ;
$tab[] = 12 ;
En outre, la fonction array() offre un moyen d’initialiser facilement un tableau en les indiçant respectivement
par 0, 1, etc. les éléments du tableau. $tab = array("éléments 1", "élément 2", 12) ;

Tableaux associatifs
Dans un tableau associatif les indices, au lieu d’être numériques, sont des chaines de caractères.
$mes["voiture"] = "BMW" ;
$mes["filiere"] = "IIR" ;
$mes["sport"] = "marche" ;
Ou encore
$mes = array ("voiture" => "BMW", "filiere" => "IIR", "sport" =>"marche") ;

Tableaux multidimensionnels
Les tableaux indicés et associatifs se généralisent aux tableaux multidimensionnels, pour lesquels l’indice ou
la clé, est constituée de plusieurs valeurs (chacune des valeurs est entre crochets). Un tableau
multidimensionnel est au fait un tableau de tableaux.
Exemples :
$tab[0][0] = "En haut à gauche" ;
$tab[0][1] = "En haut à droite";
$tab[1][0] = "En bas à gauche";
$tab[1][1] = "En bas à droite";
$mes = array( "un" => array("premier","second"), "deux" =>
array("premier","second"), "trois" => array("premier","second")) ;

i- Opérateurs
i. Les opérateurs arithmétiques
Opérateur Exemple Nom Résultat
‐ ‐$a Négation Opposé de $a.
+ $a + $b Addition Somme de $a et $b.
‐ $a ‐ $b Soustraction Différence de $a et $b.
* $a * $b Multiplication Produit de $a et $b.
/ $a / $b Division Quotient de $a et $b.
% $a % $b Modulo Reste de $a divisé par $b.

L'opérateur de division ("/") retourne une valeur entière (le résultat d'une division entière) si les deux
opérandes sont entiers.
ii. Les opérateurs d'assignation
Assignation simple
= opérateur simple d’affectation
Opérateur associatifs ou opérateurs combinés

Cours Informatique Terminale TI 20


Opérateur Exemple Equivalence
+= $x += $y $x = $x + $y
‐= $x ‐= $y $x = $x ‐ $y
*= $x *= $y $x = $x * $y
/= $x /= $y $x = $x / $y
%= $x %= $y $x = $x % $y
.= $x .= $y $x = $x . $y

iii. Opérateurs de comparaison


Opérateur Exemple Nom Résultat
== $a == $b Egal TRUE si $a est égal à $b.
=== $a === $b Identique TRUE si $a est égal à $b et qu'ils
sont de même type != $a != $b Différent
TRUE si $a est différent de $b.
<> $a <> $b Différent TRUE si $a est différent de $b.
!== $a !== $b Différent TRUE si $a est différent de $b ou
bien qu'ils ne sont pas du même type.
< $a < $b Plus petit que TRUE si $a est strictement plus petit que $b.
> $a > $b Plus grand TRUE si $a est strictement plus grand que $b.
<= $a <= $b Inférieur ou égal TRUE si $a est plus petit ou égal à $b.
>= $a >= $b Supérieur ou égal TRUE si $a est plus grand ou égal à $b.

iv. Opérateurs d'incrémentation


Opérateur Exemple Nom Résultat
++ ++$a Pre‐incrémente Incrémente $a de 1, puis retourne $a.
$a++ Post‐incrémente Retourne $a, puis l'incrémente de 1.
‐‐ ‐‐$a Pré‐décrémente Décrémente $a de 1, puis retourne $a.
$a‐‐ Post‐décrémente Retourne $a, puis décrémente $a de 1.

j- Opérateurs Logiques
Opérateur Exemple Nom Résultat
And $a and $b ET (And) TRUE si $a ET $b valent TRUE.
or $a or $b OU (Or) TRUE si $a OU $b valent TRUE.
xor $a xor $b XOR (Xor) TRUE si $a OU $b est TRUE, mais pas les deux en même temps.
! ! $a NON (Not) TRUE si $a n'est pas TRUE.
&& $a && $b ET (And) TRUE si $a ET $b sont TRUE.
|| $a || $b OU (Or) TRUE si $a OU $b est TRUE.
k- Opérateur de contrôle d'erreur
PHP supporte un opérateur de contrôle d'erreur : c'est @. Lorsque cet opérateur est ajouté en préfixe d'une
expression PHP, les messages d'erreur qui peuvent être générés par cette expression seront ignorés.
l- Opérateur d'exécution
PHP supporte un opérateur d'exécution : guillemets obliques ("``"). Notez bien qu'il ne s'agit pas de guillemets
simples. PHP essaie d'exécuter le contenu de ces guillemets obliques comme une commande shell. Le résultat
sera retourné (i.e. : il ne sera pas simplement envoyé à la sortie standard, il peut être assigné à une variable).
Utilisez les guillemets obliques revient à utiliser la fonction shell_exec().
<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>
<?php
$parFile="param.txt";
$parImage="mohona.gif";
$output=`C:\ms4w\Apache\cgi-bin\owtchart.exe $parFile $parImage`;
echo "<pre>$output</pre>";
?>
Leçon 8 : Les structures de contrôles
Compétences :
-
Structures de contrôle
a- Structure conditionnelle
➢ If
Si l'expression est vraie exécuter l'instruction ou les instructions dans le bloc.

Cours Informatique Terminale TI 21


if
Si l'expression est vraie exécuter l'instruction ou les instructions dans le bloc.
Syntaxe :
if (expression){
instruction1;
...
instructionN;
}
if (expression)
instruction1;
➢ if...else
Si l'expression est vraie exécuter les instructions du bloc 1 sinon exécuter celles du bloc 2.
Syntaxe :
if (expression){
instruction1;
...
}
else {
instruction1;
...
}

➢ if ... elseif ... else


Si expression1 est vraie, exécuter le bloc 1, sinon, si expression2 est vraie exécuter le bloc 2, sinon si ..., sinon exécuter
le dernier bloc.
if (expression1){
instruction1;
...
}
elseif (expression2){
instruction2;
...
}
elseif (expression3){
instruction3;
...
}
else {
instruction;
...
}
➢ Opérateur conditionnel ( ) ? :
(condition) ? instruction si true : instruction si false;
➢ Switch
Selon valeur de expression, exécuter les instructions associées.
switch (expression){
case val1 : instructions; break;
case val2 : instructions; break;
...
default : instructions;
}
b- Structure itérative
➢ While
Tant que l'expression est vraie faire les instructions
while (expression){
instructions;
}
➢ do ... while
Faire les instructions tant que l'expression est vraie
do{
instructions;
} while (expression)

➢ For
for(expression; test; expression_inc){
instructions;

Cours Informatique Terminale TI 22


}
➢ foreach (à partir de PHP4 ; pour les tableaux seulement) Pour chaque
foreach($tab as $value){
instructions;
}
➢ Interruption de boucles
break interrompt les boucles for, while.
continue interrompt l'exécution d'une itération et reprend à l'itération suivante.
➢ Interruption du script
Exit

Leçon 9 : Fonctions
i. Syntaxe de définition
La syntaxe de définition d’une fonction est la suivante :
function nom_de_la_fonction([$arg1 [, $arg2 […]]]){
//liste des instructions
[return valeur ;]
}
Exemple :
function writeln($msg)
{
echo $msg ."<br/>" ;
}
On peut appeler la fonction de l’une des façons suivantes :
- Writeln("Bonjour le Monde !") ;
- $txt="Bonne lecture" ;
- Writeln($txt) ;
Certains arguments d’une fonction peuvent avoir des valeurs par défaut. Lorsque c’est le cas, ces arguments
doivent être passés en dernière position.
Syntaxe :
function nom_de_la_fonction([$arg1 [,[…]]][$darg1=val1 [,$darg2=val2[…]]])
{
//liste des instructions
[return valeur ;]
}
return valeur ; est une instruction de retour optionnelle qui permet de retourner (renvoyer) une valeur. Tous les types de variables
peuvent être renvoyés, tableaux et objets compris. Lorsque return est rencontrée lors de l’exécution du code d’une fonction, la
fonction finit son exécution immédiatement et passe le contrôle au programme appelant en lui retournant valeur.
Exemples :
function writeln($msg="")
{
echo $msg ."<br/>" ;
}
function convert($mont, $tauxCh, $devise=" F CFA")
{
Echo $mont*$tauxCh ." " .$devise ;
}
function somme($premier, $second)
{
return $premier + $second ;
}
Un appel de ces fonctions peut se faire de la façon suivante :
- writeln() ;
- writeln("le texte à afficher") ;
- writeln(12);
- convert(18,656) ;
- conver(24500, 0.0015244, " €") ;
- echo somme(10, 54);
ii. Passage de paramètres

Cours Informatique Terminale TI 23


Il existe deux modes de passage de paramètres à une fonction : Passage par valeur, Passage
par variable. Par défaut, les arguments sont passés par valeur à une fonction. Ainsi les modifications apportées
à cet argument dans la fonction n’affectent pas sa valeur à la sortie de cette dernière (fin de l’exécution de la
fonction). Dans un passage de paramètre par valeur c’est au fait une copie du paramètre qui est utilisée dans
la fonction. Pour que les modifications apportées à un paramètre à l’intérieur d’une fonction puissent changer
la valeur de l’argument à la fin de l’exécution de la fonction, on doit faire un passage de paramètre par variable.
En PHP, on utilise le passage de paramètre par référence (héritage du C++). Pour passer un argument par
référence, il faut utiliser l’opérateur '&' devant l'argument dans la déclaration de la fonction.
<?php
function gras_chaine(&$string)
{
$string= "<B> $string</B>";
}
$str = 'Ceci est une chaîne';
Gras_chaine($str);
echo $str;
?>
iii. Portée d’une variable
Nous aurions pu aborder cette notion dans la session des variables mais avons préféré en parler ici pour une
meilleure compréhension. La notion de portée d’une variable fait référence à sa visibilité et dépend du contexte
dans lequel la variable est définie. Suivant le cas, la portée concernera la totalité d'un script PHP
ou juste une partie du script.
Une variable est dite de portée globale ou tout simplement variable globale, lorsqu’elle est visible (i.e.
accessible) de partout (même à l’intérieur des fonctions) à partir de sa ligne de définition. Une variable globale
est définie en dehors de toute fonction.
Toute variable définie à l’intérieur d’une fonction est dite variable locale. Une telle variable n’est accessible
qu’à l’intérieur de cette fonction. Donc sa portée ou sa visibilité est limitée à l’intérieur de cette fonction.
Exemple :
<?php
$c = 1;
function somme() {
$a = 2 ;
$b = 3 ;
$c = $a + $b; // $c est ici une variable locale différente de la
// variable globale $c de même nom.
}

4- La fonction date () et print_r()


a- La fonction date()
i- Description et syntaxe
date ( string $format [, int $timestamp = time() ] ) : string
Retourne une date sous forme d'une chaîne, au format donné par le paramètre format, fournie par le
paramètre timestamp ou la date et l'heure courantes si aucun timestamp n'est fourni. En d'autres termes, le
paramètre timestamp est optionnel et vaut par défaut la valeur de la fonction time()
ii- Liste de paramètres
- format
Format accepté par DateTimeInterface::format().
- timestamp
Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le
paramètre timestamp n'est pas fourni. En d'autres termes, il vaut par défaut la valeur de la fonction time().
- Valeurs de retour
Retourne une date formatée. Si une valeur non-numérique est utilisée dans le paramètre timestamp, FALSE sera
retourné et une erreur de niveau E_WARNING est émise.
- Erreurs / Exceptions

Cours Informatique Terminale TI 24


Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide,
et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable
d'environnement TZ. Voir aussi date_default_timezone_set()
Exemples
Exemple #1 Exemple avec date()
<?php
// Définit le fuseau horaire par défaut à utiliser. Disponible depuis PHP 5.1
date_default_timezone_set('UTC');
// Affichage de quelque chose comme : Monday
echo date("l");

// Affichage de quelque chose comme : Monday 8th of August 2005 03:12:46 PM


echo date('l jS \of F Y h:i:s A');

// Affiche : July 1, 2000 is on a Saturday


echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

/* utilise les constantes dans le paramètre format */


// Affichage de quelque chose comme : Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);

// Affichage de quelque chose comme : 2000-07-01T00:00:00+00:00


echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>
Vous pouvez faire afficher un caractère spécial dans la chaîne de format en le protégeant par un antislash. Si le
caractère est lui-même une séquence incluant un antislash, vous devrez protéger aussi l'antislash.
Exemple #2 Protection des caractères dans la fonction date()
<?php
// Affichage de quelque chose comme : Wednesday the 15th
echo date('l \t\h\e jS');
?>
Il est possible d'utiliser date() et mktime() ensemble pour générer des dates dans le futur ou dans le passé.
Exemple #3 Exemple avec date() et mktime()
<?php
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
?>
Note:
Cette méthode est plus sûre que simplement ajouter ou retrancher le nombre de secondes dans une journée ou un mois
à un timestamp, à cause des heures d'hiver et d'été.
Voici maintenant quelques exemples de formatage avec date(). Notez que vous devriez échapper tous les autres
caractères, car s'ils ont une signification spéciale, ils risquent de produire des effets secondaires indésirables. Notez
aussi que les versions futures de PHP peuvent attribuer une signification à des lettres qui sont actuellement inertes.
Lorsque vous échappez les caractères, pensez à utiliser des guillemets simples, pour que les séquences \n ne
deviennent pas des nouvelles lignes.
Exemple #4 Exemple avec date()
<?php
// Aujourd'hui, le 10 Mars 2001, 5:16:18 pm, Fuseau horaire
// Mountain Standard Time (MST)

$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm


$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // It is the 10th day (10ème jour du mois).
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \e\s\t\ \l\e\ \m\o\i\s'); // 17:03:18 m est le mois
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-
10 17:16:18 (le format DATETIME de MySQL)
?>
Pour formater des dates dans d'autres langues, utilisez les fonctions setlocale() et strftime() au lieu de la
fonction date().
Notes
Note:

Cours Informatique Terminale TI 25


Pour générer un timestamp à partir d'une représentation de date, vous pouvez utiliser la fonction strtotime(). De plus,
certaines bases de données disposent de fonctions pour convertir leurs propres formats de date en timestamp (par
exemple, MySQL et sa fonction » UNIX_TIMESTAMP()).
Astuce
Un timestamp représentant le début de la requête est disponible dans la variable $_SERVER['REQUEST_TIME']
b- print_r()
La fonction print_r() est une fonction intégrée en PHP qui est utilisée pour afficher le contenu d’une variables de
façon lisible.

i- Syntaxe

print_r(var, return)

ii- Paramètres
▪ var(Obligatoire) : Spécifie la variable à afficher.

▪ return(Optionnel) : Lorsqu’elle est définie sur TRUE, cette fonction retournera les informations (pas les

afficher). La valeur par défaut est FALSE.

iii- Valeur de retour


Si la variable est un entier ou un flottant ou une chaîne de caractères, la fonction renvoie la valeur de la
variable. Si la variable est un tableau, la fonction renvoie des clés/valeurs.
5- Les structures de langage « echo », « print » et « print_r »
Une structure de langage correspond simplement à une partie de la syntaxe d’un langage. La syntaxe
d’un langage informatique correspond à un ensemble de mots clefs au sens bien défini par le langage.
A partir de cette syntaxe, et en combinant les mots clefs, nous allons pouvoir construire des
expressions.
Les structures de langage sont en d’autres termes les atomes d’un langage informatique : ce sont les
unités de base d’un langage qu’on va pouvoir utiliser pour construire des expressions.
Je tenais à commencer ce chapitre avec cette définition car de nombreuses personnes considèrent à
tort que les structures de langage echo et print sont des fonctions. Or, les fonctions et les structures de
langage sont deux types différents d’objets qui ne vont pas être traités de la même façon.
Les structures de langage echo et print vont nous permettre d’afficher un résultat en PHP.
Pour cela, nous allons écrire notre echo ou notre print suivi de ce qu’on souhaite afficher et suivi d’un
point-virgule pour terminer l’instruction, en plaçant le tout dans une balise PHP.
Regardez plutôt l’exemple suivant qu’on va immédiatement expliquer :
<!DOCTYPE html>
<html>
<head>
<title>Cours PHP & MySQL</title>
<meta charset="utf-8">
</head>
<body>
<h1>Titre principal</h1>
<h1>Titre principal</h1>
<?php
echo "<h2>Première instruction PHP avec echo</h2>";
echo 'Bonjour à tous !<br>';
echo 29;
echo "<br>J'ai ", 29, " ans.<br>";
print "<h2>Première instruction PHP avec print</h2>";
print 'Bonjour à tous !<br>';

Cours Informatique Terminale TI 26


print 29;
?>
<p>Un paragraphe</p>
</body>
</html>

Chapitre 5 : utilisation de la bibliothèque MySQLi


Leçon 10 : Utilisation de l’extension MySQLi
Compétences
- Se connecter au SGBD MySQL ;
- Utiliser l’extension mysqli (mysqli_connect(), mysqli_select_db(), mysqli_query(),
mysqli_fetch_row(),mysqli_fetch_assoc(), mysqli_close(), mysqli_fetch_array(), mysqli_num_rows()) ;
- Utiliser la fonction die();
- Utiliser les requêtes de manipulation des données (insertion, modification, suppression, sélection) ;
- Afficher les résultats d’une requête ;

Introduction
Depuis PHP 5.4, l'extension MySQL originale est obsolète, et génèrera des alertes de
niveau E_DEPRECATED lors de la connexion à une base de données. A la place, on peut utiliser
l'extension MySQLi ou l'extension PDO_MySQL.
Si comme moi, vous avez des sites avec l'extension MySQL, voici des petits exemples pour passer
de MySQL à MySQLi (que je trouve plus simple d'emploi sur mes petites créations).

Définition
MySQLi (la lettre « i » vient de « improved » en anglais, qui signifie amélioré) est une extension du langage
de programmation PHP, permettant d’accéder aux bases de données MySQL. MySQL fait partie, avec Oracle
et Microsoft SQL Server, des systèmes de gestion de base de données relationnelles (SGBD) les plus
répandues dans le monde. Les bases de données relationnelles représentent un élément central de l’Internet,
car elles permettent le traitement et l’enregistrement de gros volumes de données. De gros ensembles de
données sont dissociés en volumes plus restreints avant d’être reliés les uns aux autres, si nécessaire.

Cours Informatique Terminale TI 27


I. Connexion à la base
1. Auparavant, avec MySQL, se connecter à la base de données se faisait ainsi :
Code PHP :
// on se connecte à MySQL
$conn = mysql_connect('$host', '$user', '$passwd');
// on sélectionne la base
mysql_select_db('mabase',$conn);

2. Maintenant, avec MySQLi, on utilise :


Code PHP :
// on se connecte à MySQL et on sélectionne la base
<?php
$conn = new mysqli("localhost", "user", "password", "database");
if ($conn->connect_errno) {
die("connexion a échoué: " . $mysqli->connect_error);
}

II. Les requêtes


1. SELECT
Exemple de requête SELECT et affichage des résultats dans un tableau :
Code PHP :
// On créé la requête
$req = "SELECT * FROM table1";

// on envoie la requête
$res = mysql_query($req);

// on va scanner tous les tuples un par un


echo "<table>";
while ($data = mysql_fetch_assoc($res)) {
// on affiche les résultats
echo "<tr><td>".$data['id']."</td><td>".$data['texte']."</td></tr>";
}
echo "</table>";

Maintenant, avec MySQLi, cela donne :


Code PHP :
// On créé la requête
$req = "SELECT * FROM table1";

// on envoie la requête
$res = $conn->query($req);

// on va scanner tous les tuples un par un


echo "<table>";
while ($data = mysqli_fetch_array($res)) {
// on affiche les résultats
echo "<tr><td>".$data['id']."</td><td>".$data['texte']."</td></tr>";
}
echo "</table>";

Cours Informatique Terminale TI 28


2. INSERT
Avec MySQL, on utilisait :
Code PHP :
// On créé la requête
$req = "INSERT INTO table1(texte) VALUES ('Du texte')";

// on envoie la requête
$res = mysql_query($req);

Avec MySQLI, cet exemple devient :


Code PHP :
// On créé la requête
$req = "INSERT INTO table1(texte) VALUES ('Du texte mysqli')";
// on envoie la requête
$res = $conn->query($req);

3. DELETE
De la même façon que le insert, le DELETE avec MySQL :

Code PHP :
// On créé la requête
$req = "DELETE FROM table1 WHERE texte='Du texte'";
// on envoie la requête
$res = mysql_query($req);

Qui devient avec MySQLi :


Code PHP :
// On créé la requête
$req = "DELETE FROM table1 WHERE texte='Du texte mysqli'";
// on envoie la requête
$res = $conn->query($req);

III. Fermer la connexion


Avec MySQL, clore la connexion à la base :
Code PHP :
// on ferme la connexion
mysql_close();

Et bien, avec MySQLi, cela devient :


Code PHP :
// on ferme la connexion
mysqli_close($conn);

IV. Divers MySQLi


a. Se protéger des injections SQL
Toute requête qui fait intervenir des variables est à protéger d'éventuelles injections SQL.
Voici comment s'en prémunir avec MySQLi :
Code PHP :
// Se protéger des injections SQL
$username = $conn->real_escape_string($_GET['username']);
$conn->query("SELECT * FROM users WHERE username = '$username'");

Cours Informatique Terminale TI 29


b. Requête préparée
Voici un exemple de requête à trous, préparée utilisant l'extension MySQLi:
Code PHP :
// mysqli, Requête préparée
$query = $conn->prepare('SELECT * FROM users WHERE username = ?');
$query->bind_param('s', $username); // s = string, i = integer
$query->execute();

c. Tester le nombre de lignes


Pour vérifier si une requête renvoie des lignes ou non :
Code PHP :
// on crée la requête SQL
$req = "SELECT * FROM table1 WHERE chk_actif=1;";

// on envoie la requête
$res = $conn->query($req) or die();

// Si on a des lignes...
if ( $res->num_rows > 0 )
{
echo "On a des résultats";
}
else
{
echo "On n'a aucun résultat";
}

Cours Informatique Terminale TI 30


Chapitre 6 : programmation en C
Leçon 11 : exécution d’un programme en C
Compétences :
- Tester un programme dans un compilateur

Situation problème :
Votre amie Claudine a écrit un programme qui calcule la somme des 10 nombres en utilisant le langage C.
Elle souhaite donc tester ce programme pour savoir s’il réalise vraiment la tâche demandée. Rencontrant des
difficultés, elle fait appel à vous dans le but de l’aider.
Consignes :
1. De quoi a-t-elle besoin pour tester son programme ?
2. Donner le rôle d’un compilateur.
3. Décrire les étapes qu’elle doit suivre pour résoudre son problème.

I. TESTER UN PROGRAMME C EN UTILISANT LE COMPILATEUR GCC


Le C est un langage compilé (par opposition aux langages interprétés). Cela signifie qu’un programme C est
décrit par un fichier texte, appelé fichier source. Ce fichier n’étant évidemment pas exécutable par le
microprocesseur, il faut le traduire en langage machine. Cette opération est appelée la compilation et est
effectuée par un programme appelé compilateur. Elle se décompose en fait en 4 phases successives :
1. Le traitement par le préprocesseur : le fichier source est analysé par le préprocesseur qui effectue
des transformations purement textuelles (remplacement de chaînes de caractères, inclusion d’autres
fichiers source …).
2. La compilation : la compilation proprement dite traduit le fichier généré par le préprocesseur en
assembleur.
3. L’assemblage : cette opération transforme le code assembleur en un fichier binaire, c’est-`a-dire en
instructions directement compréhensibles par le processeur.
4. L’édition de liens : un programme est souvent séparé en plusieurs fichiers source,
pour des raisons de clarté mais aussi parce qu’il fait généralement appel à des librairies
des fonctions standard déjà écrites. Une fois chaque code source assemble, il faut donc lier entre eux
les différents fichiers objets. L’édition de liens produit alors un fichier dit exécutable.

Pour compiler votre code source C en utilisant le compilateur gcc, on utilise la commande suivante :
gcc [options] fichier.c [-llibrairies]
Par défaut, le fichier exécutable s’appelle a.out. Le nom de l’exécutable peut être modifié à l’aide de l’option
-o nom-de-fichier
fichier.c est le nom de votre programme C que vous avez tapé dans votre éditeur texte.
Un programme C est toujours enregistré sous l’extension .c Les éventuelles librairies sont déclarées par la
chaîne -llibrairie.
Dans ce cas, le système recherche le fichier liblibrairie.a dans le répertoire contenant les librairies
pré-compilées (généralement /usr/lib/).
Par exemple, pour lier le programme avec la librairie mathématique, on spécifie -lm. Le fichier objet
correspondant est libm.a.
Lorsque les librairies pré-compilées ne se trouvent pas dans le répertoire usuel, on spécifie leur chemin d’accès
par l’option –L
Exemple : la commande gcc -o programme1 programme1.c compile le code source du programme nommé
programme1.c pour produire un fichier exécutable nommé programme1
Après compilation de votre programme C, il faut donc ouvrir le fichier exécutable pour tester votre
programme.

II. TESTER UN PROGRAMME C EN UTILISANT UN IDE : CAS DE CODE::BLOCKS


L’exécution d’un programme écrit en langage C se fait traditionnellement en utilisant un compilateur (gcc).
Les fichiers sources sont écrits en utilisant un éditeur de texte et les programmes seront compilés depuis un
terminal ou une invite de commande.

Cours Informatique Terminale TI 31


Pour faciliter la compilation des programmes C, l’on a mis sur pied des outils adaptés appelés environnements
de développement integré (IDE : Integrated development environment). Un environnement de développement
intégré permet de prendre en charge les différentes opérations de compilation : il regroupe donc l'édition de
texte (créer le code source) et les outils de compilation (activation du compilateur gcc par exemple)
directement depuis le même logiciel. Il évite ainsi le lancement d'un terminal ou d'une invite de commande
pour lancer les opérations de compilation.
En outre, l'environnement de développement intégré facilite la correction du programme (debug) en lançant
l'outil de debug (gdb) auquel il ajoute la convivialité de l'environnement graphique (visualisation de l'évolution
des variables en temps réel, par exemple).
Après démarrage de code::Blocks, l’interface suivante apparait :

Ses différentes parties sont :


1. La barre d’outils : elle comprend de nombreux boutons.
2. La liste des fichiers du projet : c’est à gauche que s’affiche tous les fichiers sources de votre programme
3. La zone principale : c’est là que vous pourriez écrire votre code en langage C
4. La zone de notification : aussi appelée « la zone morte », c’est ici que vous pourriez voir les erreurs de
compilation.
Sur la barre d’outils, on y trouve les boutons suivants :

Cours Informatique Terminale TI 32


EXERCICES
A- On souhaite écrire et exécuter un programme C qui calcule la somme de trois nombres saisis par
l’utilisateur.
1. Écrire un programme C qui réalise la tâche demandée.
2. Démarrer l’IDE installer sur votre machine puis reproduire votre code dans la
zone de travail de ce logiciel.
3. Cliquer sur le bouton de compilation pour compiler votre programme.
4. Exécuter ce programme avec les valeurs 2, 3,23, 4 et 10.

Cours Informatique Terminale TI 33


Exercice 2
B- Utiliser l’IDE code::Blocks pour écrire et exécuter chacun des programmes demandés ci-dessous :
1. Un programme C qui calcule la moyenne de 10 nombres fournis par l’utilisateur.
2. Un programme C qui calcule le PGDC de deux nombres entiers naturels.
3. Un programme C qui détermine le reste de la division de a par b. Où a et b sont fournis par
l’utilisateur.
4. Un programme C qui affiche la table de multiplication d’n nombre saisi par l’utilisateur.

Leçon 12 : les types de base en C

Leçon 13 : Utilisation des bibliothèques en C


Leçon 14 : Les structures de données en C
Leçon 15 : Les opérateurs en C

Leçon 16 : les structures de contrôles en C


Compétences :
- Écrire la syntaxe des structures for, while et do…while en C;
- Utiliser l’opérateur conditionnelle (?) et virgule ;
Situation problème :
Votre amie souhaite écrire un programme C qui calcule et affiche la table de multiplication d’un nombre
positif saisi par l’utilisateur. Elle souhaite donc que ce programme affiche à chaque fois un message à
l’utilisateur s’il saisit un nombre négatif. Rencontrant des problèmes sur l’écriture de ce programme, elle donc
appel à vous dans le but de l’aider.
Consignes :
1. Qu’entend-on par structure de contrôle ?
2. Énumérer les différentes structures de contrôle utilisées en programmation.
3. Quelle structure utilise-t-on dans le cas où la condition se traite en deux cas possibles ?
4. Quelle structure utilise-t-on dans chacun des cas suivants :
- La répétition connue d’un bloc instructions d’un programme ?
- La répétition non connue d’un bloc instructions d’un programme ?

INTRODUCTION
En programmation informatique, une structure de contrôle est une instruction particulière d'un langage de
programmation impératif pouvant dévier le flot de contrôle du programme la contenant lorsqu'elle est
exécutée. Le langage C propose plusieurs structures de contrôle différentes, qui nous permettent de nous
adapter à tous les cas possibles. Il permet d’utiliser les conditions (structures alternatives), des boucles
(structures itératives).

I- Structure alternative (if...else...)


Il s’agit de tester une condition et d’effectuer une série d’instructions si la condition est vraie et si elle est
fausse, effectuer une autre série d’instructions. Il existe deux formes de structures conditionnelles :
- La forme réduite
if (condition) {
bloc instructions 1
}

Exemple : le programme C qui prend en entrée un nombre puis affiche le message « positif » si c’est ce
nombre est supérieur à 0 est :
#include <Stdio.h>

Cours Informatique Terminale TI 34


int main (void) {
int n ;
printf ("saisir un nombre");
scanf("%d",&n);
if (n>0) {
printf("Positif");
}
Return 0;
}

- La forme complète
if (condition) {
bloc instructions 1
} else {
bloc instructions 2
}

Exemple : le programme C qui permet d’étudier la parité d’un nombre saisi par
l’utilisateur est :
#include <Stdio.h>
int main (void) {
int n ;
printf ("saisir un nombre");
scanf("%d",&n);
if (n%2==0) {
printf("%d",n,"est paire");
} else {
printf("%d",n,"est impaire");
}
Return 0;
}

- L’opérateurs conditionnel ?
L’opérateur conditionnel ? est un opérateur ternaire. Sa syntaxe est la suivante :
condition ? expression 1 : expression 2 ;
Cette expression est égale à expression 1 si condition est satisfaite, et à expression 2 sinon.
Exemple : le programme C qui calcule la valeur absolue d’un nombre est :
#include <Stdio.h>
int main (void) {
int x, abs;
abs=((x>=0)? x : -x) {
printf(" abs= %d",abs);
}
Return 0;
}
- L’opérateur virgule
Une expression peut être constitué d’une suite d’expressions séparées par des virgules :
expression 1, expression 2 , …… , expression n ;
Cette expression est alors évaluée de gauche à droite. Sa valeur sera la valeur de l’expression de droite.
Par exemple, le programme

Cours Informatique Terminale TI 35


Retournera 5 à la sortie.
NB : la virgule séparant les arguments d’une fonction ou les déclarations des variables n’est pas l’opérateur
virgule.

- Structures itératives
Toutes les structures itératives répètent l’exécution de traitement(s). Deux cas sont cependant à envisager,
selon que :
- Le nombre de répétitions est connu à l’avance : c’est le cas des boucles itératives.
- Le nombre de répétitions n’est pas connu ou est variable : c’est le cas des boucles
conditionnelles.
• Boucle for
Cette structure est une boucle itérative ; elle consiste à répéter un certain traitement un nombre de fois fixé à
l’avance. Cette structure est donnée par :
for (initialisation ; condition ;incrémentation ) {
bloc instructions;
}
Exemple : Affichage de nombres plus petit ou égal à 5.
for (i=0 ;i<=5 ; i++ ) {
printf(" i=%d",i);
}

• Boucle while
Parfois, pour réaliser une tâche, on doit effectuer plusieurs fois les mêmes instructions, sans que le nombre de
fois soit déterminé à l’avance. On utilise alors une boucle conditionnelle. Dans cette structure, le même
traitement est effectué tant qu’une condition reste valide ; la boucle s’arrête quand celle-ci n’est plus remplie.
Cette structure répétitive est ainsi formulée :
While (condition vraie) {
bloc instructions;
}

Exemple : affichage des nombres plus petit que 5


i=0 ;
While (i < 5) {
printf("i=%d",i);
i++;
}

Cours Informatique Terminale TI 36


• Boucle do…while
Une variante de structure répétitive avec boucle conditionnelle consiste à répéter un traitement jusqu’à ce
qu’une certaine condition soit vérifiée. Dans ce cas, la boucle est exécutée au moins une fois, après quoi on
teste la condition. On la traduit par l’instruction :
do {
bloc instructions;
} While (condition);

Exemple : affichage des nombres plus petit que 5


i=0;
do {
printf("i=%d",i) ;
i++;
} While (i<5) ;

EXERCICES

A- Soit le programme suivant :

Ecrire un programme C réalisant exactement la même chose, en utilisant :


a) Une instruction while;
b) Une instruction do ... while

B- Écrire un programme C pour calculer la moyenne de notes fournies au clavier. Le nombre de notes
n’est pas connu à priori et l’utilisateur peut en fournir autant qu’il le désire. Pour signaler qu’il a
terminé on convient de fournir une note négative non comptée dans la moyenne.
C- Écrire un programme C pour Déterminer si un nombre entier fourni en donnée est
premier ou non
D- Écrire un programme qui affiche la table de multiplication des nombres de 1 à 10
E- Soit le programme C ci-dessous :
#include <Stdio.h>
int main (void) {
int a,b,m;
m =((a>b)? a : b) {
printf("%d",m);
}
Return 0;

Cours Informatique Terminale TI 37


}
a. Que fait ce programme ?
b. Traduire ce programme en utilisant la structure alternative.

Leçon 17 : les fonctions en C


Compétences :
- Déclarer et appeler un sous-programme en C ;
Situation problème :
Votre ami Isaac a utilisé le langage C pour créer une calculatrice qui effectue les opérations d’addition, de
soustraction, de division et de multiplication. Il constate que le code source de son programme est touffu et
volumineux ce qui lui rend difficile la compréhension de son code. Il cherche donc un moyen très efficace
pour mieux structurer son programme. Pour cela il fait appel à vous dans le but de l’aider.
Consignes :
1. Que doit faire votre ami Isaac pour organiser et mieux comprendre son code ?
2. Comment appelle-t-on le sous-programme en C ?
3. Donner la syntaxe de définition d’une fonction en C
4. Comment fait-on appel à une fonction en langage C ?

I. DÉFINITION D’UNE FONCTION


L’écriture et la compréhension d’un programme peut s’avérer difficile lorsque le nombre d’instructions
devient trop important. A ce moment, le programme devient lourd et son exécution par l’ordinateur devient
beaucoup plus lente. Pour pallier ce problème, on a mis sur pied la notion de sous-programme informatique
dont l’objectif principal est de scinder un programme complexe et touffu en plusieurs sous-programmes plus
simples et plus efficaces.
En C, les sous programmes sont appelés les fonctions. A part la fonction principale main() qui est obligatoire,
les autres fonctions d’un programme C sont dites fonctions secondaires.
Une fonction en C se définit de la manière suivante :
type nom-fonction(type-1 argument-1,…,type-n argument-n) {
[déclarations des variables locales]
Listes
}
- La première ligne de cette définition est l’en-tête de la fonction. Dans cet en-tête, type désigne le type de la
fonction, c’est-à dire le type de la valeur qu’elle retourne.
NB :
- Contrairement à d’autres langage de programmation, en C, il n’y a pas la notion
de procédures et de sous-programme. Une fonction qui ne renvoie pas de valeur est une fonction dont
le type est spécifié par le mot clé void. Les arguments de la fonction sont appelés paramètres formels,
par opposition aux paramètres effectifs.
- Si la fonction ne possède pas de paramètres, on remplace la liste de paramètres
formels par le mot clé void.
- Le corps de la fonction débute par des déclarations de variables locales à cette
fonction. Il se termine par l’instruction de retour à la fonction appelante, return, dont
la syntaxe est : return(expression);
- La valeur expression est la valeur que retourne la fonction. Son type doit être de le même que celui
qui a été spécifié dans l’entête de la fonction. Si la fonction ne retourne pas de valeur (fonction de type
void), sa définition s’achève par return ;
Exemples :
Une fonction calculant le produit de deux nombres est :
int produit (int a, int b) {
int p ;
p=a*b;
return p ;
}

Cours Informatique Terminale TI 38


Une fonction qui imprime les N éléments d’un tableau est :
void imprime-tab (int *tab, int N) {
int i ;
for(i=0; i<N; i++){
printf("%d \t ", tab[i]);
}
return ;
}
II. APPEL D’UNE FONCTION
L’appel d’une fonction se fait par l’expression nom-fonction(paramètre-1,…,paramètre -n)
NB : L’ordre et le type des paramètres effectifs doivent concorder avec les ceux
donnés dans l’en-tête de la fonction.
III. DÉCLARATION D’UNE FONCTION
La déclaration d’une fonction en langage C peut être faite soit avant, soit après la fonction principale main().
Toutefois, il est indispensable que le compilateur connaisse la fonction au moment ou elle celle-ci est appelée.
Si une fonction est définie après son premier appel (en particulier si sa définition est placée après la fonction
main), elle doit être impérativement déclarée au préalable. Une fonction secondaire est déclarée par son
prototype, qui donne le type de la fonction et celui de ses paramètres, sous la forme :
type nom-fonction(type-1,…,type-n)

IV. NOTION DE VARIABLE LOCALE ET GLOBALE


Définitions :
Une variable globale : est une variable déclarée en dehors de toute fonction. Elle est connue d compilateur
dans toute la portion de code qui suit sa déclaration.
Une variable locale : est une variable déclarée en l’intérieur d’une fonction (ou d’un bloc d’instructions) du
programme.
NB : Les variables locales n’ont en particulier aucun lien avec des variables globales de même nom.

EXERCICE
A- On veut écrire un programme C qui calcule la moyenne de 50 nombres saisis par l’utilisateur.
a. Écrire une fonction nommée Lecture qui permet de lire les 50 nombres puis les stockent dans un
tableau de taille 50.
b. Écrire une autre fonction nommée somme qui permet de sommer les 50 nombres stockés dans le
tableau.
c. Écrire une autre fonction nommée moyenne qui calcule la moyenne de ces 50 nombres.
d. Écrire la fonction principale faisant appel à ces fonctions pour résoudre le problème posé.

Cours Informatique Terminale TI 39


B-
1. Définir fonction
2. Quel mot clef utilisé en C et qu’on place devant le nom de la fonction pour signifier qu’elle ne
retourne pas une valeur ?
3. Donner la différence entre une variable globale et une variable locale.
4. Écrire une fonction en C qui permet de calculer xn où x et n sont les nombres
entiers.
5. Écrire une fonction en C qui permet de déterminer le type d’une personne selon
son âge. NB : mineur (si âge <= 14), adulte (si âge > 14)
TP 1 : traduire les algorithmes de tri et de recherche en programme C
TP 2 : La compilation d’un programme C
TP 3 : Ecrire un programme Intégral en C
TP 4 : Programmation d’un calculateur.

Cours Informatique Terminale TI 40

Vous aimerez peut-être aussi