Académique Documents
Professionnel Documents
Culture Documents
Leçon 2 : Le PHP
Rodrigue DJEUMEN
6 octobre 2019
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 1 / 33
Installation et configuration Installation de Devserver
Installation de DevServer
Installer DevServer
Afficher le tableau de bord devServer
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 2 / 33
Installation et configuration Publier sa page web
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 3 / 33
Installation et configuration Créer une BD MySql
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 4 / 33
Le langage PHP Les script php
Le script PHP
<?php
echo "The current date is ";
echo date("l F d, Y");
?>
Peut être inséré dans toute page web entre les balise HEAD ou BODY
Chaque instruction se termine par “ ;”
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 5 / 33
Le langage PHP Les variables
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 6 / 33
Le langage PHP L’adressage
L’adressage en PHP
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 7 / 33
Le langage PHP Structures de contrôles
Instruction if :
if(condition){action1;} else {action2;}
L’opérateur ?
(condition) ? action1 : action2;
L’instruction switch
switch(expression){
case valeur1: action1; break;
case valeur2: action2; break;
...
default: action par défaut;
}
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 8 / 33
Le langage PHP Les boucles
Instruction while :
while (condition){ actions;}
Instruction do..while
do{ actions; }while(condition);
Instruction for
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 9 / 33
Le langage PHP Les boucles
Les débranchements
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 10 / 33
Le langage PHP Les fonctions
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 11 / 33
Le langage PHP Les fonctions
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 13 / 33
Le langage PHP Les tableaux
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 14 / 33
Le langage PHP Les tableaux
Initialisation individuelle
Exemple :
$CAP0["Cameroun"]="Yaoundé";
$CAP0["Gabon"]="Libreville";
$CAP0["Nigeria"]="Abuja";
Constructeur Array()
Exemple
$CAP1=array(
"France"=>"Paris",
"Espagne"=>"Madrid",
"Italie"=>"Rome");
Accès : $CAP0[“Cameroun”]
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 15 / 33
Le langage PHP Les tableaux
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 17 / 33
Le langage PHP Les tableaux
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 18 / 33
Le langage PHP Les tableaux
Parcourir un tableau
Forme générale :
for(reset($CAP1); $CLE=key($CAP1); next($CAP1)){
$val=pos($CAP1);
echo "La valeur = $val et la clé = $CLE<br>";
}
Avec foreach
foreach($Ville as $CLE=>$VAL){
echo "La valeur = $VAL et la clé = $CLE<br>";
}
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 19 / 33
Le langage PHP Les tableaux
Les clés sont simples, mais les valeurs sont des tableaux
$pieces=array(
"Voitures" => array("roue","volant","portière"),
"Velo" => array("guidon","rayon","pedalier","cha^ ıne"),
"bateau" => array("voile","proue","poupe","pont")
);
Parcours
foreach($pieces as $CLE=>$VAL){
echo "La clé = $CLE<br>";
foreach($VAL as $C=>$V){
echo "La valeur = $V et la clé = $C<br>";
}
}
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 20 / 33
Le langage PHP Les chaines de caractères
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 22 / 33
Le langage PHP Les fichiers textes
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 23 / 33
Le langage PHP Les fichiers textes
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 24 / 33
Interactions client-serveur Accès aux répertoires sur le serveur
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 25 / 33
Interactions client-serveur Upload de fichier
Côté client
Code HTML
<h1>Transfert de fichier c^oté client</h1>
<form name="form2" action="trans.php" method="post"
enctype="multipart/form-data">
Choisissez un fichier <br>
<input type="file" name="fichclient"><br>
<input type="hidden" name="MAX FILE SIZE" value="20000">
<input type="submit" name="transfert" value="Transférer"><br>
</form>
Le champ caché max FILE SIZE est imposé, et indique la taille maximum
autorisée.
L’encodage du fichier doit être multipart/form-data.
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 26 / 33
Interactions client-serveur Upload de fichier
Côté serveur
Script PHP
<?php
//nom du fichier temporaire crée sur le serveur
$temp = $ FILES["fichclient"]["tmp name"];
//nom du fichier chez le client
$fich = $ FILES["fichclient"]["name"];
$taille = $ FILES["fichclient"]["size"];
if(is uploaded file($temp)){
$nfich= "rep/".$fich;
if(copy($temp,$nfich)){
echo "Le fichier transféré est sauvegardé sous le
nom: $nfich<br>\n";
echo "taille du fichier: $taille Octets\n";
}else{ echo "problème de mise en place du fichier"; exit;}
}else{ echo "problème de transfert du fichier"; exit; }
?>
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 27 / 33
Interactions client-serveur Interagir avec une base de donnée
Le web dynamique
Sur un site web dynamique, les pages peuvent ne pas être explicitement
stockées dans un format HTML
Le processus d’interaction est le suivant :
1 Le client par une requête, sollicite une page
2 La requête est adressée au serveur d’application, qui génèrera la page,
3 Le serveur d’application sollicite éventuellement des données du SGBD
4 Le SGBD fournit les données attendues
5 Le serveur d’application renvoie la page générée au serveur web
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 28 / 33
Interactions client-serveur Interagir avec une base de donnée
Étapes du processus
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 29 / 33
Interactions client-serveur Interagir avec une base de donnée
Script PHP
$host="localhost";
$user="root";
$passwd="";
if(!($lien=mysqli connect($host,$user,$passwd))){
echo "problème de connexion au serveur";
echo mysql error($lien); exit;
}else{
echo "dans la base";
mysqli close($lien);
}
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 30 / 33
Interactions client-serveur Interagir avec une base de donnée
Choix de la BD
Script PHP
$bd= "miage";
if(!mysqli select db($lien,$bd)){
echo "Problème de connexion à la BD $bd";
echo mysqli error($lien); exit;
}else{
echo "dans la bd $bd";
}
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 31 / 33
Interactions client-serveur Interagir avec une base de donnée
Soumission de requête
Script PHP
function formToDB($lien,$table){
//Récupération des données du formulaire
$prenom = $ POST["prenom"];
$nom = $ POST["nom"];
$mail = $ POST["mail"];
$hobbies= $ POST["hobbies"];
//formalisation de la requ^ ete SQL
$req =" INSERT INTO ‘info‘ (‘nom‘, ‘prenom‘,‘email‘, ‘hobbies‘)
VALUES (’$nom’, ’$prenom’,’$mail’, ’$hobbies’)";
//tentative d’écriture dans la BD
if(!mysqli query($lien,$req)){
echo "Problème d’exécution de la requ^
ete $req";
echo mysqli error($lien); exit;
}
}
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 32 / 33
Interactions client-serveur Interagir avec une base de donnée
Script PHP
function getData($lien,$table){
//formalisation de la requ^ ete SQL
$req =" SELECT * FROM ‘info‘";
//tentative d’écriture dans la BD
if(!($rep=mysqli query($lien,$req))){
echo "Problème d’exécution de la requ^
ete $req";
echo mysqli error($lien); exit;
}else{
$nbre = mysqli num rows($rep);
echo "<H3> Nous avons déja $nbre enregistrements dans la BD";
echo "<table>\n";
echo "<thead><tr> <th>Noms</th> <th>Prénoms</th> <th>Emails</th>
<th>Hobbies</th></tr></thead>";
while($data = mysqli fetch row($rep)){
echo "<tr><td>",$data[0],"</td><td>",$data[1],
"</td><td>",$data[2],"</td><td>", $data[3],"</td><tr>";
}
echo "</table>\n";
}
}
Rodrigue DJEUMEN Cours : Ingéniérie des application web et mobiles 6 octobre 2019 33 / 33