Cours Web M1 GL - 6

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 37

Master 1 Génie Logiciel

M 521
Web
PHP-MySQL
Caractéristiques
Produit « open source »
PHP est un langage imbriqué dans le code HTML, il est
interprété par un module « spécial » par le serveur web.
<html>
<head><title>Exemple</title></head>
<body>
<?php
echo "Bonjour, je suis un script PHP!";
?>
</body>
</html>

3
Caractéristiques (suite)
La syntaxe du langage emprunte aux langages : C, Java
et Perl.
PHP est un acronyme :
PHP: Hypertext Preprocessor
PHP : Personnal Home Page

4
Autres technologies
Pour produire des pages dynamiques.
Cold Fusion
Java Server Page
Microsoft ASP
CGI
Python

5
Fonctionnalités de PHP
 Traitement de caractères et de fichiers.

 Support de XML.

 Accès aux bases de données : Oracle, Sybase, MySQL, ODBC,

etc.
 Fonctions de générations de graphique en ligne, de document

PDF, etc.
 Web services

…
6
Architecture (avec Apache)
APACHE

PHP
G ET /PA G E.PH P

R ép erto ires
w eb

7
Installation de PHP
EasyPhp

WAMP

httpd.conf

php.ini

Log (erreur, accès)

8
La codification PHP
Insertion dans le code HTML d’une page web.
Balises :
<? code ?>
<?php code ?>
<% code %>
<script language="php"> code </script>

9
Page PHP
<html>
<head>
<title>Exemple</title>
</head>
<body>
<?
// La ligne suivante est une instruction PHP
echo "Bonjour, je suis un script PHP!";
?>
</body>
</html>

10
Syntaxe
Les instructions sont terminées par « ; »
Les styles de commentaires utilisables sont:
• /* */ non imbriqué
• #
• //

11
Variables
Une variable commence toujours par $.

Les variables d’un formulaire web sont


immédiatement disponibles, ainsi que les
cookies. Le nom de l’élément du formulaire ou du
cookie devient une variable pour la page PHP cible lors
d’un POST ou d’un GET.

12
Variables
Désignées par $identificateur
Ex: $i; $Res; $res; $RES
Leur type est défini implicitement par l'assignation d’une
valeur:
Ex: $i=4; $Res="bleu";
Il peut changer en cours d'exécution:
Ex: $Res=4;

13
Les variables
 Les variables sont toutes préfixées par le symbole $
<?php

$annee = 1942;
$nom = “Mohammed Ali “; \n : retour à la ligne

echo “Bonjour, je m’appelle $nom\n“;


echo “je suis né en $annee\n”;

?>

 Les variables ne sont pas typées en PHP

<?php
$valeur = 1;
$valeur = “Coucou“;
?>
Chaînes de caractères
Chaîne
délimitée par « " », « ' »
séquences d'échappement standard \n, \r, \t, \\, \$, \", \‘
Il est possible de concaténer des chaînes avec le point:
$resultat = $chaine1 . $chaine2;

Entre " ", les variables sont évaluées


Ex: $nom=‘Mohammed';
"Bonjour $nom !" // Bonjour Mohammed!
'Bonjour $nom !' // Bonjour $nom !
15
Opérateurs
Opérateurs numériques:
++ + - * / %
Opérateurs de comparaison
> >= < <= == !=
Concaténation de chaînes: . // 'bon'.'jour'
Opérateurs logiques:
! && ||
Affectation:
= += -= .= // $chaine .= 'jour' ;
Opérateur conditionnel:
…? …: … // $heure<16 ? echo'bonjour' : echo'bonsoir'

16
Expressions

$a = 5;
$b = $a + 2;
$somme+=$val

17
Instructions
Instructions Boucles:
conditionnelles: - boucle for
- if ( condition ) - boucle while
instruction ou bloc - boucle do..while
[ else instruction ou bloc ] - Instructions:
- switch (expression) break, continue
{case valeur1: instruction/ bloc
case valeur2: instruction/ bloc
….
default: instruction/ bloc
}
18
Les instructions de base
Le test conditionnel : if (condition) { … } else { … }

If ($valeur > 1) { If ($valeur == 1) {


echo “la valeur est supérieure à 1“; echo “la valeur est égale à 1“;
} } else {
echo “la valeur est différente de 1“;
If ($valeur < 1) { }
echo “la valeur est inférieure à 1“;
}

If ($valeur == 1) {
echo “la valeur est égale à 1“;
}

If ($valeur != 1) {
echo “la valeur est différente de 1“;
}
Les instructions de base
La boucle tant que : while (condition) { instructions }

$i = 1;
$somme = 0;
while ($i <= 10) {
$somme = $somme + $i;
$i = $i + 1;
}

echo “Somme des entiers de 1 à 10 = $somme “;


Les instructions de base
La boucle pour : for (initialisation ; condition d’arrêt; incrémentation) { .. }

$somme = 0;
for ($i = 1; $i <= 10; $i = $i + 1) {
$somme = $somme + $i;
}

echo “Somme des entiers de 1 à 10 = $somme “;

Pour i partant de 1 et tant que i <= 10,


ajouter 1 à i après chaque itération
Les tableaux
Tableaux indicés:
$T1[0]=2; $T1[1]=5; $T2=array("vert","blanc","rouge");
Tableaux associatifs:
$T3["directeur"]="Omar"; $T3["secrétaire"]="Ali";
$T4=array("directeur"=>"Omar", "secrétaire"=>"Ali");
Tableaux "à plusieurs dimensions":
- indicés
0 1
$T[0][0]=2; $T[0][1]="vert";
$T[1][0]=5; $T[1][1]="blanc"; 2 vert
0

1 5 "blanc"

22
Les tableaux
Il existe plusieurs manières de manipuler les tableaux

$tableau = array(); $tableau = array();


$tableau[1] = 1;
$tableau[2] = 2; array_push($tableau,1);
$tableau[3] = 3; array_push($tableau,2);
array_push($tableau,3);
print_r( $tableau );

$tableau = array(1, 2, 3);

foreach($tableau as $element) {
echo “$element \n“;
}
Fonctions

Déclaration:
function Nom_Fonction ($Param1,$Param2,…)
{ instructions }
Valeur de retour: instruction return valeur;
 Pas de déclaration du type des paramètres, ni de la
valeur de retour éventuelle.
Ex: function cube($x) function AffCub($x)
{ return $x*$x*$x; } { echo $x*$x*$x; }

24
Formulaires (GET et POST)
 Lorsqu'un formulaire est envoyé à un script PHP, toutes les variables de ce

formulaire seront automatiquement disponibles dans le script PHP.


 Situé dans les tableaux associatifs $_POST , $_GET et / ou $_FILES, selon la source

de la variable en question.
 Exemple

<form action= "resultat.php" method="post">

Name: <input type="text" name="username"><br>

<input type="submit">

</form>

 Lorsque le formulaire ci-dessus est présentée, la valeur de la saisie de texte sera

disponible en $_POST[’username’].
$_FILES
 $_FILES[‘champ']['name'] : Le nom original du fichier, comme sur le disque du
visiteur (exemple : mon_icone.png).
 $_FILES[‘champ']['type‘] : Le type du fichier. Par exemple, cela peut être «
image/png ».
 $_FILES[‘champ']['size‘] : La taille du fichier en octets.
 $_FILES[‘champ']['tmp_name'] : L'adresse vers le fichier uploadé dans le répertoire
temporaire.
 $_FILES[‘champ']['error'] : Le code d'erreur, qui permet de savoir si le fichier a bien
été uploadé.
 Le formulaire doit être de la forme <form action= " fichier.php"
enctype="multipart/form-data" method="post">
 $resultat =
move_uploaded_file($_FILES[‘champ']['tmp_name'],$chemin);
if ($resultat) echo "Transfert réussi";
Autres fonctions
require(/path/to/file.php)
 Inclue et évalue le fichier spécifié

 Le fichier est requis pour que l'application fonctionne

include(...)
 Pareil

include_once(...)
 S'assure que le même fichier n'est pas inclus plusieurs fois
Architecture Apache-PHP-MySQL
APACHE

PHP
G ET /PA G E.PH P

C lient w eb
SQL

R ép erto ires
w eb

M ySQ L
Manipulation d’une BD MySQL
L’extension mysql_
Fonctions d'accès à MySQL de moins en mois utilisées
(obsolètes )

L’extension mysqli_
Fonctions améliorées d'accès à MySQL

L’extension PDO
Outil complet qui permet d'accéder à n'importe quel
type de base de données (MySQL, Oracle, …)
Connexion à une BD MySQL
<?php
Try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', ‘psw’);
}
catch (Exception $e)
{
Login
die('Erreur : ' . $e->getMessage());
} Nom de l'hôte
?>

Nom de la base de données

Mots de passe
Accès à mysql en PHP
Exécution d'une requête:
$reponse = $bdd->query('Tapez votre requête SQL ici‘);

L’objet contenant la réponse de MySQL


Accès aux lignes du résultat d'un
select:
$donnees = $reponse->fetch();

31
Exemple
<?php
try
{// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
} // Si tout va bien, on peut continuer
$reponse = $bdd->query('SELECT * From Etudiant'); // On récupère tout le contenu de la table Etudiant
while ($donnees = $reponse->fetch()) // On affiche chaque entrée une à une
{
?>
<p>
<b>Nom</b> : <?php echo $donnees['nom']; ?><br/>
<b>Prenom</b> : <?php echo $donnees['prenom']; ?><br/>
<b>Age</b> : <?php echo $donnees['age']; ?>
</p>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
Exemple (suite)
$reponse = $bdd->query('SELECT nom, prenom, age
FROM Etudiant WHERE prenom=\'Mohammed\'');
Les étudiants qui s’appellent Mohammed

$reponse = $bdd->query('SELECT nom, prenom, age


FROM Etudiant ORDER BY age LIMIT 0, 10');
Les dix premiers étudiants
LIMIT 10, 2 : le 11 et 12 ème étudiant
Construire des requêtes en fonction
de variables (marqueurs nominatifs)
<?php
$prenom = $_POST['nom'] ;
$reponse = $bdd->query('SELECT nom FROM Etudiant
WHERE prenom=\'' .$prenom. '\'');
?>

<?php
$req = $bdd->prepare('SELECT nom FROM Etudiant WHERE
prenom= ? AND age<= ?');
$req->execute(array($_GET['prenom'], $_GET['age']));
?>
Construire des requêtes en fonction de
variables
<?php
$req = $bdd->prepare('SELECT nom, prix FROM
Etudiant WHERE prenom= :prenom AND age
<= :age');
$req->execute(array('prenom' => $_GET[‘prenom'], ‘age'
=> $_GET[‘age']));
?>
Ajouter des données
<?php
$req = $bdd->prepare('INSERT INTO Etudiant(nom, prenom,
age)
VALUES(:nom, :prenom, :age)');
$req->execute(array(
'nom' => $nom,
'prenom' => $prenom,
‘age' => $age
));
echo 'L’étudiant a bien été ajouté !';
?>
Autre requêtes
Mise à jours
UPDATE Etudiant SET age = 30 WHERE prenom =
'Mohammed‘

Suppression
DELETE FROM Etudiant WHERE
prenom=‘Mohammed'

Vous aimerez peut-être aussi