Université Mohamed Premier Année universitaire 2024/2025
Faculté des Sciences Filière SMI S6
TP 1 Module « TC WEB Avancée » (PHP)
I . Prise en main de l’environnement Apache/PHP/MySQL dans Wamp-Server
1. L’application « WampServer »
« WampServer » est une plate-forme de développement Web sous Windows pour des
applications Web dynamiques (SPIP, OwnCloud, Wordpress…) à l’aide du serveur Apache2, du
langage de scripts PHP et d’une base de données MySQL. Il possède également PHPMyAdmin
pour gérer plus facilement vos bases de données.
« WampServer » offre la possibilité d’installer pratiquement toutes les versions de Apache, PHP
et MySQL existantes, de quoi reproduire fidèlement la configuration de votre serveur de
production.
Cette application est disponible gratuitement (sous licence GPL) en deux versions : 32 et 64
bits.
2. Télécharger Wampserver sur https://www.wampserver.com/
Avant de télécharger « WampServer », il faut vérifier quel est le type du système de votre PC :
32 ou 64 bits ?
1. Cliquez sur le bouton « Démarrer »
2. Cliquez sur « Panneau de configuration »
1. Cliquez sur « Système et sécurité » 4. Cliquez sur « Système » ou Sur le bureau, faites un
clic droit sur « Ordinateur »
2. Dans le menu contextuel, sélectionnez « Propriétés »
Pour télécharger « Wampserver », suivez le lien : http://www.wampserver.com/ En
fonction du type de système relevé, téléchargez la version « Wampserver » adaptée à votre
PC.
3. Les ports 80, 443 et 3306 !
Après installation si le W dans la barre de tache reste toujours en rouge il y’a un problème. Vous
devez vérifier que votre pare-feu ne bloque pas les ports 80 (protocole TCP / HTTP), 443
(protocole TCP / HTTPS) et 3306 (TCP / MySql Server).
4. Installer et configurer WampServer
Découvrir le menu sur votre barre de tache en tapant l’icône passe du W au W vérifier qu’elle
est en verte.
Installez « Wampserver » en exécutant le fichier « wampserver2.2e-…exe »
Si vous avez réalisé l’installation dans le dossier C:\wamp, vous obtenez l’arborescence
1. Cliquez droit sur l’icône « Wampserver » en bas à droite de la barre des tâches 2.
Sélectionnez le dossier « Langue » puis « french »
3. Taper PHPINFO dans votre navigateur lister la page pour savoir quels modules vous
pouvez utiliser sur votre serveur local, il vous suffit de cliquer sur le lien phpinfo() de
la page d’accueil de votre serveur local Wampserver
1. Modifiez les paramètres du fichier « php.ini »
• « upload_max_filesize » : La taille maximale en octets d’un fichier à charger.
• « post_max_size » : Définit la taille maximale des données reçues par la méthode POST.
Cette option affecte également les fichiers chargés. Pour charger de gros fichiers, cette
valeur doit être plus grande que la valeur de « upload_max_filesize ». Si la limitation de
mémoire est activée par votre script de configuration, « memory_limit » affectera
également les fichiers chargés. De façon générale, « memory_limit » doit être plus grand
que « post_max_size ».
• « max_execution_time » : Fixe le temps maximal d’exécution d’un script, en secondes.
La configuration par défaut est de 30 secondes. En fonction de la performance du PC sur
lequel est installé Wampserver, augmentez cette valeur.
Pour plus d’informations, consultez la ressource « Description des directives
internes du php.ini » : http://php.net/manual/fr/ini.core.php
1. Cliquez sur l’icône « Wampserver » en bas à droite de la barre des tâches
2. Sélectionnez le dossier « PHP » puis ouvrez le fichier « php.ini » dans l’application «
notepad »
3. Dans « notepad », sélectionnez le menu « Édition » puis « Rechercher »
4. Dans le formulaire « Rechercher », saisir :
« max_execution_time » puis augmentez la valeur de 30 à « 300 » secondes ;
« memory_limit » puis augmentez de 8M à « 180M » ;
« post_max_size » puis augmentez de 8M à « 120M » ; «upload_max_filesize
» puis augmentez de 2M à « 100M ».
5. Redémarrez WampServer
1. Cliquez sur l’icône « Wampserver » en bas à droite de la barre des tâches
2. Sélectionnez « Redémarrez les services »
3. Vérifiez que le serveur est sur la position « en ligne » (« Passer hors ligne »
affiché)
4. Observations et personalisation du menu wamp
1. L’icône de « Wampmanager » dans la barre des tâches doit être de couleur verte. Si ce
n’est pas le cas, vous ne pourrez pas lancer la visualisation d’une page php par le
navigateur ou lancer PhpMyAdmin ou modifier config.inc.php.
2. « Serveur hors ligne » signifie que Wampserver est uniquement en local (sur votre PC).
3. « Serveur en ligne » signifie que Wampserver est connecté à votre réseau et que tous
les PC ou tablettes numériques appartenant à votre réseau (configurés sur la même
plage d’adresse IP) peuvent accéder à vos sites et à vos bases de données (à moins que
vous ayez effectué les modifications sécuritaires qui s’imposent).
4. Vérifications à effectuer si vous avez un problème :
http://forum.wampserver.com/read.php?1,88043
5. Pour modifier Wamp ouvrer le dossier Wamp et le fichier wampserver.tpl avec note-pad
pour créer un sous menu sur Wamp regarder la ligne 124 qui a : Type: submenu;
Caption: "Apache"; SubMenu: apacheMenu; Glyph: 3 copier cette ligne et remplacer
Apache par SMIS6
6. Pour créer un lien prenez exemple sur la ligne 121 :
Type: item; Caption: "${w_localhost}"; Action: run; FileName: "${c_navigator}";
Parameters: "http://localhost/"; Glyph: 5
7. Juste avant [apacheMenu] ; WAMPAPACHEMENUSTART Remplacer apache par
tpsmi6php2023
8. Recopier dedans la ligne du 6
9. Remplacer w localhost par tpsmi6-php-2022 et http://localhost/ par http://localhost/
tpsmi6php-2023
10. Cliquer sur refresh de wamp server
Le dossier du travail WWW
- "DocumentRoot" : c'est l'emplacement du site sur le PC (voir ci-dessus) par défaut on a :
c:/wamp/www, Vérifiez si Wamp est installé sur votre machine.
-Ecrire un script PHP qui affiche bonjour je suis un programmeur PHP, enregistrez sous
C:/wamp/www/tpsmi6-php-2022/index.php ouvrez ce fichier directement avec votre navigateur
web. Taper le code PhP suivant < ?php
Echo ‘Bonjour SMIS6’ ;
?>
-Vos remarques ? OUI Php ne peut pas être interprété par le navigateur.
-Maintenant lancer Wamp ou Easyphp essayez de le découvrir, tapez dans votre navigateur
localhost ou 127.0.0.1dans le navigateur web. PHP est interprété par le serveur PHP -Ecrire un
script PhP avec la fonction phpinfo. Essayez de voir la configuration de votre PHP et comparezla
avec le fichier php.ini.
Prise en main tester les scripts suivant dans votre navigateur directement puis placer les dans
c:/wamp/www
• Ouvrer votre bloc-note tapez le code suivant enregistrer le sous index.html et ouvrer le
dans votre navigateur.
<!DOCTYPE html>
<html>
<body>
<h1>Ma premiere page PHP </h1>
<?php
echo "Hello World!";
?>
• Faite la même chose avec le code suivant, quelles sont vos remarques ?
<!DOCTYPE html>
<html>
<body>
<?php
ECHO "Hello World!<br>"; echo
"Hello World!<br>"; EcHo
"Hello World!<br>";
?>
</body> </html>
Quelques Problème qui empêchent Wamp de bien fonctionner :
Microsoft Visual C++ Redistributable !
C'est la première erreur (message ci-après) que vous rencontrez après l'installation de
WampServer. Suite à cette première tentative de démarrage, l'icône passe à l'orange pour
spécifier qu'il y a un problème.
Impossible de démarrer le programme car il manque MSVCR110.DLL sur votre
ordinateur. Essayez de réinstaller le programme pour corriger ce problème.
En clair, il vous manque sur votre ordinateur une biliothèque DLL (Dynamic Link Library) de
'Microsoft'. Oui, mais c'est l'arbre qui cache la forêt car ce n'est pas la seule DLL a être absente.
Si vous faites une tentative de démarrage de 'localhost', vous obtenez une page blanche, avec le
message 'Page Web inaccessible', qui dans ce contexte est tout à fait normal.
Ces bibliothèques ont été utilisés lors de la compilation de Aestan Tray Menu, d'Apache, de Php,
de MySql et de PhpMyAdmin avec 'Visual Studio' et vous ne pouvez pas vous en passer. Aestran
Tray Menu (l'icône de WampServer) a besoin de la bibliothèque 'Microsoft Visual C++ 2008
SP1 Redistributable Package'. Ce package 'Redistribuable Microsoft Visual C++ 2008 Service
Pack 1 (KB2538243)' doit normalement être déjà présent sur votre ordinateur. Apache, Php,
MySql et PhpMyAdmin, selon la version que vous avez installé, ont besoin d'autres
bibliothèques afin de fonctionner correctement. Si c'est la dernière version, vous avez besoin de
'Microsoft Visual C++ 2012 Redistibutable' (en date de la rédaction de ce didacticiel). Si vous
avez sélectionné la version 32 bits de WampServer, vous avez besoin de charger uniquement les
DLL de la version X86. Si vous avez sélectionné la version 64 bits de WampServer, vous avez
besoin de charger les DLL de la version X86, ainsi que ceux de la version X64 !
Nom Taille Package Version
Microsoft Visual C++ 2015 RC 13,1 Mo X86 14.0.23506.0
Microsoft Visual C++ 2015 RC 13,9 Mo X64 14.0.23506.0
Microsoft Visual C++ 2015 Update 3 13,8 Mo X86 14.0.24212.0
Microsoft Visual C++ 2015 Update 3 14,6 Mo X64 14.0.24212.0
https://www.microsoft.com/fr-fr/download/details.aspx?id=48145
Pour télécharger la version dont vous avez besoin, cliquez sur le lien dans la colonne Version. Après avoir
installé ces DLL, je vous conseille de lancer 'Windows Update' afin de faire les mises à jour qui
pourraient manquer sur votre ordinateur.
Consulter l'observateur des évènements de Windows !
Quand l'icône WampServer n'est pas verte, un des services n'a pas pu démarrer normalement.
Identifiez le service qui est en cause en cliquant sur 'Apache' ou 'MySql' puis 'Service'. Dans 99%
des cas, c'est Apache qui est en cause ! Inutile de consulter le fichier 'Apache Error.Log', vous ne
trouverez rien ! Car pour obtenir un compte-rendu, Apache doit fonctionne correctement.
Alors comment faire ? Venez consulter l'observateur des évènements de Windows. Vous vous
rendez dans le 'Panneau de Configuration', ensuite sur 'Outils d'Administration' et enfin sur
'observateur d'évènements'. Cliquez sur 'Affichages Personnalisés' et 'Evènements
d'Administration'.
Voici quelques évènements que l'on peut rencontrer. La liste ci-après n'est pas exhaustive.
Le service wampApache s’est arrêté avec l’erreur service particulière Fonction
incorrecte..
Source : Service Control Manager. Evènement : 7024. Le service WampApache n'a pas pu
démarrer.
C'est un message d'anomalie très général. Il faut chercher d'autres messages pour avoir plus
d'explications.
The Apache service named reported the following error:
>>> AH00526: Syntax error on line 16 of
F:/Wamp/bin/Apache/Apache2.4.10/conf/httpd.conf: .
Source : Apache Service. Evènement : 3299. Une erreur de syntaxe dans le fichier 'httpd.conf'.
The Apache service named reported the following error:
>>> httpd.exe: Syntax error on line 282 of
F:/Wamp/bin/Apache/Apache2.4.10/conf/httpd.conf: Cannot load
f:/Wamp/bin/php/courant/php5Apache2_4.dll into server: The Apache service
named n'est pas une application Win32 valide. .
Source: Apache Service. Evènement : 3299. Problème de compatibilité entre Apache 64 bits et
php 32 bits.
The Apache service named reported the following error:
>>> AH00014: Configuration check failed .
Source : Apache Service. Evènement : 3299. Un problème de configuration dans 'httpd.conf', un
répertoire inexistant, un chemin non valide ...
Le messager d'anomalie n'est pas toujours très explicite et ne vous renseigne pas sur la nature
exacte du problème que vous rencontrez.
SEANCE 2
Exercice1 :(affichage avec html et caractères)
-Ecrire une page HTML en PHP script qui va afficher à l’écran un formulaire, les champs du
formulaire sont :
Nom ; Prénom ; Date de naissance ; Sexe (checkbox) ; Ville (list selection) ; E-mail ; et
Commentaire (text-area).
-Ecrire un script qui va afficher à l’écran les symboles ♥ (9829 hexa), et ♜ (9812 jusqu’a
9820 hexa) augmenter la taille et changer la couleur de ce symboles avec balises HTML/CSS. -
Déterminer le numéro de version de PHP, le nom du système d'exploitation de votre serveur ainsi
que la langue du navigateur du poste client. Ajoutez à ce script pour déterminer l’IP, le DNS, la
version du navigateur, l’heure sur le serveur, etc…
<?php
echo "Version de PHP : ",PHP_VERSION, "<br />"; echo
"Système d'exploitation du serveur : ",PHP_OS, "<br />"; echo
"Langue du navigateur client :",
$_SERVER["HTTP_ACCEPT_LANGUAGE"], "<br/>";
?>
Exercice2 :(déclaration variables)
-Ecrire un script PHP qui va déclarer les variables suivantes x, y, z, var1, var2, var3, afficher le
résultat avec les 3 fonctions d’affichages de PHP (echo, printf, print) les valeurs de tous ces
variables à la fin du script.
x=Oracle ; y= MySQL; z=x; x=PHP 5; y=x; var1 =10 ; var2
assignation par référence à var1, et var3 par valeur de var1.
NB : l'écho et print sont plus ou moins les mêmes. Ils sont tous deux utilisés pour envoyer des
données à l'écran.
Les différences sont minimes : echo n'a pas de valeur de retour tandis que print a une valeur de
retour de 1 et peut donc être utilisé dans les expressions. echo peut prendre plusieurs paramètres
(bien qu'une telle utilisation soit rare) tandis que print peut prendre un argument. l'écho est
légèrement plus rapide que l'impression.
Exercice 3 : (variable typage)
-Donner la valeur de chacune des variables pendant et à la fin du script suivant et vérifier
l’évolution du type de ces variables avec la fonction gettype: <?php
$x="PHP5";
$a[]=&$x;
$y=" 5 eme version de PHP";
$z=$y*10;
$x.=$y;
$y*=$z;
$a[0]="MySQL"; ?>
-Réécrivez le script avec var_dump ($a); quelles
sont vos remarques. Voir l’exemple en bas.
<?php $a = 3.14 ;
echo '<p>var_dump de $a : ';
var_dump
($a);
?>
- Ecrire un script PHP qui affiche a l’écran le type des variables déclarer a l’avance :
Le résultat affiche comme suite :
Exercice 4 (formatage chaine caractères)
-Ecrire un script PhP qui transforme une chaîne écrite dans des casses différentes afin que
chaque mot ait une initiale en majuscule les autres en minuscule. Utilisez les fonctions telles que
ucwords et strtolower, la chaine a transforme est la suivante :
« TransFOrmeZ unE ChaîNE écRITe dans des cASses diFFéreNTes afiN qUe chAQue MOT ait
une inITiale en MAJUSCULE"; »
Le résultat doit être comme le suivant :
Transformez Une Chaîne Écrite Dans Des Casses Différentes Afin Que Chaque Mot Ait Une
Initiale En Majuscule
Exercice 5 : Les opérateurs arithmétiques
Ecrire script PhP qui affiche les contenue de chaque variables durant l’exécution.
$x = 2;
$y = 3;
$z = 4; et
$a = $x + 1;
$b = $x + $y;
$c = $x - $y;
$x = $z += 2 ;
$y += $z -= 2;
$y /= $z -= 2;
$a *= 4 + 2;
Exercice 6 : expression conditionnelle
Rédiger une expression conditionnelle pour tester si un nombre est à la fois un multiple de 7 et
de 5. Testez avec les variable x=35, 7350, 1425.
Exercice 7 :
-Créer un tableau dont les indices varient de 11 à 36 et dont les valeurs sont des lettres de A à
Z. Lire ensuite ce tableau avec une boucle for voir le code PHP. Pour afficher les indices et les
valeurs (la fonction chr(n) retourne le caractère dont le code ASCII vaut n).
<?php for($i=11;$i<=36;$i++)
{
$tab[$i]=chr(54+$i);
}
//Lecture avec for for($i=11;$i<=36;$i++)
{
echo "Elément d'indice $i : $tab[$i] <br />";
}
?>
-Réécrivez ce script avec une boucle foreach .