Académique Documents
Professionnel Documents
Culture Documents
Support de Cours
Introduction 4
Le Langage PHP 5
I. Généralités et définitions 5
1. Les variables 9
5. Exercices d’applications 36
Approfondissement 51
2. Framework 54
Conclusion générale 69
Bibliographie 70
Introduction
PHP (officiellement, ce sigle est un acronyme récursif pour PHP Hypertext
Preprocessor) est un langage de scripts généraliste et Open Source, spécialement
conçu pour le développement d'applications web. Il peut être intégré facilement au
HTML. PHP est principalement conçu pour servir de langage de script coté serveur,
ce qui fait qu'il est capable de réaliser tout ce qu'un script CGI (Common Gateway
Interface ou Interface de passerelle commune en français) 1 quelconque peut faire,
comme collecter des données de formulaire, générer du contenu dynamique, ou
gérer des cookies. Mais PHP peut en faire bien plus.
Le Langage PHP
I. Généralités et définitions
Autrefois abbréviation de Personal Home Page devenue aujourd'hui Hypertext
Preprocessor, PHP s'impose comme un standard dans le monde de la
programmation web par ses performances, sa fiabilité, sa souplesse et sa rapidité.
• fonctions d'images,
• sockets,
Attention ! Chaque instruction de code php doit être terminée par un point
virgule. Son absence entraînera automatiquement une erreur de type "parse error".
Par contre, plusieurs instructions peuvent être présentes sur une ligne, tout comme
une instruction peut chevaucher plusieurs lignes. Pour plus de lisibilité, il est
préférable d'éviter de mettre plusieurs instructions sur une même ligne.
Les commentaires
Les commentaires, essentiels dans votre code, peuvent être intégrés de deux
façons :
1. sur une ligne vous pouvez le faire précéder par deux slashs // ou par un dièse
#. Nous privilégierons ici les deux slashs
<html>
<head>
<title>Mes premiers scripts en PHP</title>
</head>
<body>
<?php
/* mon premier script, au menu :
- première chaîne de caractères
- date et heure du jour
*/
echo 'Texte généré par PHP. La DEI est une direction technique de la Police
Républicaine'; // chaîne à écrire via PHP
echo '<br />Date du jour = <font color="red"><strong>'.date("d/m/y - H:i:s").'</
strong></font>';
?>
</body>
</html>
Texte généré par PHP. La DEI est une direction technique de la Police Républicaine
Date du jour = 04/04/18 - 15:14:05
On remarquera que :
1. du HTML a donc été généré via le code PHP comme l'atteste l'affichage de la
source de la page web
3. la commande echo a été utilisée pour écrire du texte dans la page HTML, sa
syntaxe est la suivante :
<?php echo "mon texte"; ?>
<?php echo "<font color=\"blue\">"; // on despécialise ?>
ou encore :
<?php echo 'mon texte'; ?>
<php echo '<font color="blue">'; // inutile de despécialis
er ?>
4. le caractère \ (i.e antislash) peut être utilisé pour déspécialiser les guillemets
nécessaires à la valeur d'un attribut HTML. En son absence, PHP interpréte le
guillemet comme une fin de chaîne de caractère, provoquant une erreur
5. le point (.) est nécessaire pour concaténer une chaîne de caractère au résultat
de la fonction date ou pour concaténer deux chaînes de caractères
6. la date peut être générée dynamiquement via la fonction date qui requiert
certains paramètres suivant les informations que l'on souhaite afficher
<?php
setlocale(LC_TIME, "fr_FR");
echo "Nous sommes le ".strftime("%d %B %Y");
?>
A noter
On peut utiliser la fonction print ou la commande echo pour écrire du texte, mais la
première est une fonction et retourne donc un résultat d'où son exécution
légèrement plus lente (imperceptible toutefois pour les scripts classiques).
La commande echo écrit donc du code HTML dans la page qui sera ensuite
envoyée au navigateur web du client. A ce titre, il est possible également d'écrire
(donc de générer) du code Javascript, VbScript...
Enfin, on peut inclure des retours chariots, des sauts de ligne, des tabulations... Qui
ne seront visibles que dans le formatage du code source HTML (en général de peu
d'intérêt, sauf pour clarifier le code source et débugger)
\n nouvelle ligne
\r retour chariot
\ pour déspécialiser
\t tabulation horizontale
Pour que ces séquences soient interprétées, il faut absolument les placer à
l'intérieur de guillemets doubles.
Autre exemple
<html>
<head>
<title>Ma seconde page en PHP</title>
</head>
<body>
<?php
echo '<body bgcolor="#ff00ff">';
echo '<font size="2" face="arial">';
?>
<br /><br />--- date en cours ---<br /><br />
<?php echo '<font color="white"><strong>'.date('d/m/y - H:i:s’).'</strong></
font>' ?>
</body>
</html>
On remarquera que :
2. on peut mettre sur une seule ligne les balises indiquant l'ouverture du code
PHP et sa fermeture.
Inclure un fichier
Récupérer des données présentes dans un fichier évite de les dupliquer sur
plusieurs pages. Ceci facilite donc la gestion du site et renforce la sécurité si vos
données sont sensibles. Pour cela, on utilise l'instruction include()
On pourra par exemple inclure dans notre fichier PHP un autre fichier PHP qui
contient la structure des pages, ou les balises meta de début de page, ou les
constantes et fonctions du site... Un classique en programmation qui nous fait
gagner beaucoup de temps.
<?php include ($_SERVER['DOCUMENT_ROOT']."/inc/connect.php"); ?>
1. Les variables
C'est à vous de créer des variables. Vous en créez quand vous en avez besoin pour
retenir des informations.
• son nom : pour pouvoir la reconnaître, vous devez donner un nom à votre variable.
Par exemple age_du_civil;
• sa valeur : c'est l'information qu'elle contient, et qui peut changer. Par exemple :
18.
Ici, nous avons une variable appelée age_du_civil qui a pour valeur 18.
On peut modifier quand on veut la valeur de cette variable, faire des opérations
dessus, etc. Et quand on en a besoin, on l'appelle (par son nom), et elle nous dit
gentiment la valeur qu'elle contient.
Par exemple, vous pourrez retenir temporairement le nom du visiteur. Dans une
variable nom_du_visiteur, vous stockerez son pseudo, mettons « Adjile ». Dès que
vous en aurez besoin vous pourrez l'utiliser, notamment pour afficher un message
de bienvenue personnalisé : « Salut Adjile ! Bienvenue sur la plateforme de gestion
des courriers du DEI ! ».
Il est de bon ton de ne coder qu'en anglais : en effet, le code que vous écrivez
pourrait être relu / repris par n'importe qui, et il est possible que le (la)
développeur(se) soit non francophone.
Ainsi, pour les noms de vos variables, prenez soin de ne les écrire qu'en anglais.
• Les nombres entiers (int) : ce sont les nombres du type 1, 2, 3, 4, etc. On compte
aussi parmi eux les entiers relatifs : -1, -2, -3…
Exemple :23.
• Les nombres décimaux (float) : ce sont les nombres à virgule, comme 56,5691. On
peut stocker de nombreux chiffres après la virgule, ce qui devrait convenir pour la
plupart des usages que vous en ferez. Attention, les nombres doivent être écrits
avec un point au lieu de la virgule (c'est la notation anglaise).
Exemple :56.5691.
• Les booléens (bool) : c'est un type très important qui permet de stocker soit vrai
soit faux. Cela permet de retenir si une information est vraie ou fausse. On les
utilise très fréquemment. On écrit true pour vrai, et false pour faux.
Exemple : true.
• Rien (NULL) : On a parfois besoin de dire qu'une variable ne contient rien. Rien du
tout. On indique donc qu'elle vaut NULL. Ce n'est pas vraiment un type de
données, mais plutôt l'absence de type.
La figure suivante vous résume ce qu'il faut retenir des différents types
d'informations qu'est capable de stocker PHP dans les variables.
Types de données
Notez qu'on ne peut pas mettre d'espace dans un nom de variable. À la place,
utilisez un underscore «_» (c'est le symbole sous le chiffre 8 sur un clavier AZERTY
français).
Pour le nom, évitez aussi les accents, les cédilles et tout autre symbole : PHP ne les
apprécie pas.
• Ensuite, il y a le signe « égal » (=) : celui-là c'est logique, c'est pour dire que
$age_kpade est égal à…
<?php
?>
Comme tout à l'heure, rien ne s'affiche. Seulement, quelque part dans la mémoire
de l'ordinateur, une petite zone nommée age_du_civil vient de prendre la valeur 18,
puis 23, puis 55.
Ce type permet de stocker du texte. Pour cela, vous devez entourer votre texte de
guillemets doubles “" ou de guillemets simples ‘' (attention, ce sont des
apostrophes).
Voici deux exemples, l'un avec des guillemets simples et l'autre avec des guillemets
doubles :
<?php
$nom_du_civil = "Agbo";
$nom_du_civil = 'Agbo';
?>
Attention, petit piège : si vous voulez insérer un guillemet simple alors que le texte
est entouré de guillemets simples, il faut l'échapper comme on l'a vu
précédemment en insérant un antislash devant. Il en va de même pour les
guillemets doubles. Voici un exemple pour bien comprendre :
<?php
?>
En effet, si vous oubliez de mettre un antislash, PHP va croire que c'est la fin de la
chaîne et il ne comprendra pas le texte qui suivra (vous aurez en fait un
messageParse error).
Vous pouvez en revanche insérer sans problème des guillemets simples au milieu
de guillemets doubles et inversement :
<?php
?>
On vient de l'utiliser pour nos exemples précédents. Il suffit tout simplement d'écrire
le nombre que vous voulez stocker, sans guillemets.
Vous devez écrire votre nombre avec un point au lieu d'une virgule. C'est la notation
anglaise.
Pour dire si une variable vaut vrai ou faux, vous devez écrire le mot true ou false
sans guillemets autour (ce n'est pas une chaîne de caractères !). Je vous conseille
de bien choisir le nom de votre variable pour que l'on comprenne ce que ça signifie.
Voyez vous-mêmes :
<?php
$je_suis_un_etudiant = true;
$je_suis_bon_en_php = false;
?>
Cela sert simplement à indiquer que la variable ne contient rien, tout du moins pour
le moment.
Nous avons appris à créer des variables et à stocker des informations à l'intérieur.
Mais pour le moment, aucun de nos codes source n'affiche quoi que ce soit.
Vous vous souvenez que l'on peut afficher du texte avec echo ? On peut aussi s'en
servir pour afficher la valeur d'une variable !
<?php
$age_kpade = 18;
echo $age_kpade;
?>
Comme vous le voyez, il suffit d'écrire le nom de la variable que vous voulez
afficher.
La concaténation
Ecrire 18 tout seul comme on l'a fait n'est pas très parlant. On aimerait écrire du
texte autour pour dire : « Le visiteur a 17 ans ». La concaténation est justement un
moyen d'assembler du texte et des variables.
<?php
$age_du_civil = 17;
echo $age_du_civil;
?>
Mais il y a plus malin. On peut tout faire sur une ligne. Pour cela, il y a deux
méthodes et c'est justement maintenant que le fait d'utiliser des guillemets simples
ou doubles va faire la différence.
Avec des guillemets doubles, c'est le plus simple. Vous pouvez écrire le nom de la
variable au milieu du texte et il sera remplacé par sa valeur.
<?php
$age_kpade = 18;
?>
En effet, lorsque vous utilisez des guillemets doubles, les variables qui se trouvent à
l'intérieur sont analysées et remplacées par leur vraie valeur. Ça a le mérite d'être
une solution facile à utiliser, mais je vous recommande plutôt celle des guillemets
simples, que nous allons voir dès à présent.
Si vous écrivez le code précédent entre guillemets simples, vous allez avoir une
drôle de surprise :
<?php
$age_kpade = 18;
?>
Il va falloir écrire la variable en dehors des guillemets et séparer les éléments les uns
des autres à l'aide d'un point. Regardez :
<?php
?>
Ça a l'air bien plus compliqué, mais en fait c'est cette méthode qu'utilisent la
plupart des programmeurs expérimentés en PHP. En effet, le code est plus lisible,
on repère bien la variable alors que tout à l'heure elle était comme « noyée » dans le
texte. D'autre part, votre éditeur de texte devrait vous colorer la variable, ce qu'il ne
faisait pas pour le code précédent.
Les signes à connaître pour faire les quatre opérations de base (vous les trouverez
sur votre pavé numérique, à droite du clavier en principe) sont représentés par le
tableau suivant.
Symbole Signification
+ Addition
- Soustraction
* Multiplication
/ Division
<?php
?>
<?php
$nombre = 10;
?>
Le modulo
Il est possible de faire un autre type d'opération un peu moins connu : le modulo.
Cela représente le reste de la division entière.
<?php
?>
Que retenir?
• Une variable est une petite information qui reste stockée en mémoire le temps de
la génération de la page PHP. Elle a un nom et une valeur.
• En PHP, un nom de variable commence par le symbole dollar : $age par exemple.
Imaginons que votre site s’appelle monsite.com et que vous avez une page PHP
intitulée hello.php. Pour accéder à cette page, vous devez aller à l'URL suivante :
http://www.monsite.com/hello.php
Jusque-là, rien de bien nouveau. Ce que nous allons apprendre à faire, c'est
d'envoyer des informations à la page hello.php. Pour cela, on va ajouter des
informations à la fin de l'URL, comme ceci :
http://www.monsite.com/hello.php?nom=Sagbo&prenom=Comlan
Le point d'interrogation sépare le nom de la page PHP des paramètres. Ensuite, ces
derniers s'enchaînent selon la forme nom=valeur et sont séparés les uns des autres
par le symbole &.
En théorie, on peut écrire autant de paramètres voulus. Il suffit de les séparer par
des &. On peut donc voir une URL de la forme :
page.php?param1=valeur1¶m2=valeur2¶m3=valeur3¶m4=valeur4…
• hello.php.
Nous voulons faire un lien de index.php qui mène à hello.php et qui lui transmet des
informations dans l'URL.
Pour cela, ouvrez index.php (puisque c'est lui qui contiendra le lien) et insérez-y par
exemple le code suivant :
Comme vous le voyez, le & dans le code a été remplacé par & dans le lien. Ça
n'a rien à voir avec PHP : simplement, en HTML, on demande à ce que les & soient
écrits & dans le code source. Si vous ne le faites pas, le code ne passera pas
la validation W3C.
• nom : Sagbo ;
• prenom : Comlan.
Vous avez sûrement deviné ce qu'on essaie de faire ici : on appelle une page
hello.php qui va dire « Hello » à la personne dont le nom et le prénom ont été
envoyés en paramètres.
Reprenons notre exemple pour mieux voir comment cela fonctionne. Nous avons
fait un lien vers hello.php?nom=Sagbo&prenom=Comlan, cela signifie que nous
aurons accès aux variables suivantes :
Nom Valeur
$_GET['nom'] Sagbo
$_GET['prenom'] Comlan
On peut donc récupérer ces informations, les traiter, les afficher, bref faire ce que
l'on veut avec. Pour commencer, essayons tout simplement de les afficher.
NB: Pour une vraie page web il faudrait écrire toutes les informations d'en-tête
nécessaires en HTML : le doctype, la balise <head>, etc.
Ici, nous affichons le prénom qui a été passé dans l'URL. Bien entendu, nous avons
aussi accès au nom. Nous pouvons afficher le nom et le prénom sans problème :
Comme vous le voyez, nous avions fait une petite concaténation, comme nous
avons appris à le faire. Ce code que vous voyez là n'est pas bien complexe : nous
affichons le contenu de deux cases de l’array $_GET. C'est vraiment très simple et il
n'y a rien de nouveau. Tout ce qu'il faut savoir, c'est qu'on peut retrouver les
paramètres envoyés dans l'URL grâce à un array nommé $_GET.
Il ne faut JAMAIS faire confiance aux variables qui transitent de page en page,
comme $_GET que nous étudions ici.
Si vous faites les tests des codes précédents chez vous, vous devriez tomber sur
une URL de la forme : http://localhost/Formation-Webmaster-DEI-2018/hello.php?
nom=Sagbo&prenom=Comlan
On vous dit bien « Bonjour Comlan Sagbo ! ». Mais si vous êtes un peu bricoleurs,
vous pouvez vous amuser à changer les paramètres directement dans la barre
d'adresse.
Cela montre une chose : on ne peut pas avoir confiance dans les données qu'on
reçoit. N'importe quel visiteur peut les changer. Dans la page index.php un lien dit
bonjour à Sagbo Comlan, mais la page hello.php ne va pas forcément afficher
« Bonjour Sagbo Comlan ! » puisque n'importe quel visiteur peut s'amuser à
modifier l'URL.
Faisons des modifications encore plus vicieuses et voyons ce qu'on peut faire pour
éviter les problèmes qui en découlent.
http://localhost/Formation-Webmaster-DEI-2018/hello.php
Que va afficher la page hello.php ? Faites le test ! Elle va afficher quelque chose
comme :
Bonjour
Notice: Undefined index: prenom in C:\wamp\www\tests\bonjour.php on line 9
Notice: Undefined index: nom in C:\wamp\www\tests\bonjour.php on line 9
Pour résoudre ce problème, on peut faire appel à une fonction un peu spéciale :
isset(). Cette fonction teste si une variable existe. Nous allons nous en servir pour
afficher un message spécifique si le nom ou le prénom sont absents.
<?php
} ?>
Essayez maintenant d'accéder à la page hello.php sans les paramètres, vous allez
voir qu'on gère bien le cas où le visiteur aurait retiré les paramètres de l'URL.
Souvenez vous qu’il ne faut jamais faire confiance à l'utilisateur. Tôt ou tard vous
tomberez sur un utilisateur malintentionné qui essaiera de trafiquer l'URL pour
mettre n'importe quoi dans les paramètres. Il faut que votre site soit prêt à gérer le
cas.
Dans notre exemple, si on ne gérait pas le cas, ça ne faisait rien de bien grave (ça
affichait juste des messages d'erreur). Mais lorsque votre site web deviendra plus
complexe, cela pourrait avoir des conséquences plus ennuyeuses.
Nous n'avons pas vu tous les risques liés aux données envoyées par l'utilisateur.
Cette première approche devrait déjà vous avoir sensibilisés au problème.
Que retenir?
• Une URL représente l'adresse d'une page web (commençant généralement par
http://).
• Lorsqu'on fait un lien vers une page, il est possible d'ajouter des paramètres sous
la forme hello.php?nom=Sagbo&prenom=Comlan qui seront transmis à la page.
• Cette technique est très pratique pour transmettre des valeurs à une page, mais il
faut prendre garde au fait que le visiteur peut les modifier très facilement. Il ne faut
donc pas faire aveuglément confiance à ces informations, et tester prudemment
leur valeur avant de les utiliser.
<p>
</p>
</form>
La méthode
Il faut savoir qu'il existe plusieurs moyens d'envoyer les données du formulaire
(plusieurs « méthodes »). Vous pouvez en employer deux.
• get : les données transiteront par l'URL comme on l'a appris précédemment. On
pourra les récupérer grâce à l’array $_GET. Cette méthode est assez peu utilisée
car on ne peut pas envoyer beaucoup d'informations dans l’URL.
• post : les données ne transiteront pas par l'URL, l'utilisateur ne les verra donc pas
passer dans la barre d'adresse. Cette méthode permet d'envoyer autant de
données que l'on veut, ce qui fait qu'on la privilégie le plus souvent. Néanmoins,
les données ne sont pas plus sécurisées qu'avec la méthode GET et il faudra
toujours vérifier si tous les paramètres sont bien présents et valides, comme on l'a
fait dans la partie précédente. On ne doit pas plus faire confiance aux formulaires
qu'aux URL.
La cible
L’attribut action sert à définir la page appelée par le formulaire. C'est cette page qui
recevra les données du formulaire et qui sera chargée de les traiter.
Dans cet exemple, le formulaire se trouve dans la page formulaire.php. Cette page
ne fait aucun traitement particulier, mais une fois le formulaire envoyé (lorsqu'on a
cliqué sur le bouton « Valider »), le visiteur est redirigé vers la page cible.php qui
reçoit les données du formulaire, comme vous le montre la figure suivante.
Retenez donc bien que vous travaillez normalement sur deux pages différentes : la
page qui contient le formulaire (formulaire.php dans notre exemple), et celle qui
reçoit les données du formulaire pour les traiter (cible.php).
Pour les mots de passe, vous pouvez utiliser type="password", ce qui aura pour
effet de cacher le texte entré par le visiteur. À part ce détail, le fonctionnement reste
le même.
• name (obligatoire) : c'est le nom de la zone de texte. Choisissez-le bien, car c'est
lui qui va produire une variable. Par exemple :
<input type="text" name="pseudo" />.
• value (facultatif) : c'est ce que contient la zone de texte au départ. Par défaut, la
zone de texte est vide mais il peut être pratique de pré-remplir le champ.
Exemple :
<input type="text" name="pseudo" value="PPJ" />.
Pour l'exemple, créons un formulaire qui demande le prénom du visiteur puis qui
l'affiche sur la page cible.php. On va donc distinguer deux codes source : celui de
la page du formulaire et celui de la page cible.
<p>
</p>
<p>
</p>
</form>
<p>Bonjour !</p>
<p>Je connais votre prénom. Vous vous appelez <?php echo $_POST['prenom']; ?>
!</p>
Le code web suivant ouvre la page formulaire.php pour que vous puissiez tester.
La grande zone de texte (on l'appelle aussi « zone de saisie multiligne ») ressemble
à la figure suivante.
On peut y écrire autant de lignes que l'on veut. C'est plus adapté si le visiteur doit
écrire un long message, par exemple.
</textarea>
Là encore, on a un attribut name qui va définir le nom de la variable qui sera créée
dans cible.php. Dans notre cas, ce sera la variable $_POST['message'].
Vous remarquerez qu'il n'y a pas d’attribut value. En fait, le texte par défaut est ici
écrit entre le <textarea> et le </textarea>. Si vous ne voulez rien mettre par défaut,
alors n'écrivez rien entre <textarea> et </textarea>.
La liste déroulante
<select name="choix">
<option value="militaire">Militaire</option>
<option value=“gendarme">Gendarme</option>
<option value="policier">Policier</option>
</select>
On utilise la balise <select> à laquelle on donne un nom (ici : « choix »). On écrit
ensuite les différentes options disponibles… puis on referme la balise avec </
select>.
Ici, une variable $_POST[‘choix'] sera créée, et elle contiendra le choix qu'a fait
l'utilisateur. S'il a choisi « Policier », la variable $_POST[‘choix'] sera égale au value
correspondant, c’est-à-dire policier.
Vous pouvez aussi définir le choix par défaut de la liste. Normalement c'est le
premier, mais si vous rajoutez l’attribut selected=“selected" à une balise <option>,
alors ce sera le choix par défaut. On pourrait par exemple écrire :
Là encore, on donne un nom à la case à cocher via l’attribut name (ici : « case »). Ce
nom va générer une variable dans la page cible, par exemple $_POST[‘case'].
• Si elle n'a pas été cochée, alors $_POST[‘case'] n'existera pas. Vous pouvez faire
un test avec isset($_POST[‘case']) pour vérifier si la case a été cochée ou non.
Si vous voulez que la case soit cochée par défaut, il faudra lui rajouter l’attribut
checked="checked". Par exemple :
Les boutons d'option fonctionnent par groupes de deux minimum. Vous trouverez
un exemple sur la figure suivante.
Bouttons d'option
<p>Etes-vous civil?</p>
Comme vous pouvez le voir, les deux boutons d'option ont le même nom
(« status »). C'est très important, car ils fonctionnent par groupes : tous les boutons
Pour pré-cocher l'un de ces boutons, faites comme pour les cases à cocher :
rajoutez un attribut checked="checked".
Dans la page cible, une variable $_POST[‘status'] sera créée. Elle aura la valeur du
bouton d'option choisi par le visiteur, issue de l’attribut value. Si on est civil, alors
on aura $_POST['status'] = 'oui'.
Il faut bien penser à renseigner l’attribut value du bouton d'option car c'est lui qui va
déterminer la valeur de la variable.
Supposons que vous ayez besoin de « retenir » que le pseudo du visiteur est
« PPJ ». Vous allez taper ce code :
À l'écran, sur la page web on ne verra rien. Mais dans la page cible, une variable
$_POST[‘pseudo'] sera créée, et elle aura la valeur « PPJ » !
C'est apparemment inutile, mais vous verrez que vous en aurez parfois besoin.
On croit par erreur que, parce que ces champs sont cachés, le visiteur ne peut pas
les voir. C'est faux ! En effet, n'importe quel visiteur peut afficher le code source de
la page et voir qu'il y a des champs cachés en lisant le code HTML. Mieux, il peut
même modifier la valeur du champ caché s'il a les outils appropriés.
Que faut-il retenir ? Ce n'est pas parce que le champ est caché que vous devez
considérer qu'il est inviolable. N'importe quel visiteur (un peu malin) peut le lire,
modifier sa valeur et même le supprimer. Ne faites pas confiance aux données
envoyées par le visiteur ! Vous vous souvenez de cette règle dans la partie
précédente ? Elle est plus que jamais d'actualité.
Souvenez vous des mises en garde faites dans la partie précédente ? Elles ne
concernaient pas que les paramètres qui transitent par l'URL : tout cela vaut aussi
pour les formulaires !
Vous ne pouvez pas supposer que vous allez recevoir ce que vous attendiez.
Cette règle est très simple. Imaginez que vous demandez à vos visiteurs de rentrer
dans un champ leur date de naissance au format JJ/MM/AAAA. Combien vont
respecter cette mise en forme ? Combien vont se tromper par erreur ? Alors que
vous attendiez quelque chose comme « 04/10/1987 », vous allez tomber sur une
personne qui va écrire : « Je suis né le 4 octobre 1987 ». C'est un exemple un peu
extrême mais ça peut vous arriver, soyez-en sûrs. Par conséquent, quand vous
ferez le traitement de la date en PHP, il faudra bien vérifier qu'elle respecte le format
que vous avez indiqué.
Avec les formulaires, vous ne pouvez pas non plus supposer qu'on va vous envoyer
tous les champs que vous attendiez. Un visiteur peut très bien s'amuser à
supprimer un champ de texte, et dans ce cas votre page cible.php ne recevra
jamais le texte qu'elle attendait ! Il faudra impérativement qu'elle vérifie que toutes
les données qu'elle attendait sont bien là avant d'effectuer la moindre opération.
Puisque la page du formulaire se trouve sur mon site, comment peut faire un visiteur
pour modifier ma page web ? Il peut voir les sources mais pas les modifier !
En effet, vos visiteurs ne peuvent pas modifier vos pages web sur le serveur… Mais
ils peuvent les reprendre et les modifier ailleurs.
À partir de là, qu'est-ce qui empêche quelqu'un de créer une copie légèrement
modifiée de votre formulaire et de la stocker sur son serveur, à l'image de la figure
suivante ?
Formulaire modifié
S'il y a une chose à retenir ici, c'est que les formulaires sont modifiables par tous
les visiteurs contrairement à ce qu'on pourrait penser. Par conséquent, votre page
cible.php devra être aussi vigilante que nous l'avons été dans la partie précédente
et ne pas faire confiance aux données de l'utilisateur (les programmeurs ont
d'ailleurs une maxime : « Never trust user input », ce qui signifie « Ne faites jamais
confiance aux données de l'utilisateur »).
Il y a un moyen encore plus simple de modifier le formulaire de votre site sans avoir
accès à votre serveur. Internet Explorer 8 et Google Chrome embarquent des
« outils pour les développeurs » qui permettent de modifier le code HTML de la
page que l'on visite en temps réel. Firefox peut faire de même avec son célèbre
plugin Firebug.
La faille XSS (pour cross-site scripting) est vieille et on la trouve encore sur de
nombreux sites web, même professionnels ! C'est une technique qui consiste à
injecter du code HTML contenant du JavaScript dans vos pages pour le faire
exécuter à vos visiteurs.
Reprenons la page qui affiche le prénom qu'on lui envoie. Elle contient notamment
le code suivant :
<p>Je vous connais. Vous vous appelez <?php echo $_POST['prenom']; ?> !</p>
Outre le fait qu'il peut insérer n'importe quel code HTML (et rendre votre page
invalide), ce qui n'est pas le plus grave, il peut aussi ouvrir des balises de
type<script>pour faire exécuter du code JavaScript au visiteur qui visualisera la
page !
Le code HTML qui en résultera sera propre et protégé car les balises HTML
insérées par le visiteur auront été échappées :
Il faut penser à utiliser cette fonction sur tous les textes envoyés par l'utilisateur qui
sont susceptibles d'être affichés sur une page web. Sur un forum par exemple, il
faut penser à échapper les messages postés par vos membres, mais aussi leurs
pseudos (ils peuvent s'amuser à y mettre du HTML !) ainsi que leurs signatures.
Bref, tout ce qui est affiché et qui vient à la base d'un visiteur, vous devez penser à
le protéger avec htmlspecialchars.
Si vous préférez retirer les balises HTML que le visiteur a tenté d'envoyer plutôt que
de les afficher, utilisez la fonction strip_tags.
Que retenir?
• Les formulaires sont le moyen le plus pratique pour le visiteur de transmettre des
informations à votre site. PHP est capable de récupérer les données saisies par
vos visiteurs et de les traiter.
• De la même manière que pour les URL, il ne faut pas donner sa confiance absolue
aux données que vous envoie l'utilisateur. Il pourrait très bien ne pas remplir tous
les champs voire trafiquer le code HTML de la page pour supprimer ou ajouter
des champs. Traitez les données avec vigilance.
• Que ce soit pour des données issues de l'URL ($_GET) ou d'un formulaire
($_POST), il faut s'assurer qu'aucun texte qui vous est envoyé ne contient du
HTML si celui-ci est destiné à être affiché sur une page. Sinon, vous ouvrez une
faille appelée XSS qui peut être néfaste pour la sécurité de votre site.
• Pour éviter la faille XSS, il suffit d'appliquer la fonction htmlspecialchars sur tous
les textes envoyés par vos visiteurs que vous afficherez.
5. Exercices d’applications
Exercice 1:
$x="7 personnes";
$y=(integer) $x;
$x="9E3";
$z=(double) $x;
Exercice 2:
2. Créer un autre couple de page de connexion qui se sert d’un tableau associatif
login => mot de passe (à défaut de base de données) pour authentifier l’utilisateur
par son login et mot de passe.
Création
Nous allons donc créer une base de données, que nous appellerons PigierBenin. La
commande SQL pour créer une base de données est la suivante :
Il faut également définir l'encodage utilisé (l'UTF-8 dans notre cas). Voici donc la
commande complète à taper pour créer votre base :
Lorsque nous créerons nos tables dans la base de données, automatiquement elles
seront encodées également en UTF-8.
2 Les opérations dans cette section peuvent se faire directement dans PhpMyAdmin
Suppression
Si vous avez envie d'essayer cette commande, faites-le maintenant, tant qu'il n'y a
rien dans votre base de données. Soyez très prudents, car vous effacez tous les
fichiers créés par MySQL qui servent à stocker les informations de votre base.
mysql> DROP DATABASE PigierBenin;
ERROR 1008 (HY000) : Can't drop database 'PigierBenin'; database doesn't exist
mysql>
Pour éviter ce message d'erreur, si vous n'êtes pas sûrs que la base de données
existe, vous pouvez utiliser l'option IF EXISTS, de la manière suivante :
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
SHOW WARNINGS;
USE PigierBenin
Notez que vous pouvez spécifier la base de données sur laquelle vous allez
travailler lors de la connexion à MySQL. Il suffit d'ajouter le nom de la base à la fin
de la commande de connexion :
mysql -u sdz -p PigierBenin
Création de table
Nous allons créer, étape par étape, une table Etudiant, qui servira à stocker les
fonctionnaires présents dans notre direction.
Pour commencer, il faudra définir de quelles colonnes (et leur type) la table sera
composée. Ne négligez pas cette étape, c'est la plus importante. Une base de
données mal conçue est un cauchemar à utiliser.
Ensuite, petit passage obligé par de la théorie : vous apprendrez ce qu'est une clé
primaire et à quoi ça sert, et découvrirez cette fonctionnalité exclusive de MySQL
que sont les moteurs de table.
Enfin, la table Etudiant sera créée, et la requête de création des tables décortiquée.
Et dans la foulée, nous verrons également comment supprimer une table.
Type de colonne
Avant de choisir le type des colonnes, il faut choisir les colonnes que l'on va définir.
On va donc créer une table Etudiant. Qu'est-ce qui caractérise un Etudiant ? Son
nom, son prénom, son sexe, son matricule, son département (filière), sa date de
naissance et quelques commentaires le concernant.
• Nom : on a Kpade, Agnide, Adjovi. On peut donc prendre le nom pour une chaine
de caractère. Ce sera donc un champ de type chaine de caractère.
On choisira donc un VARCHAR. Mais quelle longueur lui donner ? Beaucoup de
noms ne contiennent qu'un mot, mais “Abdoulaye-Walis", par exemple, en
contient deux, et 15 caractères. Histoire de ne prendre aucun risque, autant
autoriser jusqu'à 40 caractères pour l’espèce.
• Sexe : ici, deux choix possibles (mâle, femelle). Il serait possible d'utiliser un
ENUM, cependant, ENUM reste un type non standard. Pour cette raison, nous
• Date de naissance : pas besoin de réfléchir beaucoup ici. Il s'agit d'une date,
donc soit un DATETIME, soit une DATE.
Il faut maintenant déterminer si l'on autorise les colonnes à ne pas stocker de valeur
(ce qui est donc représenté par NULL).
• Nom, Prénom, Sexe, Matricule : un Etudiant doit avoir un nom, prénom, sexe et
un matricule au minimum. On n'autorisera donc pas ces colonnes à être NULL.
• Date de naissance : Notre Etudiant est constitué des individus dont on connaît la
provenance (dossier agent chez le Chef Etudiant), les parents, la date de
naissance. Cette colonne ne peut donc pas être NULL.
Récapitulatif
Ne pas oublier de donner une taille aux colonnes qui en nécessitent une, comme les
VARCHAR(x), les CHAR(x), les DECIMAL(n, d), …
NB: Nous pouvons aussi choisir le type TEXT, comme pour le champs
commentaires que nous avions ajouté exprès car nous jugeons que les
commentaires peuvent dépasser 255 caractères.
Identité
Imaginez que quelqu'un ait le même nom de famille que vous, le même prénom,
soit né dans la même ville et ait la même taille. En dehors de la photo et de la
signature, quelle sera la différence entre vos deux cartes d'identité ? Son numéro
matricule !
Suivant le même principe, on va donner à chaque agent un numéro d'identité. La
colonne qu'on ajoutera s’appellera donc id, et il s'agira d’un INT, toujours positif
donc UNSIGNED. Selon la taille de notre Etudiant, il peut être plus intéressant
d'utiliser un SMALLINT, voire un MEDIUMINT. Comme il est peu probable que l'on
dépasse les 65000 agents, on utilisera SMALLINT. Attention, il faut bien considérer
tous les agents qui entreront un jour dans la base, pas uniquement le nombre
d'agents présents en même temps dans notre direction. En effet, si l'on supprime
pour une raison ou une autre un agent de la base, il n'est pas question de réutiliser
son numéro d'identité.
Ce champ ne pourra bien sûr pas être NULL, sinon il perdrait toute son utilité.
Clé primaire
La clé primaire d'une table est une contrainte d'unicité, composée d'une ou
plusieurs colonnes. La clé primaire d'une ligne permet d'identifier de manière
unique cette ligne dans la table. Si l'on parle de la ligne dont la clé primaire vaut x,
Par exemple, dans le cas où vous essayez d'insérer un id qui existe déjà, vous
obtiendrez l'erreur suivante :
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
Auto-incrémentation
Il faut donc, pour chaque agent, décider d'une valeur pour id. Le plus simple, et le
plus logique, est de donner le numéro 1 au premier individu enregistré, puis le
numéro 2 au second, etc.
Mais si vous ne vous souvenez pas quel numéro vous avez utilisé en dernier, pour
insérer un nouvel agent il faudra récupérer cette information dans la base, ensuite
seulement vous pourrez ajouter une ligne en lui donnant comme id le
dernier id utilisé + 1.
C'est bien sûr faisable, mais c'est fastidieux… Heureusement, il est possible de
demander à MySQL de faire tout ça pour nous !
Comment ? En utilisant l'auto-incrémentation des colonnes. Incrémenter veut dire
"ajouter une valeur fixée". Donc, si l'on déclare qu'une colonne doit s'auto-
incrémenter (grâce au mot-clé AUTO_INCREMENT), plus besoin de chercher quelle
valeur on va mettre dedans lors de la prochaine insertion. MySQL va chercher ça
tout seul comme un grand en prenant la dernière valeur insérée et en l'incrémentant
de 1.
InnoDB
Plus lent et plus gourmand en ressources que MyISAM, ce moteur gère les clés
étrangères et les transactions. Étant donné que nous serons appeler à nous servir
des clés étrangères un jour, c'est celui-là que nous allons utiliser.
De plus, en cas de crash du serveur, il possède un système de récupération
automatique des données.
Pour qu'une table utilise le moteur de notre choix, il suffit d'ajouter ceci à la fin de la
commande de création :
ENGINE = moteur;
En remplaçant bien sûr "moteur" par le nom du moteur que nous voulons utiliser, ici
InnoDB :
ENGINE = INNODB;
Avant de voir la syntaxe permettant de créer une table, résumons un peu. Nous
voulons donc créer une table Etudiant avec huit colonnes telles que décrites dans le
tableau suivant.
Caractér Nom du
Type NULL? Divers
istique champ
Syntaxe
Création de la table
colonne1 description_colonne1,
[colonne2 description_colonne2,
colonne3 description_colonne3,
...,]
[ENGINE=moteur];
nom VARCHAR(30),
sexe CHAR(1)
C'est aussi dans la description que l'on précise si la colonne peut contenir NULL ou
pas (par défaut, NULL est autorisé). Exemple :
Enfin, on peut donner une valeur par défaut au champ. Si lorsque l'on insère une
ligne, aucune valeur n'est précisée pour le champ, c'est la valeur par défaut qui sera
utilisée. Notez que si une colonne est autorisée à contenir NULL et qu'on ne
précise pas de valeur par défaut, alors NULL est implicitement considéré comme
valeur par défaut.
Exemple :
Une valeur par défaut DOIT être une constante. Ce ne peut pas être une fonction
(comme par exemple la fonction NOW() qui renvoie la date et l'heure courante).
Si l'on met tout cela ensemble pour créer la table Etudiant (nous utiliserons le
moteur InnoDB), on a donc :
Lieu_de_stage VARCHAR(40),
commentaires TEXT,
ENGINE=INNODB;
Vérifications
Voici deux commandes vous permettant de vérifier que vous avez bien créé une
table Etudiant avec les huit colonnes que vous vouliez.
Que retenir?
• Avant de créer une table, il faut définir ses colonnes. Pour cela, il faut donc
déterminer le type de chacune des colonnes et décider si elles peuvent ou non
contenir NULL (c'est-à-dire ne contenir aucune donnée).
• Chaque table créée doit définir une clé primaire, donc une colonne qui permettra
d'identifier chaque ligne de manière unique.
• Le moteur d'une table définit la manière dont elle est gérée. Nous utiliserons le
moteur InnoDB, qui permet notamment de définir des relations entre plusieurs
tables.
PDO
<?php
$servername = "localhost";
$username = "username";
$dbname = "myDBPDO";
try {
}
catch(PDOException $e)
{
}
MySqLi
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
// Check connection
if (!$conn) {
if (mysqli_query($conn)) {
echo "Connected successfully";
} else {
mysqli_close($conn);
?>
Créez un système d’ajout d’étudiant dans une base de donnée que vous créerez
avec le couple PHP-MySql.
Approfondissement
I. Notions générales sur les CMS et Framework
Autrement dit, les CMS gèrent à votre place tout ce qui permet de relier le client au
serveur et le serveur à la base de données.
De la même manière que le logiciel Word vous permet de mettre en forme un texte
de façon visuelle, les CMS vous proposent de mettre en forme vos pages web
grâce à une interface graphique : vous n'avez pas à écrire vous-même le HTML que
vous voulez afficher aux utilisateurs, les CMS s'occupent de le générer.
• vous pouvez modifier le design du site sans avoir à vous soucier de son
contenu. Le nouveau design sera appliqué automatiquement.
• les utilisateurs non enregistrés peuvent lire mais pas poster de messages ;
• les modérateurs peuvent lire et poster des messages, et ils ont en plus la
possibilité de modifier et de supprimer les messages des autres utilisateurs ;
• etc.
La possibilité d'effectuer ou non une action est gérée par ce qu'on appelle
des droits (avoir le droit, ou non, d'effectuer une action).
Dans la plupart des CMS, cette gestion des droits existe et est simple à mettre en
œuvre : il suffit de créer des groupes d'utilisateurs et de leur donner, ou de leur
interdire, l'accès aux différentes parties du site (par exemple l'accès au back-office,
à une partie "membres"...).
Extensions
Même s'il ne s'agit pas à proprement parler d'une caractéristique, les extensions,
aussi appelées par leur nom anglais plugins, sont désormais un incontournable de
tous les CMS.
Les extensions ne sont pas directement incluses dans le CMS (même si certaines
sont installées par défaut !) : il est possible de les installer séparément selon vos
besoins. Ceci permet d'avoir un cœur de CMS contenant uniquement les
fonctionnalités indispensables (celles listées ci-dessus notamment), tout en
augmentant fortement la flexibilité de l'outil.
Avantages
Comme nous venons de le voir, les CMS ont de nombreux avantages.
• Ils sont rapides à mettre en place : quelques heures pour les plus
complexes, quelques minutes pour les plus simples.
• Ils font gagner du temps : développer tout un site web à partir de zéro –
plutôt qu'utiliser des outils préconçus – est chronophage.
• Ils sont soutenus par une communauté : c'est le meilleur moyen d'avoir des
outils performants et variés, et d'obtenir de l'aide. Nous reviendrons plus en
détails là-dessus dans la deuxième partie de ce cours.
• Ils sont faciles à maintenir et à faire évoluer : le Web évolue, les CMS
répercutent ces évolutions et permettent d'avoir un site qui évolue également
(usage, technologie, design, ergonomie, etc.).
Inconvénients
Cependant, comme toute solution technique, les CMS ont également des
inconvénients intrinsèques.
• Ils sont plus susceptibles d'être attaqués : comme tous les sites utilisant le
même CMS partagent un code source commun, il est nettement plus aisé de
pirater un CMS, surtout s'il est mal protégé ou implémenté. Par ailleurs, le
temps investi par un pirate pour attaquer un site web peut être rentabilisé sur
d'autres sites construits avec le même CMS.
• Ils sont moins stables : la complexité des CMS les rend parfois moins
stables – toujours à qualité égale – qu'un site construit sans CMS
2. Framework
Prenons un exemple concret. Il existe dans Symfony2 un composant qui gère les
formulaires HTML : leur affichage, leur validation, etc. Le développeur qui l'utilise se
concentre sur l'essentiel dans son application : chaque formulaire effectue une
action, et c'est cette action qui est importante, pas les formulaires. Étendez ce
principe à toute une application ou tout un site Internet, et vous comprenez l'intérêt
d'un framework ! Autrement dit, le framework s'occupe de la forme et permet au
développeur de se concentrer sur le fond.
Tout d'abord, un framework va vous aider à réaliser un « bon code ». Par « bon
code », j'entends qu'il vous incite, de par sa propre architecture, à bien organiser
votre code. Et un code bien organisé est un code facilement maintenable et
évolutif ! De plus, un framework offre des briques prêtes à être utilisées (le
composant Formulaire de Symfony2 par exemple), ce qui vous évite de réinventer la
roue, et surtout qui vous permet d'utiliser des briques puissantes et éprouvées. En
effet, ces briques sont développées par des équipes de développeurs chevronnés,
elles sont donc très flexibles et très robustes. Vous économisez ainsi des heures de
développement !
Enfin, le dernier avantage est la communauté soutenant chaque framework. C'est
elle qui fournit les tutoriaux ou les cours, de l'aide sur les forums, et bien sûr les
mises à jour du framework. Ces mises à jour sont très importantes : imaginez que
vous codiez vous-mêmes tout ce qui est connexion utilisateur, session, moteur
de templates, etc. Comme il est impossible de coder sans bugs, vous devriez
logiquement corriger chaque bug déclaré sur votre code. Maintenant, imaginez que
toutes les briques de votre site, qui ne sont pas forcément votre tasse de thé, soient
fournies par le framework. À chaque fois que vous ou les milliers d'autres
utilisateurs du framework trouverez un bug, les développeurs et la communauté
s'occuperont de le corriger, et vous n'aurez plus qu'à suivre les mises à jour. Un vrai
paradis !
Il existe plein d'autres avantages non détailler, mais un framework, c'est aussi :
• un support à long terme garanti et des mises à jour qui ne cassent pas la
compatibilité ;
• etc.
Les contre
Vous vous en doutez, avec autant d'avantages il y a forcément des inconvénients.
Et bien, figurez-vous qu'il n'y en a pas tant que ça !
S'il ne fallait en citer qu'un, cela serait évidemment la courbe d'apprentissage qui
est plus élevée. En effet, pour maîtriser un framework, il faut un temps
d'apprentissage non négligeable. Chaque brique qui compose un framework a sa
complexité propre qu'il vous faudra appréhender.
Notez également que pour les frameworks les plus récents, tels que Symfony2
justement, il faut également être au courant des dernières nouveautés de PHP. La
programmation orientée objet, les namespaces. De plus, connaître certaines
bonnes pratiques telles que l'architecture MVC est un plus.
Mais rien de tout cela ne doit vous effrayer ! Voyez l'apprentissage d'un framework
comme un investissement : il y a un certain effort à fournir au début, mais les
résultats se récoltent ensuite sur le long terme !
Installer WordPress en Local peut avoir d’autres objectifs tels que bénéficier d’un
environnement de développement ou encore créer une copie de son site en ligne
La barre d’outils se situe en haut du Tableau de Bord WordPress. Très utile, elle
regroupe des liens vers des fonctions essentielles liées à la gestion de votre et site.
Une bonne connaissance et utilisation de cette barre d’outils vous fera économiser
un temps précieux.
Mises à Jour
L’onglet « Mises à jour » comme son nom l’indique sert à effectuer des mises à jour.
Que ce soit pour mettre à jour WordPress lui même, vos thèmes ou vos extensions,
c’est ici que cela se passe.
Articles
Médias
C’est ici que vous gérerez vos médias : images, vidéos et sons. Le survol de cet
onglet dévoile deux liens : « Bibliothèque » et « Ajouter ».
Pages
Apparence
Cet onglet est probablement l’un des plus important du Tableau de Bord de
WordPress. En effet en survolant ce lien, vous ferai apparaître, dans un sous menu,
les liens « Thèmes », « Personnaliser », « Widgets », « Menus » et « Éditeur ». Vous y
gérerez vos thèmes, widgets et menus.
Extensions
E n c o r e u n e s p a c e p r i m o r d i a l d u Ta b l e a u d e B o r d Wo r d P r e s s .
L’onglet « Extensions » est le lieu où vous gérerez vos extensions (ou plugins)
WordPress. Une extension et un petit script que vous ajoutez à WordPress afin de
lui apporter de nouvelles fonctionnalités. Au survol, l’onglet extensions déploie trois
liens: « Extensions installées », « Ajouter » et « Éditeur ».
Utilisateurs
Si vous voulez travailler avec des collaborateurs sur votre site, ou permettre à vos
lecteur de s’abonner à votre site, l’onglet « Utilisateurs » sera un passage obligé
du Tableau de Bord WordPress. Vous pourrez y créer de nouveaux utilisateurs et
leurs attribuer un des cinq rôles disponibles: Super Administrateur, Administrateur,
Éditeur, Auteur, Contributeur, Abonné. Le survol de cet onglet dévoile les
liens « Tous les utilisateurs », « Ajouter » et « Votre profil ».
Outils
Réglages
Au menu : « Général », « Ecriture », « Lecture », « Discussion », « Medias » et «
Permaliens ».
Une petite visite des Galerie de Thèmes WordPress sur internet peut vous aider à
dresser le portrait robot du thème de votre site. Trouver celui qui répond à toutes
vos attentes ne sera pas toujours possible, le jeu sera alors de trouver celui qui s’en
Très souvent, les boutiques de thèmes WordPress utilise un ou plusieurs des termes
suivants pour qualifier leurs thèmes, il est important de se familiariser avec ce
vocabulaire afin de cibler rapidement les thèmes répondant à vos critères de
recherche.
ecommerce : Thème conçu pour vendre des produits en ligne. Ils mettent en avant
vos produits et donnent des solutions afin de gérer tout le processus de vente, en
général en installant un plugin dédié à cet effet comme le célèbre WooCommerce.
Fullscreen : Met en avant vos photos en les affichant en plein écran. Plutôt destiné
aux artistes.
Gratuit : Qualifie un thème gratuit. Propose souvent des fonctionnalités bien moins
avancées que dans un thème Premium, mais peut suffire à votre bonheur, tout
dépend de ce que vous souhaitez réaliser.
Minimal : Qualifie un thème mettant en avant le contenu sous une forme épurée,
mais néanmoins élégante.
Multi-Purpose : Véritable couteaux suisses, ce sont des thèmes à tout faire. Avec
eux vous pourrez réaliser des sites à buts divers et variés.
Photo : Dédié aux photographes. Ici limage est au centre des attentions.
Pinterest-Styled : Ici vos contenu son mis en avant à la manière du célèbre réseau
social Pinterest, à savoir épinglés à l’écran. Originalité garantie.
Maintenant que vous vous êtes familiarisé avec le vocabulaire ci-dessus, voici deux
moyens de choisir votre thème WordPress.
Deuxième Méthode : Installer n’importe quel thème à partir du Tableau de Bord
WordPress
Une fois télécharger, aller dans Apparence puis cliquez sur thème. Dans l’onglet
installer des thèmes, cliquer sur le lien envoyer, un input file apparaît. Cliquez sur
Choisissez un fichier pour sélectionner le template téléchargé puis sur installer
maintenant.
Quoi retenir?
• La Barre d’Outils : elle permet d’accéder à des raccourcis pour créer des
articles et des pages, effectuer les mises à jour, gérer les commentaires, ou
visualiser son site.
• La Barre Latérale : Ici vous accéderez à tous les onglets qui vous permettront
de gérer tous les aspects de votre site : Articles, Pages, Médias,
Commentaires, Apparence, Extensions, Utilisateurs, Outils et Réglages.
FTP veut dire File Transfer Protocol. Il permet, depuis un ordinateur, de copier des
fichiers vers un autre ordinateur du réseau, ou encore de supprimer ou de modifier
des fichiers sur cet ordinateur.
Filezilla est un client FTP rapide disposant d'une interface facile à utiliser.
Gestionnaire de site, glisser-déposer et file d'attente de transfert vous aide à
contrôler vos tâches. Filezilla peut se connecter à pratiquement tous les serveurs
FTP, même si vous êtes derrière un pare-feu ou un proxy.
Rendez vous chez votre hébergeur qui vous fournira les identifiants (souvent envoyé
par mail):
Hôte: ftp.frikbook.com,
Protocole: FTP,
Identifiant: ppjjoel ,
Le port est souvent le 21 par défaut FTP, Type d’authentification (laisser par défaut),
etc.
Vous pouvez télécharger FileZilla en vous rendant sur la page suivante: https://
filezilla-project.org/.
Lors de la première connexion du Client FTP, une fenêtre pop-up lié au certificat
SSL va s'ouvrir. Il est nécessaire de confirmer ce pop-up afin de pouvoir vous
connecter à votre espace Web.
Pour publier un site sur FileZilla il faut charger vos fichiers directement sur le
serveur. Vous avez 2 solutions pour charger vos fichiers.
2. Sélectionnez votre fichier et faites un clic droit sur votre souris puis sélectionnez
"Envoyer".
Pour créer un dossier il vous suffit un clic droit avec votre souris sur la colonne de
gauche. Vous pouvez aussi renommer et éditer les droits d'accès au fichier.
1. Ouvrez votre logiciel FileZilla, cliquez sur l'onglet "Fichier" puis sur "Gestionnaire
de site"
Vous êtes désormais en mesure de vous connecter à votre espace web avec le
logiciel FileZilla afin de publier votre site sur internet.
Conclusion générale
Le webmaster est un véritable touche-à-tout ! Il doit pouvoir intervenir à tous les
niveaux : webdesign, bases de données, marketing, référencement, rédaction et
mise en avant de contenus, gestion des serveurs.
Les formulaires sont le moyen le plus pratique pour transmettre des informations à
votre site. PHP est capable de récupérer les données saisies par vos visiteurs et de
les traiter. Ces données envoyées via un formulaire se retrouvent dans un array
$_POST. De la même manière que pour les URL, il ne faut pas donner sa confiance
absolue aux données que vous envoie l'utilisateur. Il pourrait très bien ne pas
remplir tous les champs voire trafiquer le code HTML de la page pour supprimer ou
ajouter des champs. Traitez les données avec vigilance. Pour éviter la faille XSS, il
suffit d'appliquer la fonction htmlspecialchars sur tous les textes envoyés par vos
visiteurs que vous afficherez.
Bibliographie
Ayekowoui Joel, Juin 2014. Webmaster Adintaf Formation. In Création de
page Web en HTML, CSS et initiation à PHP/MySQL et JavaScript;
ENGELS Jean PHP 5 – Cours et exercices; Disponible sur https://
www.eyrolles.com/download/9782212114072/exercices-php5.pdf [Consulter
le 13 Mars 2018]
OpenClassrooms : Concevez votre site web avec PHP et MySQL; Disponible
sur https://www.apprendre-php.com/tutoriels/tutoriel-12-traitement-des-
formulaires-avec-get-et-post.html [Consulter le 14 Mars 2018]
Georges Gardarin : Cours complet pour apprendre les systèmes de gestion de
bases de données; Disponible sur https://sgbd.developpez.com/tutoriels/cours-
complet-bases-de-donnees/ [Consulter le 14 Mars 2018]
OpenClassrooms : Administrez vos bases de données avec MySQL; Disponible
sur https://openclassrooms.com/courses/administrez-vos-bases-de-donnees-
avec-mysql [Consulter le 14 Mars 2018];
3W ACADEMY : Devenez Webmaster en 3 mois; Disponible sur http://
www.blogduwebdesign.com/webdesign/comment-devenir-webdesigner-3-les-
notions-a-connaitre/122 [Consulter le 10 Mars 2018];
IUT de Nice - Département INFORMATIQUE : Concepts et langages des
Bases de Données Relationnelles
Olivier Losson, Université de Lille - Sciences et Technologies, Masters ASE et
GI Bases de Données Relationnelles