PHP permet de réaliser des pages dynamiques, c'est à dire que le code HTML de la page n'est pas fixe. La page est générée par le serveur puis envoyée à l'internaute.
Une page web écrite en php s'exécute donc sur le serveur, qui, à partir du code PHP génère du HTML qu'il envoie alors à l'internaute. Il est donc très important de garder à l'esprit que le code PHP est exécuté par le serveur et non pas par l'ordinateur de l'internaute qui au final reçoit du HTML.
PHP permet donc de générer du HTML, il est donc important d'avoir quelques connaissances en HTML avant de commencer à coder en PHP.
Comme le code PHP s'exécute sur le serveur, il faut naturellement un serveur WEB pour tester le code PHP que nous allons écrire. On peut directement utiliser un serveur WEB fournit par un hébergeur. Pour la partie développement et tests il est plus pratique d'utiliser un serveur local à exécuter sur son ordinateur comme EasyPHP par exemple (il en existe d'autres...).
Il peut être intéressant d'installer EasyPHP sur une clé USB afin de pouvoir emporter et exécuter votre projet sur n'importe quel ordinateur.
Pour installer EasyPHP sur votre clé USB, indiquer lors de l'exécution de l'assistant d'installation le chemin vers votre clé USB comme le montre la capture d'écran ci-dessous (la lettre correspondant à votre clé USB sera sans doute différente).
Eviter les espaces, les lettres accentuées et autres caractères spéciaux dans le chemin d'installation de EasyPHP!
Pour lancer l'exécution d'EasyPHP, double cliquer sur le fichier "EasyPHP-Dev-Server-14.1VC9.exe" situé dans le dossier "EasyPHP" de votre clé USB.
L'icône "EasyPHP" apparait alors dans la zone de notification (près de l'heure en bas à droite de l'écran).
Un clic droit sur l'icône EasyPHP dans la zone de notification permet d'accéder aux différents paramètres de réglages ainsi qu'au dossier où vos fichiers PHP devront être déposés (captures d'écrans ci-contre et ci-dessous).
Les fichiers PHP sont à déposer dans le dossier "localweb".
Dans notepad++, créer un nouveau fichier et taper le code suivant :
<?php echo "bonjour"; ?>
Enregistrer ce fichier sous le nom "premier.php" dans le dossier "F:\EasyPHP\data\localweb" (Votre clé n'aura peut-être pas la lettre F...). Avec un navigateur Web, pointer sur l'adresse "http://127.0.0.1/premier.php". Visualiser le code source de la page "premier.php".
Dans votre rapport, placer côte à côte le code php et le code source de la page que le navigateur à reçu.
Le code php peut s'écrire directement dans du code html. Créer un nouveau fichier et taper le code suivant :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Titre de votre page WEB</title>
</head>
<body>
<p>Contenu de votre page WEB.</p>
<p><?php echo "Le contenu de ce paragraphe est généré par php!"; ?></p>
</body>
</html>
Pour un affichage correct des caractères accentués, convertir votre fichier en UTF-8 comme indiqué ci-dessous :
Enregistrer ce fichier sous le nom "second.php" dans le dossier "F:\EasyPHP\data\localweb" (Votre clé n'aura peut-être pas la lettre F...). Avec un navigateur Web, pointer sur l'adresse "http://127.0.0.1/second.php". Visualiser le code source de la page "second.php".
Dans votre rapport, placer côte à côte le code php et le code source de la page que le navigateur à reçu.
Créer un nouveau fichier et taper le code suivant :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Titre de votre page WEB</title>
</head>
<body>
<p>Contenu de votre page WEB.</p>
<p><?php echo "Le contenu de ce paragraphe est généré par php!"; ?></p>
<p><?php
echo "Bonjour, nous sommes le <b>" . date("d-m-Y") . "</b>";
echo " il est : <b>" . date("H:i:s") . "</b>";
?></p>
</body>
</html>
Enregistrer ce fichier sous le nom "dynamic.php" dans le dossier "F:\EasyPHP\data\localweb". Avec un navigateur Web, pointer sur l'adresse "http://127.0.0.1/dynamic.php". Visualiser le code source de la page "dynamic.php". Rafraichir la page, l'heure doit changer! Visualiser de nouveau le code source de la page "dynamic.php" et comparer au précédent.
Dans votre rapport, placer côte à côte le code php et le code source de la page que le navigateur à reçu.
Modifier le fichier dynamic.php comme indiqué ci-dessous :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Titre de votre page WEB</title>
</head>
<body>
<p>Contenu de votre page WEB.</p>
<p><?php echo "Le contenu de ce paragraphe est généré par php!"; ?></p>
<p><?php
$heure = date("H");
if ($heure >= 0 && $heure < 17) // Si l'heure est comprise entre 0:00 et 17h59
{ /* Alors on affiche Bonjour */
$message = "Bonjour";
}
else
{ // Sinon on affiche Bonsoir
$message = "Bonsoir";
}
echo "$message, nous sommes le <b>" . date("d-m-Y") . "</b>";
echo " il est : <b>" . date("H:i:s") . "</b>";
?></p>
</body>
</html>
Observer le fonctionnement (remplacer dans la ligne $heure = date("H"); le H par s pour faciliter l'observation!)
Dans votre rapport, placer côte à côte le code php et le code source de la page que le navigateur à reçu.
Créer un nouveau fichier "tablesdemultiplications.php" et y coller le code ci-dessous :
<?php
function LigneTable($table,$multiplicateur) { // Déclaration et implémentation de la fonction "LigneTable"
$result = '<tr><td>' . $table . ' x ' . $multiplicateur . '</td><td>= ' . $table * $multiplicateur . '</td></tr>';
return ($result); // La fonction "LigneTable" renvoie la chaine de caractères $result
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Les tables de multiplication</title>
<style type="text/css"> <!-- Un peu de CSS ! -->
a:link {color: blue;}
a:visited {color: blue;}
a:hover {color: red;}
a:active {color: red;}
td {width:50px;}
</style>
</head>
<body>
<?php
if (isset($_GET['table'])) {
$t = $_GET['table'];
}
else {
$t = 2; // Par défaut la table de 2 est affichée
}
echo '<h1>La table de ' . $t . '</h1>';
?>
<p>
<?php
for($j=0;$j<=10;$j++) { // Une boucle affiche des liens vers les 11 tables (de 0 à 10)
echo ' <a style="width:15px; align:center; padding-left:10px; padding-right:10px; display:inline-block;"';
echo ' href="tablesdemultiplications.php?table=' . $j . '">' . $j . '</a> ';
}
?>
</p>
<table>
<?php
for($i=0;$i<=10;$i++) { // Une deuxième boucle for affiche la table sélectionnée
echo LigneTable($t,$i); // Utilisation de la fonction "LigneTable" définie au début du programme
}
?>
</table>
</body>
</html>
Vous devez obtenir l'affichage ci-dessous. La table affichée change en fonction du lien cliqué. Observez l'URL de la page à chaque fois que vous cliquez sur un des liens.
Dans votre rapport, placer côte à côte le code php et le code source de la page que le navigateur à reçu (pour la table de 6).
Le passage de paramètres dans l'URL est un risque car un utilisateur mal intentionné peut directement le modifier à sa guise (voir capture d'écran ci-dessous). Dans cet exemple la conséquence n'est pas très grave mais pourrait l'être dans d'autres cas.
Dans le cas où on utilise cette méthode, il faut impérativement tester les paramètres reçus dans l'URL afin d'être certain qu'ils ne comportent pas de risques.
Faire un tableau qui affiche toutes les couleurs en fonction de leur code RGB :
<table style="width:250px;"><col span="2" style="width:125px;">
<tr><td>rgb(255,0,0)</td><td style="background-color:rgb(255,0,0);"></td></tr>
<tr><td>rgb(0,255,0)</td><td style="background-color:rgb(0,255,0);"></td></tr>
<tr><td>rgb(0,0,128)</td><td style="background-color:rgb(0,0,128);"></td></tr>
<tr><td>rgb(255,255,64)</td><td style="background-color:rgb(255,255,64);"></td></tr>
</table>
L'image ci-dessous montre le tableau obtenue avec le morceau de code HTML ci-dessus :
function AfficheLigneCouleur($red, $green, $blue)
{
$result = '<tr><td>rgb(' . $red . ',' . $green . ',' . $blue . ')</td>';
$result = $result . '<td style="background-color:rgb(' . $red . ',' . $green . ',' . $blue . ');"></td></tr>';
return ($result);
}
Dans votre rapport, placer côte à côte le code php et l'algorithme correspondant. Insérer également une copie d'écran du rendu de la page web dans un navigateur.
Afficher un tableau affichant la conversion des nombres de 1 à 2019 en chiffres Romains.
Dans votre rapport, placer côte à côte le code php et l'algorithme correspondant. Insérer également une copie d'écran du rendu de la page web dans un navigateur.
Vidéo montrant la méthode de conversion d'un nombre en chiffres Romains :
Remarques :
Le code HTML généré par votre code PHP devra être valide.
La déclaration et le parcours d'un tableau se fait de la manière ci-dessous :
Afficher un tableau affichant les mille premiers nombres premiers.
Vous devez créer 2 fonctions :
Faire les algorithmes des deux fonctions avant de commencer à coder et les montrer au professeur.
Dans votre rapport, placer côte à côte le code php et l'algorithme correspondant. Insérer également une copie d'écran du rendu de la page web dans un navigateur.
Remarques :
Article connexe : Premiers pas en HTML