UE 303 Promo. M2 IST

Download Report

Transcript UE 303 Promo. M2 IST

UE 303
Promo. M2 IST-IE 2005/06
Architecture trois-tiers :
Programmation en PHP/MySQL & Application client-serveur
pour la
Conception d’un système d'information multimédia
Par :
Sahbi SIDHOM
MCF. Université Nancy 2
Équipe de recherche SITE – LORIA
[email protected]
cours n°2
M2. IST-IE (S. Sidhom)
Programmation en PHP/MySQL
cours n°2
M2. IST-IE (S. Sidhom)
2
Objectifs
Architecture et fonctionnement
Structures de base et de contrôle
Fonctions usuelles
Gestion des objets
MySQL et bases de données
Web dynamique
cours n°2
M2. IST-IE (S. Sidhom)
3
I.
Architecture et fonctionnement
cours n°2
M2. IST-IE (S. Sidhom)
4
Architecture technique
PHP est utilisé conjointement avec :



cours n°2
généralement APACHE comme serveur
HTTP
MySQL et/ou Oracle comme SGBD/R (ou
aussi PostgreSQL, SQLServer de MS, …)
Linux, BSD, Windows ou MacOS comme
système d’exploitation
M2. IST-IE (S. Sidhom)
5
Nombreux connecteurs d’API
Capacité de se connecter à la plupart des
applications de l’entreprise avec PHP :





cours n°2
Web (HTML, WML, …)
Services reposant sur Soap
API client/serveur : GTK, WUL, …
Ligne de commande
MS office, Adobe, Macromedia Flash, …
M2. IST-IE (S. Sidhom)
6
Fonctionnement de PHP
Internet
Serveur
PHP
Client
script
HTML
(navigator)
PHP
Zend 2
Opcode
cours n°2
M2. IST-IE (S. Sidhom)
7
II.
Structures
de base et de contrôle
cours n°2
M2. IST-IE (S. Sidhom)
8
Script PHP
Type 1 :
<script language= "php">
echo (" Ceci est un script en php ! ");
</script>
Type 2 :
<?php
echo (" Ceci est un script en PHP pour XML/XHTML! ");
?>
Type 3 :
<?
echo (" Ceci est un script de manière générale");
?>
Type 4 :
<%
echo (" Ceci est un script en PHP avec le style ASP ! ");
%>
cours n°2
M2. IST-IE (S. Sidhom)
9
Balises propres à PHP
Ouverture
Fermerture
<?
?>
<?php
?>
<%
%>
<script language= "php">
</script>
cours n°2
M2. IST-IE (S. Sidhom)
10
Insertion de PHP dans HTML
<html>
<head>
<title>Ma première page en PHP</title>
</head>
<body>
hello !
<BR>
Date courante 1: <?php echo "6 janvier 2006"; ?>
<BR>
Date courante 2: <?php echo date("H:i:s"); ?>
</body>
</html>
cours n°2
M2. IST-IE (S. Sidhom)
11
PHP & HTML selon le serveur
Écriture :
<HTML>
<HEAD>
<title>premier pas en PHP</title>
</HEAD>
<BODY bgcolor="#FFFFFF">
<H1>Essai de script PHP</H1>
<?php
echo "Bonjour, il est ";
echo date("H:i:s");
?>
</BODY>
</HTML>
Exécution :
cours n°2
M2. IST-IE (S. Sidhom)
12
Résultat d’exécution :
<HTML>
<HEAD>
<title>premier pas en PHP</title>
</HEAD>
<BODY bgcolor="#FFFFFF">
<H1>Essai de script PHP</H1>
Bonjour, il est 17:05:38
</BODY>
</HTML>
Que remarquez-vous ?
cours n°2
M2. IST-IE (S. Sidhom)
13
1. Syntaxe du langage PHP :
Les VARIABLES
cours n°2
M2. IST-IE (S. Sidhom)
14
Définition des Variables
$ma_variable = expression;
attention à la casse ( $a différent de $A ) ;
le nom de la variable commence avec une
lettre ou un souligné et est constitué de
lettres (aA…), chiffres(012…), souligné(_) ;
pas de déclaration préalable ;
cours n°2
M2. IST-IE (S. Sidhom)
15
Exemples
en PHP3, les variables sont assignées uniquement par valeurs :
<?php
$reel = 0.3;
$entier = 22;
$chaine = "bonjour !";
$phrase1 = "bonjour $chaine!";
$phrase2 = 'bonjour $chaine$';
print("un reel : $reel<BR>");
print("un entier : $entier<BR>");
print("une chaine : $chaine<BR>");
print("une phrase : $phrase1<BR>");
print("du bon usage des guillemets : $phrase2");
?>
cours n°2
M2. IST-IE (S. Sidhom)
16
Alias sur une variable
en PHP, les variables peuvent être assignées par
références : elles deviennent un alias sur la variable
qu'elles référencent.
Exemple :
<?php
$chaine1 = "Bonjour";
$chaine2 = &$chaine1;
// Référence $chaine1 par $chaine2.
$chaine2 = "$chaine2 tout le monde";
print("$chaine1\n$chaine2");
?>
cours n°2
M2. IST-IE (S. Sidhom)
17
Type
Le type est donné automatiquement :
integer, double, string, array, object.
Pour écrire un guillemet dans une chaîne, utiliser \".
Exemple :
<?php
$chaine = "\"Salut tout le monde\"";
echo $chaine;
?>
cours n°2
M2. IST-IE (S. Sidhom)
18
Conversion de type « cast »
intval, strval, doubleval :
$entier = intval($reel);
(integer), (string), (double) : $entier = (integer) $reel;
booléen settype(var, type);
chaîne strval(argument) retourne l'argument sous forme
de chaîne.
Exemple :
<?php
$reel = 3.85;
$entier = (integer) $reel;
print("le reel $reel donne l'entier $entier");
?>
cours n°2
M2. IST-IE (S. Sidhom)
19
Fonctions pour connaître le type
chaine gettype(variable)
booleen
booleen
booleen
booleen
booleen
is_array(var)
is_double(var)
is_integer(var)
is_object(var)
is_string(var)
booleen is_type(var, type) :
 renvoie 1 si var est du type : type
cours n°2
M2. IST-IE (S. Sidhom)
20
Variables d’environnement
Il existe des variables prédéfinies, la plupart dépendent du
serveur qui appelle le script php.
Pour obtenir la liste complète il suffit d'exécuter le script cidessous : (Apache Environment)
<?php
phpinfo();
?>
une page sera affichée contenant des tableaux qui décrivent la
configuration, les variables d'environnement Apache.
Quelques unes des variables d'environnement (Apache) :


HTTP_USER_AGENT : navigateur du client ;
REQUEST_METHOD : méthode utilisée pour appeler la page (GET,
HEAD, POST, PUT) ;
cours n°2
M2. IST-IE (S. Sidhom)
21
Variables PHP
HTTP_GET_VARS tableau associatif pour la
methode get (nom, valeur)
HTTP_POST_VARS tableau associatif pour la
methode post (nom, valeur)
HTTP_COOKIE_VARS tableau associatif pour
la methode cookie (nom du cookie, contenu)
GLOBALS tableau associatif qui contient les
variables globales du script, la clé est le nom
de la variable (sans le dollar) et la valeur est
le contenu de la variable.
cours n°2
M2. IST-IE (S. Sidhom)
22
Variables dynamiques
Il est possible de définir un nom de variable déclaré et utilisé
dynamiquement.
Une variable dynamique prend comme nom la valeur d'une
autre variable.
Affectation : $$nom_var = valeur;
Lecture de la valeur : ${$nom_var}
Exemple :
<?php
$ch = "bonjour";
$$ch = "tout le monde";
echo "$ch<BR>";
echo "${$ch}<BR>";
echo "$bonjour<BR>";
?>
cours n°2
M2. IST-IE (S. Sidhom)
23
2. Syntaxe du langage PHP :
Les CONSTANTES
cours n°2
M2. IST-IE (S. Sidhom)
24
Définition des constantes
définition de la constante :
define ("NOM_CONST", valeur);
utilisation :
NOM_CONST
vérification d'existence :
if(defined(NOM_CONST))...
Exemple :
<?php
define("MAIL_sidhom","[email protected]");
print("envoyez un mail &agrave; ".MAIL_sidhom);
?>
cours n°2
M2. IST-IE (S. Sidhom)
25
Constantes prédéfinies
TRUE : vrai
FALSE : faux
__FILE__ : nom du fichier du script parsé
(attention il y a deux caractères soulignés avant FILE et deux après)
__LINE__ : numéro de la ligne du script
PHP_VERSION : version de PHP
PHP_OS : système sur lequel PHP exécute le script
Exemple :
<?php
echo PHP_VERSION."<BR>";
echo PHP_OS."<BR>";
echo __LINE__."<BR>";
echo __FILE__."<BR>";
?>
cours n°2
M2. IST-IE (S. Sidhom)
26
3. Syntaxe du langage PHP :
Les TABLEAUX
cours n°2
M2. IST-IE (S. Sidhom)
27
Définition des tableaux
Un tableau est créé par la fonction(array)qui prend en argument
des structures (key => value), séparées par des virgules (,) :
$nom_tableau = array(key1=>value1,...);
Exemple :
$tab = array("b","o","n");
$tab[0] = "b"; $tab[1] = "o"; $tab[2] = "n";
<?php
echo "essai avec array : ";
$tab = array("b", "o", "n");
$taille = count($tab);
for($i=0; $i<$taille; $i++) echo $tab[$i];
?>
cours n°2
M2. IST-IE (S. Sidhom)
28
Une dimension
accès à un élément d'un tableau de n cases :
$tab[indice]
avec indice dans l'intervalle [0,n-1]
nombre d'éléments dans un tableau :
$nb = count($tab);
Exemple :
<?php
echo "essai avec array : ";
$tab = array("a","n","n","é","e","0","4");
$taille = count($tab);
for($i=0; $i<$taille; $i++) echo $tab[$i];
?>
cours n°2
M2. IST-IE (S. Sidhom)
29
Plusieurs dimensions
Exemple :
$saison =
array(
"ete"=>array("juin","juillet","aout","septembre"),
"automne"=>array("septembre","octobre","novembre", "decembre"),
"hiver"=>array("decembre","janvier","fevrier","mars"),
"printemps"=>array("mars","avril","mai","juin")
);
print($saison["printemps"][2]);
cours n°2
M2. IST-IE (S. Sidhom)
30
Associatifs
initialisation 1 :
$nomtab["cle"] = valeur;
initialisation 2 :
$nomtab =array(
"cle1"=>valeur1,
"cle2"=>valeur2,
...);
accès à un élément :
$individu["cle"];
parcourir tous les éléments, solution 1 (for) :
for(reset($nomtab); $cle = key($nomtab); next($nomtab))
{
$val = pos($nomtab);
print("$cle = $val<BR>\n");
}
cours n°2
M2. IST-IE (S. Sidhom)
31
parcourir tous les éléments, solution 2 (while) :
reset($nomtab);
while(list($cle, $valeur) = each($nomtab))
{
echo "<BR>$cle = $valeur";
}
cours n°2
M2. IST-IE (S. Sidhom)
32
Fonctions pour les tableaux
cours n°2
M2. IST-IE (S. Sidhom)
33
cours n°2
M2. IST-IE (S. Sidhom)
34
cours n°2
M2. IST-IE (S. Sidhom)
35
cours n°2
M2. IST-IE (S. Sidhom)
36