Académique Documents
Professionnel Documents
Culture Documents
2me Partie : Prsentation de HTML & XHTML 3me Partie : Prsentation de Javascript 4me Partie : Introduction PHP 5me Partie : Introduction XML & XSLT
Initiation PHP
Diapositive 1 / 73
Jean-Marc PUJOS
INITIATION PHP
Initiation PHP
Diapositive 2 / 73
Jean-Marc PUJOS
Initiation PHP
Diapositive 3 / 73
Jean-Marc PUJOS
INTRODUCTION
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
PHP est un langage interprt orient Web. Syntaxiquement, c'est un mlange de C et de Perl. Les scripts PHP sont lus et interprts par le moteur PHP. PHP comporte plus de 500 fonctions. Il est fournit avec des librairies offrant des fonctionnalits diverses : accs aux bases de donnes, fonctions d'images, sockets, protocoles Internet divers...
Bibliographie
Initiation PHP
Diapositive 4 / 73
Jean-Marc PUJOS
PRINCIPE de FONCTIONNEMENT
SERVEUR Fichier.php
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
CLIENT
I n t e r n e t
DEMON httpd
Interprteur PHP
statique
SGBD
Bibliographie
Lorsquune requte HTTP est soumise au serveur Web pour une page dont lextension est .php, comme pour un fichier HTML, le serveur commence par rechercher dans son arborescence le fichier dextension .php. Il va ensuite passer la main un sous-processus (une dll bien particulire) qui va interprter le script PHP et produire dynamiquement du code HTML. Ce code HTML est alors envoy au travers du rseau au navigateur client. De plus, aucune ligne de code PHP napparat ct client dans la mesure o tout le code a t interprt.
Initiation PHP
Diapositive 5 / 73
Jean-Marc PUJOS
SYNOPSIS
Un script PHP peut comprendre a la fois du code PHP et du code HTML, non interprt. On doit donc encadrer les parties comportant le code PHP entre 2 balises <? et ?>. Le reste de la page n'est pas interprt. <html><head><title> <? $titrepage = "Mon premier script PHP"; echo $titrepage; ?> </title></head><body> <h1><? echo $titrepage ?></h1> <? echo " <b> Hello, World ! </b>"; ?> </body></html> Note: La balise <?php est quivalente a <?. On peut galement utiliser les balises <script language="php"> et </script> Enfin, pour les programmeurs ASP, sachez que les balises <% et %> sont galement reconnues.
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 6 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Avec le quotte double " les variables contenues dans cette chane sont interprtes.
$nom= "Toto"; echo "Hello, $nom"; // Hello, Toto echo 'Hello, $nom'; // Hello, $nom
Bibliographie
Initiation PHP
Diapositive 7 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
On peut inclure des caractres spciaux pour contrler le flux affich : \n saut de ligne \r fin de ligne \t tabulation
Pour terminer l'excution du script, on utilise la fonction exit();
Initiation PHP
Diapositive 8 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Pour commenter le code, on utilise : Commentaire sur une ligne: // ou # Commentaire sur plusieurs lignes: /* ... */
Utilisation en mode ligne de commande : On peut excuter un script PHP en ligne de commande, ce qui permet des usages hors du simple cadre ''Web''. L'option -q vite l'affichage de la premire ligne Content-type: text/html C:\WEB\PHP\> php -q monscript.PHP
Bibliographie
Initiation PHP
Diapositive 9 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Visibilit et affectation PHP nest pas un langage fortement structur, il ne contient donc pas de partie dclarative clairement dfinie. Pour dfinir une variable, il suffit de linitialiser. Les variables sont prcdes du signe $, quelque soit leur type. Ainsi pour dclarer une variable var :
$var=1;
La variable $var est alors dfinie et vaut 1. Elle devient immdiatement accessible et ce jusqu la fin du script.
Bibliographie
Initiation PHP
Diapositive 10 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Il est parfois utile de forcer le type d'une variable. On utilise la fonction settype ou bien les oprateurs de casting (int), (string) settype renvoie vrai si la conversion a fonctionn, faux sinon.
$a= 3.1415; $result= settype( $a, "integer" ); // => $a = 3 , $result = 1
Bibliographie
Initiation PHP
Diapositive 11 / 73
Jean-Marc PUJOS
$var= 1; // $var est de type "integer" et vaut 1. $chn=(string) $var ; // $var est de type "string" et vaut " 1 ". On peut galement utiliser strval, intval, doubleval qui renvoient la variable convertie en chane / entier / rel. $strPI= "3.1415"; $intPI= intval( $strPI ); $PI= doubleval( $strPI ); echo " $strPI / $intPI / $PI";
Bibliographie
Si la chane de caractres contient un point, un e ou un E ainsi que des caractres numriques, elle est convertie en dcimal, Si la chane de caractres ne contient que des caractres numriques, elle est convertie en entier, Si la chane de caractres est compose de chiffres et de lettres, elle est convertie en entier et vaut 0, Si la chane de caractres contient plusieurs mots, seul le premier est pris en compte et est converti selon les rgles ci-dessus.
// $var1 est de type "integer" et vaut 1. // $var2 est de type "double" et vaut 12. // $var3 est de type "string" et vaut "PHP". // $var4 est de type "boolean" et vaut false. // $var5 est de type "string" et vaut "5a".
Bibliographie
Initiation PHP
Diapositive 13 / 73
Jean-Marc PUJOS
PHP4 permet dexploiter les rfrences aux variables, linstar du langage C. Une rfrence une variable est un accs la zone mmoire qui contient la valeur de cette variable. Cette rfrence est dsigne par le caractre & plac devant le nom de la variable. $a = 1 ; // $a a pour valeur 1. $b = &$a ; // $b et $a pointent sur la mme zone mmoire. // Ce sont donc deux noms pour la mme variable. echo " $a, $b " ; // Affiche 1, 1 $a = 2 ; echo " $a, $b " ; // Affiche 2, 2
Initiation PHP Diapositive 14 / 73 Jean-Marc PUJOS
Bibliographie
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
La fonction gettype permet de connatre le type de la variable. Elle renvoie une chane : ''string'' ou ''integer'' ou ''double'' ou ''array'' ou ''object''. $a= 12;
echo gettype($a) ; // => "integer" $a= $a / 10; echo gettype($a) ; // => "double" unset($a); echo gettype($a) ; // => "string
Bibliographie
On peut galement tester un type particulier a l'aide des fonctions is_array, is_string, is_int, is_float, is_object .
$a= 123; echo is_int($a); // => (vrai) echo is_double($a) // => (faux) echo is_string($a) // => (faux) $a += 0.5; echo is_float($a) // => (vrai)
Remarque :
Les fonctions is_double et id_real sont quivalentes is_float. Les fonctions is_long et is_integer sont quivalentes is_int.
Bibliographie
Initiation PHP
Diapositive 16 / 73
Jean-Marc PUJOS
LES CONSTANTES
PHP permet de dfinir des constantes a l'aide de la fonction define.
define("CONSTANTE", "rouge" );
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Comparaison
== > < <= >= != galit infrieur strict suprieur strict infrieur ou gal suprieur ou gal ngation
Logiques Les oprateurs logiques sont utiliss dans les tests, par exemple dans un if ( condition )
&& || xor ! et ou ou exclusif ngation
Bibliographie
Remarque : les oprateurs and, or , not sont galement disponibles et font la mme chose.
CNAM UE IHM NSY110 Initiation PHP Diapositive 18 / 73 Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Remarque : l'oprateur / renvoie un entier si les 2 oprandes sont des entiers, sinon il renvoie un flottant.
Bibliographie
& | ^ ~
ET OU XOR NOT
// 0011 AND 0110 => 2 // 0011 OR 0110 => 7 // 0011 XOR 0110 => 5 // NOT 3 => -4
L'oprateur ? : ou oprateur de test trinaire. Sa syntaxe est [test logique] ? [expression si vrai] : [expression si faux]
$a= $b =1; ( $a == $b ) ? $c= 10 : $c = 20; // effectue $c = 10;
Bibliographie
Initiation PHP
Diapositive 20 / 73
Jean-Marc PUJOS
Affectations :
$fruits[0]= "pomme"; $fruits[1]= "banane"; $fruits[] .= "orange"; // quivaut a $fruits[2]= "orange" $fruits= array( "pomme", "banane", "orange" );
Fonctions relatives : sizeoff : Renvoie le nombre d'lments d'un tableau. Cest un quivalent de count.
$nbelements= sizeof( $tableau ); is_array : renvoie true si la variable est de type tableau (ou tableau associatif), false sinon. reset : la fonction reset($tableau) place le pointeur interne sur le premier lment du tableau, chaque variable tableau possde un pointeur interne reprant l'lment courant.
Initiation PHP Diapositive 21 / 73 Jean-Marc PUJOS
Bibliographie
end : la fonction end($tableau) place le pointeur interne du tableau sur le dernier lment du tableau. current : renvoie l'lment courant du tableau. next : dplace le pointeur vers l'lment suivant, et renvoie cet lment. Sil n'existe pas, la fonction renvoie false. prev : dplace le pointeur vers l'lment prcdent, et renvoie cet lment. Sil n'existe pas, la fonction renvoie false. each : la fonction $a=each($tablo) renvoie l'index et la valeur courante dans un tableau 2 elements, $a[0] contient l'index, $a[1] la valeur. list : la fonction list( $scalar1, $scalar2, ... ) construit un tableau temporaire partir des variables scalaires passes en argument. key : la fonction key($tablo) renvoie l'index de l'lment courant du tableau.
Bibliographie
Initiation PHP
Diapositive 22 / 73
Jean-Marc PUJOS
sort, rsort, usort, uasort : sont diffrentes fonctions de tri de tableau. sort trie par valeurs croissantes, rsort par valeurs dcroissantes $tableau_trie = sort( $tableau ); usort et uasort permettent au programmeur d'implmenter lui-mme la fonction de tri utilise. PHP appelle successivement la fonction qui doit retourner -1 / 0 / 1 suivant que le premier lment est infrieur / gal / suprieur au second. Dans l'exemple ci-dessous, on implmente un tri qui ne tient pas compte des majuscules/ minuscules
function compare_maj( $elem1, $elem2 ) { if( strtoupper( $elem1 ) == strtoupper( $elem2 ) ) return 0; return ( strtoupper( $elem1 ) < strtoupper( $elem2 )) ? -1 : 1; } .. $tableau_trie = usort( $tableau, "compare_maj" );
Initiation PHP Diapositive 23 / 73 Jean-Marc PUJOS
Bibliographie
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 24 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
asort, arsort, ksort, aksort : Ces fonctions de tri conservent la relation entre l'index et la valeur, gnralement le cas dans un tableau associatif.
asort trie par valeurs croissantes, arsort par valeurs dcroissantes, ksort trie par index (key) croissantes.
Initiation PHP Diapositive 25 / 73 Jean-Marc PUJOS
Bibliographie
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Les tests IF
Syntaxes : Test if " basique " :
if( [condition] ) { ... }
Test if-else :
if( [condition] ) { ... } else { ... }
Test if-elseif :
if( [condition] ) { ... } elseif( [condition] ) { ... }
Bibliographie
Dans le cas de plusieurs tests successif portant sur une Mme variable, on utilisera plutt le test switch. Remarque : Si le corps du test ne comporte qu'une instruction, les accolades { } sont optionnels, ( contrairement au Perl).
Initiation PHP
Diapositive 26 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
switch( [variable] ) { case [valeur1] : Il permet de confronter une variable [bloc d'instructions] plusieurs valeurs prdfinies. break; Il permet un code plus compact et case [valeur2] : lisible qu'un test : [bloc d'instructions] if-elseif-elseif... break; ... default: [bloc d'instructions] }
Initiation PHP
Diapositive 27 / 73
Jean-Marc PUJOS
La valeur de [variable] est compar successivement chaque case. Si il y a galit, le bloc d'instruction est excut. Il ne faut pas omettre le break en fin de bloc, sans quoi le reste du switch est excut. Enfin, le handler default permet de dfinir des instructions effectuer par dfaut, c'est dire si aucun case n'a ''fonctionn''...
switch( $prnom ) { case "Bob" : case "Toto" : case "Julien" : echo "bonjour ", $prnom , " ! vous tes un garon"; break; case "Anne": case "Batrice" : case "Patricia" : echo "bonjour ", $prnom , " ! vous tes une fille"; default: echo "Bonjour $prnom ! Dsol je ne connais pas beaucoup de prnoms" }
Bibliographie
Initiation PHP
Diapositive 28 / 73
Jean-Marc PUJOS
En PHP, on dispose des structures de boucle similaires au langage C. L'instruction break permet de sortir d'une boucle tout moment. L'instruction continue permet de revenir au dbut de la boucle.
for( $i=0; $i < sizeof($tableau ); $i++ ) { if( $tableau($i] == 'suivant' ) { continue; } if( $tableau($i] == 'fin' ) { break; } echo $tableau[$i], "\n"; }
Bibliographie
// parcours du tableau jusqu'au premier lment vide $i=0; while( isset( $tableau[$i]) ) { echo "tableau[ $i ] = $tableau[$i] \n"; ... $i++; }
La boucle DO WHILE :
La condition de sortie est situe en fin de boucle. Ainsi la boucle est parcourue une fois au minimum. $fp= fopen( "monfichier.txt" ); do{ $ligne = fgets( $fp, 1024 ); } while( ! feof($fp) );
Initiation PHP Diapositive 30 / 73 Jean-Marc PUJOS
Bibliographie
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 31 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 32 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Les fonctions peuvent ou non renvoyer un rsultat. on utilise l'instruction return. La variable retourne peut tre de type quelconque. Elle est transmise par copie..
function bonjour2() { return " Bonjour "; } .. echo bonjour2() ; // Affiche " Bonjour " lcran.
Bibliographie
Le mode de fonctionnement est sensiblement diffrent, la fonction bonjour affiche directement le mot " Bonjour " lcran, alors que saffiche le rsultat de bonjour2.
Initiation PHP
Diapositive 33 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 34 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 35 / 73
Jean-Marc PUJOS
Par dfaut, les paramtres sont transmis par copie, c'est dire que la fonction possde une copie locale de la variable envoye. Avec la mthode du passage des paramtres par rfrence, on passe la fonction ladresse mmoire dune variable existante. Cela se fait en prcdant de & le nom du paramtre. Cela permet de modifier ce paramtre dans la fonction.
function bonjour(&$phrase, $prnom, $nom) { $phrase = " Bonjour $prnom $nom " ; } .. $chane = " "; bonjour($chane, "Pierre" , "PAUL") ; echo $chane ; // Affiche " Bonjour Pierre PAUL " lcran.
Initiation PHP Diapositive 36 / 73 Jean-Marc PUJOS
Bibliographie
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Le passage des paramtres par dfaut : Les paramtres optionnels sont autoriss : il suffit de leur affecter une valeur par dfaut.
function mafonction( $param1 = "inconnu", $param2="" ) { echo "param1=$param1 param2=$param2\n"; } . mafonction( "toto", "titi" ); // => "param1=toto param2=titi" mafonction( "toto" ); // => "param1=toto param2=" mafonction(); // => "param1=inconnu param2="
Bibliographie
Initiation PHP
Diapositive 37 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 38 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 40 / 73
Jean-Marc PUJOS
Un fichier inclus par include est inclus dynamiquement, lors de l'excution du code, cest--dire quil est lu puis interprt. Un fichier inclus par require est inclus avant l'interprtation du code. Il est quivalent la directive #include du langage C.
Bibliographie
Avec include, le rsultat est celui escompt, tandis qu'avec require, le fichier admin_fonctions.php est inclus quelque soit le rsultat du test if.
Initiation PHP Diapositive 41 / 73 Jean-Marc PUJOS
PROGRAMMATION OO (1)
Programmation Oriente Objet
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
PHP dispose des concepts de POO (Programmation Oriente Objet) au travers des classes. Rappelons dabord quun objet possde des attributs et des mthodes, et doit utiliser les mcanismes dhritage et de polymorphisme.
Attribut Mthode caractristique dun objet. action qui sapplique un objet
Hritage dfinition dun objet comme appartenant la mme famille quun autre objet plus gnral, dont il hrite des attributs et des mthodes. Polymorphisme capacit dun ensemble dobjet excuter des mthodes de mme nom, mais dont le comportement est propre chacune des diffrentes versions.
Initiation PHP Diapositive 42 / 73 Jean-Marc PUJOS
Bibliographie
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 43 / 73
Jean-Marc PUJOS
PROGRAMMATION OO (3)
Dclaration
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
La dclaration dune classe sappuie sur le mot cl class. La syntaxe est comparable celle de la dclaration des fonctions.
class ma_classe { }
Affectation Pour exploiter les mthodes et les proprits dun objet, on utilise un accesseur dont la syntaxe est constitue des caractres - et > cte cte : -> $objet_test -> ma_mthode() ; // appelle la mthode $objet_test -> ma_proprit ; // accde la proprit Oprateur de la classe courante $this-> est l'oprateur de self-rfrence. On peut utiliser un espace pour plus de lisibilit
$this->nb_roues = 4 ; $this -> nb_roues = 4 ;
Bibliographie
PROGRAMMATION OO (4)
class Vhicule { var $nb_roues; function Vhicule( $nb_roues ) { $this-> nb_roues= $nb_roues; } function NbRoues() { return $this-> nb_roues; } ... } $moto= new Vhicule( 2 );
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Constructeur Le constructeur se dclare comme une mthode. Il doit porter le nom de la classe comme en C++ . Il est appel automatiquement lors de l'instanciation de la classe.
Bibliographie
Initiation PHP
Diapositive 45 / 73
Jean-Marc PUJOS
PROGRAMMATION OO (5)
Hritage L'hritage simple est possible en utilisant extends. Remarque : le constructeur de la classe mre n'est pas appel automatiquement. Il convient donc de le faire si ncessaire.
class Automobile extends Vhicule { var $marque= ""; function Automobile( $marque, $nb_roues ) { $this-> Vhicule( $nb_roues ); // appel constructeur classe parente $this-> marque= $marque; // set de la marque } }
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 46 / 73
Jean-Marc PUJOS
PROGRAMMATION OO (6)
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Limitations Il n'y a pas notion de destructeur d'objet en PHP. L'hritage multiple n'existe pas Il n'y a pas de mthodes et attributs privs. Tout est public et accessible de l'extrieur.
Un objet instanci n'est pas une rfrence (un pointeur) mais une variable, sorte de ''tableau associatif muni de mthodes''. On peut s'en rendre compte sur une copie d'objet : $auto= new Vhicule( 4 ); $moto= $auto; $moto-> nb_roues= 2; echo $auto-> nb_roues; // 2 et non 4 => $auto et $moto sont deux objets distincts.
Bibliographie
Initiation PHP
Diapositive 47 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
SGBD
Bibliographie
Initiation PHP
Diapositive 48 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Serveur de donnes
Initiation PHP
Diapositive 49 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
L'utilisation en gnral dun SGBD (tel que MySQL) avec PHP s'effectue en 5 temps : 1. 2. 3. 4. 5. Connexion au serveur de donnes Slection de la base de donnes Requte Exploitation des requtes Fermeture de la connexion
Bibliographie
Initiation PHP
Diapositive 50 / 73
Jean-Marc PUJOS
Remarque : la deuxime mthode diffre de la premire par le fait que la connexion reste active aprs la fin du script.
<? if( mysql_connect("ma_base" , $login , $password ) > 0 ) echo "Connexion russie ! " ; else echo "Connexion impossible ! " ; ?>
Bibliographie
Initiation PHP
Diapositive 51 / 73
Jean-Marc PUJOS
Pour faire cette slection, utilisez la fonction mysql_select_db et vous lui passez en paramtre, le nom de votre base.
<? if( mysql_select_db("ma_base" ) == True ) echo "Slection de la base russie" ; else echo "Slection de la base impossible" ; ?>
Bibliographie
Remarque : les tapes slection et requte peuvent tre faites en mme temps, mais il est plus simple surtout pour une seule base, de slectionner la table avant de commencer les requtes. Ainsi, toutes les requtes venir utiliseront cette base par dfaut.
Initiation PHP Diapositive 52 / 73 Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 53 / 73
Jean-Marc PUJOS
Aprs l'excution d'une requte de slection, les donnes ne sont pas "affiches", elles sont simplement mises en mmoire, il faut les chercher, enregistrement par enregistrement, et les afficher avec un minimum de traitement. PHP gre un pointeur de rsultat, c'est celui qui est point qui sera retourn. Lorsque vous utilisez une fonction de lecture, le pointeur est dplac sur l'enregistrement suivant et ainsi de suite jusqu' ce qu'il n'y en ait plus. Les fonctions qui retournent un enregistrement sont : mysql_fetch_row, mysql_fetch_array et mysql_fetch_object et prennent comme paramtre l'identifiant de la requte. Les 3 exemples suivants partent d'une requte "SELECT nom, prnom, date FROM membres."
Initiation PHP Diapositive 54 / 73 Jean-Marc PUJOS
Bibliographie
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
mysql_fetch_array : Cette fonction retourne un enregistrement sous la forme d'un tableau associatif.
<? $enregistrement = mysql_fetch_array ($rsultat); // Affiche le champ - prnom echo $enregistrement["prnom"]."<br>"; // Affiche le champ - nom echo $enregistrement["nom"] . "<br>"; // Affiche le champ - date echo $enregistrement["date"] . "<br>"; ?>
Bibliographie
Diapositive 55 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
mysql_fetch_object : Cette fonction retourne un enregistrement sous forme d'une structure (objet).
<? $enregistrement = mysql_fetch_object ($rsultat ); // Affiche le champ - date echo $enregistrement->date . "<br>"; // Affiche le champ - nom echo $enregistrement->nom . "<br>"; // Affiche le champ - prnom echo $enregistrement->prnom . "<br>"; ?>
Bibliographie
Initiation PHP
Diapositive 56 / 73
Jean-Marc PUJOS
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 57 / 73
Jean-Marc PUJOS
Vous pouvez fermer la connexion au moyen de la fonction mysql_close, mais il est bon de savoir que cette opration sera faite lorsque le script se terminera. C'est donc une opration facultative.
Bibliographie
EXEMPLE (1)
Soit le programme formif.php :
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
<HTML> <HEAD> <TITLE>Programmation Web avec PHP, Code V-1: Mise en oeuvre d'un test (IF) </TITLE> </HEAD> <BODY> <H1>Exemple de test (IF)</H1> <i>Saisir les nombres entiers tester :</i><br> <FORM action="formifres.php" method=GET> <b><input type=text size=3 name="a"> est-il compris entre <input type=text size=3 name="b"> et <input type=text size=3 name="c">?</b> <br><br> <input type=submit value="Test"> </FORM> <BR><HR><P><A href="menu.php">Retourner au menu principal</A></P> </BODY> </HTML>
Initiation PHP Diapositive 59 / 73 Jean-Marc PUJOS
EXEMPLE (2)
qui donne sur un navigateur cette prsentation :
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 60 / 73
Jean-Marc PUJOS
EXEMPLE (3)
Soit le programme formifres.php :
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
<HTML><HEAD><TITLE>Programmation Web avec PHP, Code V-2: Mise en oeuvre d'un test (IF), rsultat</TITLE></HEAD> <BODY> <H1>Rsultat de l'exemple de test (IF)</H1> <? $ai = intval($a); $bi = intval($b); $ci = intval($c); if ($ci < $bi) { $tmp = $ci; $ci = $bi; $bi = $tmp; } echo "<font color=\"008800\"><b><i>$ai est-il compris entre $bi et $ci ?<br></i>"; echo "</font><font color=\"ff0000\">"; if ($ai < $bi) {echo "Non, $ai est infrieur $bi " ; } elseif ($ai > $ci) { echo "Non, $ai est suprieur $ci " ; } else { echo "Oui, $ai est compris entre $bi et $ci " ; } ?> <BR><HR><P><A href="menu.php">Retourner au menu principal</A></P> </BODY></HTML>
Initiation PHP Diapositive 61 / 73 Jean-Marc PUJOS
EXEMPLE (4)
Ce qui donne sur un navigateur :
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 62 / 73
Jean-Marc PUJOS
PHP
ASP (1)
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 63 / 73
Jean-Marc PUJOS
PHP
PHP
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax <? if($myvar) { ?> ... <? } else { ?> ... <? } ?> <? echo "con" . "catnation"; ?> <? Header("Location: page.htm"); ?> conditionnelle <? include("truc.php"); ?> brute <? require "truc.php"; ?> <? code; ?> syntaxe JavaScript <? // commentaire ?> $variable
ASP (2)
ASP
<% code %> syntaxe VBScript <% ' commentaire %> variable <% ="con" & "catnation" %> <% response.redirect "page.htm" %> relative <!-- #include file="truc.asp" --> absolue <!-- #include virtual="/truc.asp" -> <% if myvar <> "" then %> ... <% else %> ... <% end if %>
Bibliographie
Initiation PHP
Diapositive 64 / 73
Jean-Marc PUJOS
PHP
PHP
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax PHP4 <? session_register("email"); $email="info@asp-php.net"; echo $email; ?> <? $bool=mail(...); ?> <? echo getenv(...); ?> <? setcookie("asphp", "toto",time()+86400); ?> <? echo $asphp; ?> <? setcookie("asphp"); ?> (mthode POST) <? echo $champ1; ?> (mthode GET) <? echo $langue; ?>
ASP (3)
ASP
(mthode POST) <% =request.form("champ1") %> (mthode GET) <% =request.querystring("langue") %> Ecrire <% response.cookies("asphp")="toto" response.cookies("asphp").Expires = Date+1 %> Lire <% =request.cookies("asphp") %> Dtruire <% response.cookies("asphp")="" %> <% bool=Mail.sendMail %> <% =request.servervariables(...) %> <% Session("email")="info@asp-php.net" %> <% =Session("email") %>
Bibliographie
Initiation PHP
Diapositive 65 / 73
Jean-Marc PUJOS
PHP
ASP (4)
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
PHP
SGBD MySQL : <? mysql_connect($host,$user,$pass); mysql_select_db("$bdd"); ?> <? $inF = fopen($Fnm,"w"); fputs($inF,"Bonjour"); fclose($inF); ?> <? $inF = fopen($Fnm,"r"); echo fgets($inF, 4096); fclose($inF); ?>
ASP
SGBD Access : <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open DSN %> <% set inF = FSO.CreateTextFile(Fnm) inF.WriteLine("Bonjour") inF.Close %> <% set inF = FSO.OpenTextFile(Fnm,1,false) %> <% =inF.ReadLine %> <% inF.Close %>
Bibliographie
Initiation PHP
Diapositive 66 / 73
Jean-Marc PUJOS
PHP
AJAX (1)
AJAX : le concept
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
AJAX (pour Asynchronous JavaScript and XML) n'est pas un nouveau langage de programmation, mais plutt une combinaison de diffrentes techniques dj existantes. En rgle gnral, on marie les ingrdients suivants:
(X)HTML et CSS pour la description du contenu JavaScript pour l'interaction du ct du client PHP (ou un autre langage de programmation) pour l'interaction du ct du serveur XML (ou un autre format d'change de donnes) pour le contenu L'objet XMLHttpRequest (avec Firefox, Safari, Opera) ou Microsoft.XMLHTTP (sous Internet Explorer) pour effectuer des transferts en tche de fond
Bibliographie
Principe : une premire page s'affiche, puis diffrents vnements dtects en JavaScript lancent ensuite des requtes du ct du serveur.
Initiation PHP Diapositive 67 / 73 Jean-Marc PUJOS
PHP
Navigateur Client
Interface utilisateur
AJAX (2)
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
AJAX n'est donc pas un nouveau langage de programmation, mais plutt un concept qui permet de faire des appels asynchrones au serveur depuis le client. Pour cela on utilise le langage JavaScript, et puis XML avec lobjet XMLHttpRequest pour les transmettre de faon asynchrone sur le poste serveur. Lors de ces appels, le serveur retournera des donnes formates souvent en XML- qui seront rcupres et traites laide dun programme JavaScript.
Requte HTTP
Client
Serveur Web et/ou XML
Activit de lutilisateur
Moteur Ajax
Traitement du client
Entre
Systme Serveur
Temps
Modle dapplication Web Ajax
Transmission Transmission des donnes des donnes Transmission Transmission des donnes des donnes
Bibliographie
Serveur
CNAM UE IHM NSY110 Initiation PHP
Traitement du serveur
Traitement du serveur
Diapositive 68 / 73
Jean-Marc PUJOS
PHP
AJAX (3)
Etape 1 : il faut avoir stock les donnes dans des fichiers en format xml. Ces fichiers peuvent tre soit le rsultat dune requte SQL (select * from table) ou un fichier comportant des donnes, des paramtres respectant une certain format. Ce fichier sera appel et mis jour de manire asynchrone la demande du client. Etape 2 : il faut ensuite crer un objet de la classe XMLHttpRequest pour rcuprer le contenu du fichier XML qui sera trait et affich en utilisant une fonction JavaScript (complte ventuellement par une feuille de style CSS).
cration dune instance de XMLHttpRequest grce l'appel de fonction new XMLHttpRequest() association de larbre XML ce nouvel objet avec une mthode denvoi GET ou POST , il suffit pour se faire dappeler la fonction open() de lobjet avec comme paramtre ladresse o se trouve le fichier XML sur le serveur.
Bibliographie
Etape 3 : il ne reste plus qu traiter ce fichier car ce stade on a la rponse du serveur en arrire plan, c'est--dire sans que la page affiche sur le navigateur ne bouge, on pourra donc linterroger avec du code JavaScript et puis mettre jour certaines parties de la page (avec le mme langage)
Initiation PHP
Diapositive 69 / 73
Jean-Marc PUJOS
PHP
AJAX (XMLHttpRequest)
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
XMLHttpRequest xmlHttp = new XMLHttpRequest(); // Corps de la fonction function callingPage (idDiv, rept, cible, extension) {// ne continuer que si lobjet xmlHttp nest pas vide (instanci) if (xmlHttp) { // Tentative de connexion au serveur try { //valeurs (ventuelles) saisies par l'utilisateur, pas de valeur dans ce cas // construction du chemin daccs au fichier selon les paramtres de la fonction var chemin = rept+cible.text+"."+extension; // le rpertoire automatiquement gnr var POSTparams = ""; // Lappel asynchrone (true), avec la mthode POST, vers la variable chemin xmlHttp.open("POST", chemin, true); xmlHttp.onreadystatechange = function(){ // Rcuprer Lors que readyState de lobjet xmlHttp a la valeur 4 et son status=200 if (xmlHttp.readyState == 4){ if (xmlHttp.status == 200){ try { //faire quelque chose de la rponse du serveur : xhr.responseXXX .... document.title=cible.text; //titre de la page est mis jour, cest le nom du fichier var reponse = xmlHttp.responseText;
Initiation PHP Diapositive 70 / 73 Jean-Marc PUJOS
PHP
AJAX (XMLHttpRequest)
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
// Le contenu de la div passe en paramtre la valeur reponse, envoy du serveur document.getElementById(idDiv).innerHTML=reponse; } catch(e) { alert("Error reading the response : " + e.toString());} } else {// Afficher un message si le fichier nexiste pas alert("Un problme a t rencontr en chargeant le donnes ***:\n" + xmlHttp.statusText); } } } //cette ligne est ajoute si et seulement si la mthode de open est POST xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xmlHttp.send(POSTparams); } //afficher un message derreur si lobjet xllHttp=null catch (e) { alert("Connexion au serveur impossible :\n" + e.toString()); } } }//fin de la fonction
Initiation PHP Diapositive 71 / 73 Jean-Marc PUJOS
PHP
AJAX (6)
La mthode sappelle Ma_mthode() et possde 4 paramtres (lidentifiant de la div mettre jour, le rpertoire o se trouve le fichier XML, le nom du fichier et son extension), elle tient compte des dclenchements dexceptions grce aux blocs TRY CATCH. La variable xmlHttp reprsente lobjet XMLHttpRequest qui est instanci lextrieur de la fonction dans le fichier JavaScript. <a href="javascript:Ma_mthode( 'CORP , 'AJAX/RESSOURCES/ , 'Ressources1 , 'php , 'Ressources );"> <img src = "Images/gestion_ressources.PNG" height="90" class="imgMenue" /></a>
Bibliographie
Initiation PHP
Diapositive 72 / 73
Jean-Marc PUJOS
BIBLIOGRAPHIE
Les sites Web :
http://www.php.net/ (Site officiel PHP) http://www.phpindex.com/ http://www.phpfrance.com/ http://www.phpinfo.net/ http://www.phpdebutant.com/ http://www.ilovephp.com/ http://www.asp-php.com/ http://www.mysql.org/ (Site officiel MYSQL)
Introduction Variables & Ctes Oprateurs Tableaux Contrles Fonctions Fichiers Programmation SGBD Exemple PHP PHP ASP Ajax
Bibliographie
Initiation PHP
Diapositive 73 / 73
Jean-Marc PUJOS