Sie sind auf Seite 1von 14

PHP H-H-A-W (Slimani.

M)

PHP I-Dfinition :
PHP (Personal Home Page ou Hypertext Preprocessor) est un langage de scripts. Php est un langage excut cot serveur, la diffrence de JavaScript et HTML, donc vtre code n'apparat pas dans la source de vtre page Web, seule les informations que vous souhait affiches seront visible par les visiteurs. Une page qui ne contient que du HTML possde l'extension ".HTML". Une page qui contient du code PHP possde l'extension ".PHP". PHP permet d'interfacer trs facilement de trs nombreuses bases de donnes notamment MySQL qui est gratuite et performante. Un des gros avantages de PHP est l'intgration dans la mme page du code HTML et du code PHP. Vous pouvez avec PHP taper vos lignes de codes en HTML, puis intgrer ou vous le dsirez du code PHP et ainsi de suite. Ce quil bien retenir aussi, cest que PHP vous permet de crer des pages Web dynamiques, qui se mettent jour toutes seules.

II-Diffrences entre HTML_JavaScript et PHP


HTML_JavaScript : 1- Le client : demande avoir une page Web. Il va donc faire une demande au serveur. 2- Le serveur : rpond en envoyant la page Web. PHP : 1- Le client : demande avoir une page Web. Il va donc faire une demande au serveur. 2- Le serveur nenvoie pas la page au client. Il la gnre. En effet le client nest pas capable de lire une page PHP. Le serveur va transformer la page en page HTML. 3- Une fois la page et gnre, elle ne contient plus que du code HTML. Le serveur peut lenvoyer au client.

III-Les bases du PHP


Plusieurs balises sont utilisables pour indiquer le dbut et la fin de la partie en langage PHP. <? Php /Dbut <? codes php ... codes php ... ?> ?> /fin Chaque instruction de code PHP doit tre termine par un point virgule.
1

PHP H-H-A-W (Slimani.M)

Pour afficher des textes : En utilisant soit la fonction Echo ou Print <? Echo "message" ; Echo (message); Echo message ; Echo (merci); ?> Il est possible de mettre des balises HTML dans une instruction PHP. Commentaire : Si votre commentaire ne se situe que sur une ligne vous pouvez le faire prcder par deux slashs // ou par un dise # et sur plusieurs ligne on utilise /*. Exemple : <html><body> Rsultat: <?php Jhabite au echo "Jhabite au <b>TUNIS</b> <BR>"; // Message avec retour la TUNIS ligne Jai 23 ans echo "<BR>Jai 23 ans "; ?> </body></html> Le fichier PHP ne sera excut qu travers son adresse WEB (http://localhost/) ou (http://127.0.0.1/...) etc A- Les structures des donnes : Les constantes : define("Nom_Const "," <? define ("Nom","Med_Salah") ;
Rsultat: Je Valeur") suis:Med_Salah

<? Print "message" ; Print ( "message" ) ; Print message ; Print (message) ;?>

Echo "Je suis :".Nom ;?> - Il est possible de concatner des chanes avec le point: <? $chaine1 = "Med"; Rsultat: Je $chaine2 = "Salah"; suis:MedSalah Echo $chaine1.$chaine2; ?> Les variables : Le caractre qui prcde toutes les variables PHP est le dollar : $. Les types texte : <? $variable = "bonjour"; //on dfini une variable echo "$variable"; //on affiche le rsultat ?>

PHP H-H-A-W (Slimani.M)

Les nombres : <? $variable = 3; //on dfini une variable echo $variable*3; //on affiche le rsultat qui gale 9 ?> Les boolens : <? $variable1 = true; $variable2 = false ;?> Les types des variables : Pour connaitre les types des variables on utilise la fonction Gettype() <? Rsultat: $var1 = 'salah' ; string integer $var2 = 3 ; double $var3 = 15.8 ; Echo (gettype($var1)."<br>".gettype($var2)."<br>".gettype($var3)); ?> Aprs la fonction gettypes($var1) il existe un point car le rsultat est une chaine de caractre.
Type renvoy par gettype Type de la donne

Integer Double String Array Object Class NULL

Entire Relle chane simple liste ou tableau Objet (pointeur) Classe Type inconnu

Conversion de types: On utilise la fonction Settype($Nom_Var, "type") ; ou $Nom_Var=(type)$Nom_Var ; Rsultat: <? var3 contient:15 $var1 = 'salah' ; et var2 contient:3 $var2 = 3; $var3 = 15.8 ; Settype ($var3, integer); $var2 = (string)$var2 ;
3

PHP H-H-A-W (Slimani.M)

Echo ("var3 contient :".$var3."<br>"."et var2 contient :".$var2 ); ?> Int isset ($var) : La fonction Isset retourne le rsultat True (1) si la variable var possde une valeur, False (0) sinon. <? $Nom= "MedSalah" ; Echo (isset($Nom)) ; // 1 ?> Les oprateurs : Daffectation : = (exemple : $nom= "ali") De comparaison : = = (exemple: if ($nom= = ali){}) ,> ,>= ,< ,<=, De calcul : +, -, /, *, % (Modulo) Logique : && et, || ou, != diffrent, ! (non) (exemple: if (($nom= = ali)&&($prenm !="salah")){}) ! not (non) ++: increment, - - decrement (exemple: for(i=1 ;i<=10 ;i++{}) Exercice 1 : crire une script PHP qui permet de dclarer deux variables quelconque et de faire les oprations suivante : addition, soustraction, multiplication, division, reste de division et la somme de toutes les oprations. Et enfin dafficher les rsultats entiers des tous les oprations sous la forme suivante : Par exemple : x=20, y=3 Calculer : Addition = 23 Soustraction = 17 Multiplication = 60 Division = 6 Reste de division = 2 Somme = 108
B

Les structures de contrle simple et itratives : Comme en JavaScript le Syntaxe est : if (condition) {cas A} else {cas B} for (initialisation ; condition ; incrment) {} : exemple : for ($i = 0 ; $i<10 ; $i++)
4

? }>

PHP H-H-A-W (Slimani.M)

while (condition) {.}; do {.} while (condition); Switch($var) {Case $valeur1: Liste dinstruction; Break; Case $valeur2: Liste dinstruction; Break; Default: liste dinstruction; }

print 'operation par defaut';

Correction exercice1 :
<?php echo "<h1><b><i>Calculer</i></b></h1>"; $x=20; $y=3; $add=$x+$y; $sous=$x-$y; $mult=$x*$y; $divs=$x/$y; $mod=$x%$y; $divs = (integer)$divs ; $somm=$add+$sous+$mult+$divs+$mod; echo ("l'addition=".$add."<br>"."La soustraction=".$sous."<br>"."La multiplication=".$mult."<br>". " La division=".$divs."<br>"."Le reste=".$mod."<br>"."Et la somme=".$somm); ?>

Exercice 2 : crivez une script PHP qui permet de dclarer deux variables x et y, de calculer la puissance de x par y, de calculer la factorielle de y puis dafficher les rsultats sur lcran.

PHP H-H-A-W (Slimani.M)

Exemple : Si x=4 et y=2 le rsultat : la puissance de 4 par 2= 16 et la factorielle de 2=2 <?php .. ... ?> Exercice 3 : crivez une script PHP permet dafficher les entier diviser par 5 entre 1 et 100 puis dafficher leur somme. <?php
... ... ... ... ... ?> VI- Les entrs sorties en PHP :

Les sorties en PHP : Laffichage se fait grce la fonction Echo ou Print : $x= "MedSalah" ; Echo(" je suis $x") ; Les entres en PHP : Il existe deux solutions pour rcuprer des donnes partir dune page PHP : 1- Rcuprer les informations saisies travers les objets des formulaires (Zone de texte, case cocher) : on utilise lune des deux fonctions suivantes : $_GET[Nom_Objet] ou $_POST[Nom_Objet], dpendamment de la valeur de la proprit Methode de la balise FORM (Rappel :<form action="@" method="POST">) Exemple : Le nom de la page et Exemple.Php <?
if (isset($_GET['Nom'])) {$Nom=$_GET['Nom']; echo ("Merci $Nom");} if (isset($_POST['Nom'])) {$Nom=$_POST['Nom']; echo ("Merci $Nom");} ?> <form action="Exemple.php" methode="post"> Nom :<input type="text" name ="Nom"> 6 <input type="submit" value ="valider"> </form> La mthode Isset permet de retourner le

rsultat True (1) si la variable $_Get[Nom] possde une valeur si non false,
Action="Exemple.php" Designer la place du rsultat de lexcution de script PHP.

PHP H-H-A-W (Slimani.M)

Rcupration des informations envoyes en paramtre un fichier PHP travers la syntaxe suivante : http://adresse-url/nom_du_fichier .php? variable1=valeur1&variable2=valeur2...... Exemple : <a href="Exemple.php? Nom=Med&Prenom=Salah">Cliquer ici</a>
2 Rappel (les formulaires):

<FORM method="post" action="URL d'expdition" "> ... les formulaires proprement dit ... </FORM> L'attribut "method" vous offre le choix entre Get et Post. La diffrence entre ces deux mthodes repose sur la faon dont les donnes seront transmises au serveur et exploites par celui-ci. Gnralement quand on rcupre les valeurs dun formulaire, on utilise le prfixe $_Post[Nom_Objet] et quand on rcupre les valeurs de puis une adresse on utilise le prfixe $_Get[Nom_Objet] L'attribut "action" spcifie l'adresse d'expdition (denvoi) des donnes (indique la page afficher). Exercice : Crer une page PHP permettant dafficher un formulaire HTML classique comportant les 4 zone de saisi (Nom, Prnom, adresse et NumTel) et un bouton de type submit, suite un click sur le bouton un nouvelle fichier affiche tous les informations saisi par lutilisateur.

Les tableaux en PHP


Un tableau est compos dun certain nombre dlments possdant chacun une valeur

propre ainsi quune indice permettant de faire rfrence cet lment. Par dfaut, lindice du premier lment dun tableau est zro. Lindex dans le tableau peut tre indiffremment un entier ou une chane de caractres. Les lments dun tableau peuvent tre de type diffrent. 2 mthodes sont possibles : Affecter directement les valeurs au tableau : Exemple : <?php $tableau[0]="a"; $tableau[1]="b"; $tableau[2]="c"; ?> Utiliser la fonction array(). Exemple : <?php
7

PHP H-H-A-W (Slimani.M)

$tableau = array(a, b, c) ; ?> On peut utiliser loprateur => afin de spcifier les indices particuliers des lments dun tableau.
<?php

$tableau = array(1=>"a", 2=>"b", 3=>"c") ; ?> Exemple rcapitulatif :


<?php

$tab1 = array(1,2,3,4); // automatique $tab2 = array('couleur' => 'rouge', gout' => 'sucre', 'forme' => 'rond', 'nom' => 'pomme'); // associative echo ($tab1[0]); // affiche 1 echo ($tab2['gout']); // affiche sucre ?> Parcourir un tableau Les deux fonctions each() et list() peuvent tre utilises conjointement afin de parcourir un Rsultat: tableau, mme si les indices ne sont pas squentiels. L'lment couleur est gal Exemple : rouge <?php L'lment gout est gal sucre while (list ($cle, $valeur) = each ($tab2)) { L'lment forme est gal rond echo ("L'lment $cle est gal $valeur <br>"); L'lment nom est gal pomme } ?> Il existe dautres fonctions prdfini en PHP permettant de grer un tableau :

Fonctio n
reset() pos() key() next() prev() end() sizeof() sort() rsort() ksort() krsort()

Description
Remet le pointeur interne de tableau au dbut. Retourne la valeur de l'lment courant d'un tableau. Retourne l'indice de l'lment courant d'un tableau. Avance le pointeur interne d'un tableau. Recule le pointeur courant de tableau. Positionne le pointeur de tableau en fin de tableau. Retourne le nombre dlments dans un tableau Trier un tableau par valeur croissante Trier un tableau par valeur dcroissante Trier un tableau par indice croissante Trier un tableau par indice dcroissante

Exemple
reset ($tab2) ; $a=pos ($tab2) ; $b=key($tab2) ; next($tab2) ; prev($tab2) ; end($tab2) ; $c=sizeof($tab2) ; sort($tab2) ; rsort($tab2) ; ksort($tab2) krsort($tab2)

Rsultat dexcution: Exemple 1 : <?php L'lment 0 est gal $pays = array ("us" => "Etats-Unis", "ch" => "Suisse", "ca" => "Canada","fr" => Allemagne "France","de" => "Allemagne"); L'lment 1 est gal sort ($pays); Canada while (list ($cle, $val) = each ($pays)) 8 L'lment 2 est gal Etats-Unis L'lment 3 est gal France

Suisse La taille du tableau est:5


PHP H-H-A-W (Slimani.M)

{ echo "L'lment $cle est gal $val<BR>\n"; } Echo "La taille du tableau est : ".sizeof($pays) ; ?> Exemple 2 : <?php Rsultat dexcution: $pays = array ("us" => "Etats-Unis", "ch" => "Suisse", "ca" => "Canada","fr" => L'lment: ca est gal "France","de" => "Allemagne"); Canada ksort ($pays); L'lment: ch est gal for (reset($pays);$key=key($pays);next($pays)) Suisse { L'lment: de est gal $x=pos($pays); Allemagne L'lment: fr est gal echo "L'lment: $key est gal $x <BR>\n"; France } L'lment: us est gal ?> Etats-Unis Exercice 1: crivez une script PHP permettant dinitialiser un tableau de 6 lments dune manire associative (noir=52, bleu=89, rouge=70, jaune=30, blanc=40 et vert=10) T.A.F : Afficher tous les lments du tableau. Afficher la taille du tableau. Afficher le contenu du couleur rouge. Trier les indices du tableau dune manire descendante. Afficher ces derniers comme dans lexemple ci-dessus.

Les Chaines de caractre en PHP

Les fonctions prdfinies sur les chaines de caractre : (Exemple :$x="Bonjour Salah

")

Fonction
subst(string,dbut,taille) trim(string) strlen(string) implode(string sep,tab) sep :Separateur explode(string sep,strin) strin:String/sep: sparateur str_replace()

Description
Retourne une portion de string retire les espaces de dbut et de fin Retourne la longueur de la chane Retourne une chane spare de tous les lments du tableau Retourne un tableau qui contient les lments de la chane string Remplace toutes les occurrences de modle dans chane par autre

Exemple
$y=substr($x,7,15) ;//salah $w=trim($x) ;//Bonjour Salah $y=strlen($w) ;//13 $pays = array ("a","b","c"); $y=implode("|",$pays);//a|b|c $chain="a|b|c" ; $tab=explode("|",$chain) ; $z=str_replace ("Salah","Med", $x);

Exercice 2: crivez une script PHP permettant dinitialiser la chaine ch1 "Je suis" et ch2 "Med Salah" T.A.F : Concatner les deux chaines dans une autre. Afficher les tailles de trois chaines comme : ( La taille de ch1=, la taille de ch2= et la taille de ch3= )
9

PHP H-H-A-W (Slimani.M)

Remplacer le mot Salah par "Ali" et afficher le rsultat. Retourner un tableau qui contient les lments de la chaine.

Les fonctions en PHP


Comme en C la syntaxe et : Function Non_Fonction ($liste des argument) { Instruction1 ; Instruction2 ; Instruction n ; [return $valeur de retour ;] } Exemple : <? function carre($nombre) { return $nombre * $nombre ; } echo carre(3) ; //affiche la valeur 9 echo carre(4) ; //affiche la valeur 16 ?> Remarque : En PHP toute fonction doit tre dfinie avant dtre utilise. Exercice 3: - crivez une script PHP permet deffectuer le calcul combinatoire : Avec n et p sont dclar par lutilisateur puis afficher le rsultat.

10

PHP H-H-A-W (Slimani.M)

Correction Exercice 1 : <? $tab = array ("noir"=>52, "bleu"=>89,"rouge"=>70,"jaune"=>30,"blanc"=>40 ,"vert"=>10); $t=sizeof($tab); echo "la taille du tableau=$t<br>"; echo ($tab['rouge']); krsort ($tab); for (reset($tab);$key=key($tab);next($tab)) {$x=pos($tab); echo "L'lment: $key est gal $x <BR>\n"; }?> Correction Exercice 2 : <? $ch1="je suis"; $ch2="Med Salah"; $ch3=$ch1.$ch2; echo ("la taille de ch1=".strlen($ch1).", la taille de ch2=".strlen($ch2)." et la taille de ch3=".strlen($ch3)."<br>"); $z=str_replace("Salah","Ali",$ch2); echo "$z"; $tab=explode("|",$z); ?> Correction Exercice 3 : <? $n=6; $p=3; function fact ($x) { $p=1; for($i=1;$i<=$x;$i++) $p=$p*$i; return $p; } $resultat=fact($n)/(fact($n-$p)*fact($p)); echo ("le resultat=".$resultat); ?>

Utilisation de MySQL avec PHP

Lutilisation de MySQL avec PHP seffectue en quatre tapes principales: Connexion au serveur des donnes. Slection de la base des donnes. Excution de la Requte. Exploitation des requtes.
I. Connexion au serveur des donnes : (En utilisant la fonction : mysql_connect())

int mysql_connect (string hostname, string username , string password):


11

PHP H-H-A-W (Slimani.M)

hostname: Ladresse du serveur de donne qui comme valeur par dfaut "localhost". username: Le nom dutilisateur qui comme valeur par dfaut "root". password: Le mot de passe qui comme valeur par dfaut " ". La fonction mysql_connect() retourne un entier permettant de vrifier ltablissement de la connexion, par exemple : <? if(mysql_connect("localhost" , "root" , " ") > 0 ) {echo " Connexion russie ! "; }else {echo " Connexion impossible ! "; }?> Ou encore : <? $connexion= mysql_connect("localhost" , "root" , " ") ;?>
II. Slection de la base des donnes : (En utilisant la fonction : mysql_select_db())

int mysql_select_db(string database_name, [int link_identifier]) database_name : Nom de la base de donnes (obligatoire) link_identifier : Identifiant de la connexion (facultatif) si on ne donne pas le paramtre link_identifier, la fonction utilise la dernire connexion ouverte. La fonction mysql_select_db() retourne true ou false selon que lopration russit ou non. Exemple : <? if(mysql_select_db( "ma_base ") = = True ) {echo "Slection de la base russie"; } else {echo "Slection de la base impossible"; }?> Ou encore : <? $conx = mysql_connect("localhost" , "root" , " ") ; $teste = mysql_select_db( "ma_base ",$conx) ?>
III. Excution dune requte SQL : (En utilisant la fonction : mysql_query())

int mysql_query (string query, [int link_identifier]) Cette fonction permet denvoyer au serveur MySQL une instruction SQL, par exemple : <? $requete = "SELECT * FROM tab1 WERE nom = 'alain' "; $result = mysql_query( $requete ); ?> IV. Exploitation dune requte A la suite dune requte de slection (dinsertion, de modification ou de suppression), les donnes sont mises en mmoire. Pour pouvoir les exploiter, PHP gre un pointeur de rsultat, c--dire quil repre un enregistrement parmi les autres puis il le gre. La fonction de lecture du rsultat : Array mysql_fetch_array (int result, int result_type) Extrait la ligne sous forme dun tableau associatif. Le paramtre result_type est facultatif. Il peut prendre les valeurs suivantes : MYSQL_NUM (Les indices du tableau sont numriques), MYSQL_ASSOC (Les indices du tableau sont associatifs) ou MYSQL_BOTH (Les indices du tableau sont la fois numriques et associatifs). Si le paramtre result_type na pas spcifi, MYSQL_BOTH est considre comme valeur par dfaut de cet argument. <? $enregistrement = mysql_fetch_array($result);
12

PHP H-H-A-W (Slimani.M)

echo $enregistrement["prenom"] ; //Affiche le champ prenomecho $enregistrement["nom"] ; //Affiche le champ nomecho $enregistrement["date"] ; //Affiche le champ date?>
int mysql_num_rows (int result)

Retourne le nombre denregistrements qui ont t retourns par la slection. Exemple : <? $requete = "SELECT * FROM membres"; $result = mysql_query($requete); echo "il y a" .mysql_num_rows($result) ." membre(s)"; while($enregistrement = mysql_fetch_array($result)) { echo $enregistrement["nom"]. " " . $enregistrement["prenom"] ; } ?> Gnralit et rappel sur les requtes SQL : Slection Insertion Modification mysql_connect("localhost", mysql_connect("localhost","root"," ") ; mysql_connect("localhost", "root"," ") ; mysql_select_db("base1") ; "root"," ") ; mysql_select_db("base1") ; $req="Insert into tab values(120,..)"; mysql_select_db("base1") ; $requete ="Select * From tab"; mysql_query($req); $re="Update tab set where" mysql_query($requete); mysql_query( $re);

Pour le requte de type Delete on utilise la mme syntaxe. Autre fonction : int mysql_affected_rows(): Permet de connatre le nombre denregistrement affects par la requte Update.( <? Echo mysql_affected_rows()."enregistrement modifies."; ?> ) Application : Crer une application Web de Gestion de Stock qui possde les fonctionnalits suivante : - Page daccueille qui comporte deux liens vers Saisie.html et Recherche.php (La page daccueille lextension PHP car il comporte la fonction Date()). - Une interface de saisie des produits. - Une interface de recherche des produits.
Gestion de Stock Inscription Recherche 12/04/08 Inscription Numro : Nom : Date Commande : Prix :
Annul er

Recherche Numro de produit2:


Cherch er

Nu m 2

Nom

DateCo

Prix 625.0 00

Valid er

Page daccueille

Interface de saisie

Ordinate 11/4/20 ur 08 Interface de

recherche
13

PHP H-H-A-W (Slimani.M)

On suppose quon dispose dune base de donnes "Stock", compose dune table Produit. Linscription se fait avec lutilisation dun autre page Ins.php (ce dernier affiche "Inscription avec suces" aprs linsertion) et la recherche se fait dans le mme page Recherche.php. Correction :
<? //Ins.Php

//on se connecte la base de donnes


$db = mysql_connect("localhost","root","") or die ("erreur de connexion");

//on slectionne vtre base


mysql_select_db("stock",$db) or die ("erreur de connexion base"); $Num=$_POST['Num']; $Nom=$_POST['Nom']; $Date=$_POST['Date']; $Prix=$_POST['Prix']; mysql_query("INSERT INTO produit VALUES ('$Num','$Nom','$Date','$Prix')"); echo ("<center>Inscription avec suces</center>"); ?> <table border=1> <html> //Recherche.php <tr> <head><title>Recherche</title></head> <td>num</td> <body> <td>nom</td> <? <td>Date</td> if(isset($_GET['Num'])or isset($_POST['Num'])) <td>Prix</td> { </tr> if (isset($_GET['Num']))$Num=$_GET['Num']; <tr> if (isset($_POST['Num']))$Num=$_POST['Num']; <td> <? echo $enreg["Num"];? } ></td> mysql_connect("localhost","root",""); <td><? echo $enreg["Nom"];? mysql_select_db("stock"); ></td> $requete="select * from produit where Num='$Num'"; <td><? echo $resultat=mysql_query($requete); $enreg["DateCom"];?></td> $enreg=mysql_fetch_array($resultat); <td><? echo $enreg["Prix"];? ?> ></td> <center><b><h2><u>Recherche</u></h2></b></center><br> </tr> <form name="form" method="POST" action="Recherche.php"> </table> Numro de produit:<input type="text" name="Num"> <br> </body></html> <center><input type="submit" value="Chercher"></center> </form>

<html><head> //Accueille.php <title>Acueille</title> </head> <body> <b><u><center><H2>Gestion de Stock</H2></center></u></b> <center><a 14 href="saisie.html">Inscription</a></center> <center><a href="Recherche.php">Recherche</a></center> <center><?echo date("j/m/y");?></center>

Das könnte Ihnen auch gefallen