Cours Web Php&mysql
Cours Web Php&mysql
Cours Web Php&mysql
Prérequis : pour utiliser PHP, il faut connaître au préalable les langages HTML et CSS.
Vous pouvez suivre le cours : "Apprenez à créer votre site web avec HTML5 et CSS3".
Qu'est-ce qu'un serveur et un client ? Comment rend-on son site dynamique ? Et que
signifient PHP et MySQL ?
1 - Les sites statiques : réalisés en HTML et CSS, leur contenu ne peut être mis à jour que
par le webmaster.
2 - Les sites dynamiques : réalisés avec d'autres outils comme PHP et MySQL en plus de
HTML et CSS, ils permettent aux visiteurs de participer à la vie du site, de poster des
messages.
I - Introduction à PHP et MySQL
Nous savons désormais que PHP s'exécute sur le serveur, et que son rôle est de générer
des pages web. Cependant, seul un serveur peut lire du PHP ; or, votre ordinateur n'est pas
un serveur.
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 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).
/**Nous n'en aurons pas besoin immédiatement, mais autant l'installer de suite.**/
Outils nécessaires :
Un éditeur de code comme Visual Studio Code
Sous Windows ou Mac, il faut installer MAMP
Sous Linux, il faut installer XAMPP
/***Vérifions maintenant que XAMPP est bien installé. Je vous propose de créer un projet de
test que nous appellerons tests.
Pour ce faire, cliquez sur le bouton "Explorer" de XAMPP Control Panel et rendez-vous dans
le dossier racine htdocs . Puis, créez un nouveau sous-dossier que vous appellerez tests,
comme sur cette image :***/
Résumé
Pour créer des sites web dynamiques, nous devons installer des outils qui transforment
notre ordinateur en serveur, afin de pouvoir tester notre site.
Bien qu'il soit possible d'installer ces outils séparément, il est plus simple pour nous
d'installer un paquetage tout prêt : XAMPP.
Il est conseillé d'utiliser un éditeur de texte qui colore le code source, comme Visual Studio
Code, pour programmer convenablement en PHP.
/**Tout est installé, maintenant passons à la pratique et écrivons notre premier script.**/
II - Fondamentaux de PHP
C'est à l'intérieur que l'on mettra du code PHP, voici une balise PHP vide :
<?php ?>
La balise PHP que nous venons de découvrir s'insère au milieu du code HTML:
Exemple: on fait un exemple.
Peut-on placer une balise PHP n'importe où dans le code ? Oui, on peut le mettre partout,
on montre des exemples.
Voici un exemple basique montrant comment utiliser echo pour afficher du texte :
/**Le mot « texte » sera affiché en gras grâce à la présence des balises <strong> et
</strong>**/
<p>
Cette ligne a été écrite entièrement en HTML.<br />
<?php echo("Celle-ci a été écrite entièrement en PHP."); ?>
</p>
2 - Allez à l'adresse http://localhost/tests . Une page web s'ouvre, indiquant tous les fichiers
qui se trouvent dans le dossier tests . Vous devriez avoir le fichier affichertexte.php .
👀
3 - Cliquez dessus : votre ordinateur génère alors le code PHP puis ouvre la page. Vous
avez le résultat devant vos yeux ébahis.
Le même résultat peut être obtenu dans votre navigateur, en allant directement à l'adresse
suivante : http://localhost/tests/affichertexte.php .
b - Les commentaires
// Déclaration de variables
$nom = "John";
$age = 25;
$salaire = 1500.50;
$estEtudiant = true;
l'interpolation en PHP permet d'inclure directement des variables dans une chaîne de
caractères. PHP interprète la variable et remplace son contenu dans la chaîne, ce qui rend
votre code plus lisible et concis.
Exemple:
Dans cet exemple, le contenu de la variable $fullname est directement inclus dans la chaîne
entourée de guillemets doubles, et le résultat affiché sera "Bonjour, Raissa Banhoro ".
Attention à ne pas oublier d'entourer la variable d'accolades pour éviter les erreurs.
Dans cet exemple, echo "Bonjour, $fullname123!"; nous aurons un message d'erreur
indiquant que la variable $fullname123 n'est pas définie. Maintenant, si nous ajoutons les
accolades echo "Bonjour, {$fullname}123!"; alors la variable est interprétée correctement et
nous aurons "Bonjour, Simplon123!".
/**Si vous écrivez le code précédent entre guillemets simples, vous allez avoir une drôle de
surprise :**/
Dans cet exemple, la chaîne "Bienvenue, " est concaténée avec le contenu de la variable
$nom et la chaîne finale est entourée de guillemets simples. Le résultat affiché sera
également "Bienvenue, Raissa Banhoro!".
La principale différence réside dans la façon dont les guillemets doubles et simples traitent
les variables. Avec les guillemets doubles, les variables sont directement interprétées et leur
contenu est inclus dans la chaîne. Avec les guillemets simples, il faut utiliser l'opérateur de
concaténation pour joindre les différentes parties de la chaîne, incluant les variables.
$nom = "Charlie";
$age = 30;
$a = 10;
$b = 5;
// Opérateurs arithmétiques
$addition = $a + $b;
$soustraction = $a - $b;
$multiplication = $a * $b;
// Opérateurs de comparaison
$estEgal = ($a == $b);
$estSuperieur = ($a > $b);
// Opérateurs logiques
$etLogique = ($a > 0 && $b > 0);
$ouLogique = ($a > 0 || $b > 0);
$note = 75;
switch ($jour) {
case "Lundi":
echo "C'est le début de la semaine.";
break;
case "Vendredi":
echo "C'est bientôt le week-end.";
break;
default:
echo "C'est un jour ordinaire.";
}
// Boucle for
for ($i = 1; $i <= 5; $i++) {
echo "Itération " . $i . "<br>";
}
// Boucle while
$j = 0;
while ($j < 3) {
echo "Itération " . ($j + 1) . "<br>";
$j++;
}
B. Fonctions en PHP
function afficherMessage() {
echo "Bonjour, bienvenue!";
}
// Appel de la fonction
afficherMessage();
Ces fonctions prédéfinies offrent une puissante boîte à outils pour simplifier le traitement des
données et améliorer l'efficacité du code.
Résumé
- Les visiteurs du site sont appelés les "clients". Ils demandent au serveur qui héberge
le site de leur transmettre les pages web.
A. Introduction à MySQL
Dans cet exemple, une base de données appelée "ma_base_de_donnees" est créée, puis
une table "utilisateurs" avec des colonnes id, nom et age.
Les commandes SQL de base permettent d'interagir avec les données stockées dans les
tables.
- La commande SELECT est utilisée pour récupérer des données. Par exemple, pour
sélectionner tous les utilisateurs dans la table "utilisateurs" :
-- Sélection de tous les utilisateurs
SELECT * FROM utilisateurs;
- La commande INSERT permet d'ajouter de nouvelles données à une table. Voici
comment ajouter un nouvel utilisateur :
-- Insertion d'un nouvel utilisateur
INSERT INTO utilisateurs (nom, age) VALUES ('John Doe', 30);
- La commande DELETE est utilisée pour supprimer des données de la table. Pour
supprimer un utilisateur par son nom :
-- Suppression de l'utilisateur John Doe
DELETE FROM utilisateurs WHERE nom = 'John Doe';
Ces commandes de base illustrent comment interagir avec une base de données MySQL en
utilisant SQL pour sélectionner, insérer, mettre à jour et supprimer des données dans une
table.
VI - Projets Pratiques
Objectifs :
Les applications logicielles sont des cibles attractives pour les attaquants car elles
peuvent fournir un accès aux données sensibles, telles que des informations
personnelles, des données financières ou des secrets commerciaux.
La sécurité des applications fait référence à l'ensemble des mesures, des pratiques
et des stratégies mises en place pour protéger les applications informatiques contre
les menaces, les attaques et les vulnérabilités. Elle englobe la protection des
données sensibles, la prévention des accès non autorisés, la garantie de l'intégrité
des informations et la sécurisation des transactions. La sécurité des applications
concerne également la mise en place de contrôles et de processus visant à réduire
les risques liés à l'utilisation des applications, que ce soit dans un contexte personnel
ou professionnel.
La sécurité des applications est importante pour protéger les données sensibles,
maintenir la disponibilité des applications et préserver la réputation de l'organisation.
Une menace est un événement ou une action qui peut porter atteinte à la sécurité
d'une application. Une vulnérabilité est une faiblesse dans une application qui peut
être exploitée par un attaquant pour lancer une attaque.
1 - Menaces d'injection
Les attaques d'injection consistent à injecter du code malveillant dans une application.
Les menaces d'injection représentent une forme courante d'attaque où des acteurs
malveillants insèrent du code indésirable dans une application.
Cette manipulation peut se produire lorsque des données non fiables sont intégrées aux
entrées de l'application, exploitant ainsi les vulnérabilités pour injecter du code malveillant.
Les attaques d'injection peuvent prendre diverses formes, telles que les attaques SQL, où
des commandes SQL sont injectées pour accéder ou altérer des bases de données.
3 - Menaces de phishing
Les attaques de phishing consistent à envoyer des e-mails ou des messages frauduleux qui
incitent les utilisateurs à divulguer des informations sensibles.
Les menaces de phishing représentent une forme sournoise d'attaque, où des acteurs
malveillants envoient des e-mails ou des messages frauduleux, souvent se faisant passer
pour des entités de confiance, dans le but de tromper les utilisateurs et de les inciter à
divulguer des informations sensibles telles que des identifiants, des mots de passe ou des
informations financières. Ces attaques exploitent souvent des techniques d'ingénierie
sociale pour induire les victimes en erreur et les inciter à cliquer sur des liens malveillants.
Les attaques de phishing peuvent être utilisées pour obtenir des informations d'identification,
des informations personnelles ou des données financières.
Les attaques par déni de service (DoS) visent à rendre une application inaccessible.
Les menaces par déni de service (DoS) représentent une forme d'attaque visant à rendre
une application, un service ou un réseau indisponible en submergeant délibérément ses
ressources. Les attaquants utilisent diverses techniques pour saturer la capacité du
système, entraînant des ralentissements ou un arrêt complet des services pour les
utilisateurs légitimes.
Ces attaques peuvent prendre la forme de bombardements de requêtes, d'inondations de
données, ou d'exploitation de vulnérabilités pour épuiser les ressources disponibles.
5 - Vulnérabilités d'injection
Les vulnérabilités d'injection représentent des points faibles dans le code ou la configuration
d'une application, susceptibles d'être exploités par des attaques d'injection malveillantes.
Ces faiblesses peuvent résider dans une gestion insuffisante des entrées utilisateur,
permettant à des attaquants d'injecter du code indésirable. Les vulnérabilités d'injection
peuvent inclure des erreurs de programmation, un manque de validation des données
d'entrée, ou des lacunes dans la sécurisation des requêtes.
Conclusion partielle
Chapitre II :
Objectifs :
La sécurité des applications est essentielle pour garantir la protection des données
sensibles et le bon fonctionnement des systèmes informatiques. Trois principes
fondamentaux guident la conception et la mise en œuvre de mesures de sécurité efficaces :
la confidentialité, l'intégrité et la disponibilité.
a - La confidentialité
Définition
La confidentialité est un principe fondamental de la sécurité de l'information. Elle vise à
protéger les données sensibles contre les accès non autorisés. Les données sensibles sont
celles qui peuvent être utilisées à des fins nuisibles, telles que la fraude, l'usurpation
d'identité ou le chantage.
Mesures de sécurité :
Contrôle d'accès :
- Cette mesure vise à déterminer qui a le droit d'accéder à quelles informations dans
un système.
- Les mécanismes de contrôle d'accès peuvent inclure des identifiants et des mots de
passe, des cartes d'accès, des biométriques, etc.
- Les privilèges d'accès doivent être définis de manière granulaire pour garantir que
chaque utilisateur ou entité n'a accès qu'aux données nécessaires à l'exécution de
ses tâches.
b - La disponibilité
Définition : La disponibilité consiste à garantir que les applications sont accessibles aux
utilisateurs autorisés lorsqu'ils en ont besoin.