Langage PHP 
les fondamentaux 
M. DIENG Abdoulaye Juillet 2014
Objectif général 
Acquérir les compétences nécessaires pour 
développer des sites Web dynamiques.
Objectifs opérationnels 
 Stocker et utiliser des données à l’aide des variables 
et des opérateurs. 
 Manipuler des tab...
Le Sommaire 
1. Présentation de PHP. 
2. Principe de 
fonctionnement. 
3. Exemple introductif. 
4. Les types de base. 
5. ...
Présentation de PHP 
 PHP est un langage de script exécuté du côté serveur et utilisé 
essentiellement pour créer des pag...
Principe de fonctionnement 
1. Requête de données. 
2. Activation du moteur PHP. 
3. Connexion au serveur BDD. 
4. Extract...
Exemple introductif 
<? 
/* la variable titre stocke le 
titre du script */ 
$titre = ' Script introductif ' 
?> 
<html> 
...
Types de base 
numériques et booléen 
 Type entier: 
• un entier ou integer représente un entier relatif (32 bits) 
• gén...
Types de base 
chaîne de caractères 
 Une string représente une suite de caractères. 
 Il y a 256 caractères, mais une s...
Types de base 
quelques fonctions 
 gettype($var) : retourne le type de $var. 
 settype($var, "type_désiré") : renvoie t...
Types de base 
quelques fonctions sur les strings 
 strlen($str) : renvoie la longueur de $str. 
 strcmp($str1, $str2): ...
Notion de constante 
 Une constante est un identificateur qui représente une valeur 
restant inchangée durant l’exécution...
Tableaux 
présentation 
 Un tableau est un regroupement de données de types distincts 
ou non, désignées par un identific...
Tableaux 
quelques fonctions 
 reset($tab) : déplace le pointeur de $tab au début et retourne la 
première valeur de celu...
Opérateurs 
 Opérateurs arithmétiques 
+, -, *, /, % (modulo), ++(incrément), --(décrément) 
 Opérateurs d’assignation 
...
Structures conditionnelles 
Elles permettent d'exécuter un traitement en fonction d’une (ou 
de plusieurs) condition(s). 
...
Structures itératives 
Elles permettent la répétition d’un traitement en fonction d’une condition. 
 while(condition) { t...
Fonctions 
syntaxe 
 Syntaxe de la définition d’une fonction 
function nomDeLaFonction( [arg_1[, arg_2, …] ]) 
{ 
corpsDe...
Fonctions 
rappel sur les paramètres 
 La communication entre la fonction appelée et le code 
appelant se fait par l'inte...
Transfert de données 
donnée interne transmise d’une page à une autre 
 L’URL (Uniform Ressource Location ou adresse) d’u...
Transfert de données 
données transmises via formulaire 
 Principaux attributs de l’élément form : 
• action="adresse_scr...
Transfert de données 
fichier uploadé via formulaire 
 Pour joindre un fichier à un formulaire : 
• attribut enctype="mul...
Gestion de sessions 
présentation 
 La gestion d’une session permet d'enregistrer (côté serveur) des 
infos sur un intern...
Gestion de sessions 
exemple 
 Stockage d’une information dans une variable 
$total = 35000; // Montant d’une commande pa...
PHP ↔ MySQL 
présentation de MySQL 
 Le SGBDR (Système de Gestion de Bases de données 
Relationnelles) open source le plu...
PHP ↔ MySQL 
étapes de la communication 
Pour que PHP travaille avec MySQL, il faut une : 
1. connexion au serveur 
 auth...
PHP ↔ MySQL 
Connexion/Déconnexion 
• Connexion à l’aide du constructeur de la classe mysqli qui reçoit 
les 4 chaînes : $...
PHP ↔ MySQL 
Connexion/Déconnexion : exemple 
//Définition des paramètres de connexion 
define('SERVER','localhost'); 
def...
PHP ↔ MySQL 
exécution d’une requête de lecture ou d’écriture 
mixed mysqli::query (string $req) 
 Invoquer sur un objet ...
PHP ↔ MySQL 
exploitation d’une select via tableau associatif 
mixed mysqli_result::fetch_assoc( ) 
 Invoquer sur un obje...
PHP ↔ MySQL 
exploitation d’une select via objet 
mixed mysqli_result::fetch_object( ) 
 Invoquer sur un objet mysqli_res...
PHP ↔ MySQL 
autres méthodes 
 mysqli_result::free_result() 
Libère la mémoire associée à l'objet mysqli_result. 
 mysql...
Prochain SlideShare
Chargement dans…5
×

.php1 : les fondamentaux du PHP

562 vues

Publié le

objectif général : Acquérir les compétences nécessaires pour développer des sites Web dynamiques.

objectifs opérationnels :
Stocker et utiliser des données à l’aide des variables et des opérateurs.
Manipuler des tableaux et des chaînes de caractères.
Contrôler le flux d’exécution des instructions.
Définir et utiliser des fonctions.
Transférer des données.
Interfacer PHP avec MySQL.

Publié dans : Logiciels
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
562
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

.php1 : les fondamentaux du PHP

  1. 1. Langage PHP les fondamentaux M. DIENG Abdoulaye Juillet 2014
  2. 2. Objectif général Acquérir les compétences nécessaires pour développer des sites Web dynamiques.
  3. 3. Objectifs opérationnels  Stocker et utiliser des données à l’aide des variables et des opérateurs.  Manipuler des tableaux et des chaînes de caractères.  Contrôler le flux d’exécution des instructions.  Définir et utiliser des fonctions.  Transférer des données.  Interfacer PHP avec MySQL.
  4. 4. Le Sommaire 1. Présentation de PHP. 2. Principe de fonctionnement. 3. Exemple introductif. 4. Les types de base. 5. Les constantes. 6. Les tableaux. 7. Les opérateurs. 8. Les structures de contrôle. 9. Les fonctions. 10. Le transfert de données. 11. La gestion de sessions 12. PHP ↔ MySQL.
  5. 5. Présentation de PHP  PHP est un langage de script exécuté du côté serveur et utilisé essentiellement pour créer des pages Web dynamiques.  A la différence des pages statiques, les pages dynamiques doivent s'adapter (besoin de l'heure, accès à des bases de données, réponse personnalisée, traitement de formulaire, etc.).
  6. 6. Principe de fonctionnement 1. Requête de données. 2. Activation du moteur PHP. 3. Connexion au serveur BDD. 4. Extraction des données. 5. Formatage en HTML. 6. Réponse. 2 4 3 6 5 1 serveur BDD moteur PHP serveur Web client Web
  7. 7. Exemple introductif <? /* la variable titre stocke le titre du script */ $titre = ' Script introductif ' ?> <html> <head> <?php # affiche le titre de la page echo (" <title> $titre </title>") ?> </head> <body> <% // affiche le contenu de la page echo ('Hello, world !'); %> </body> </html> Les syntaxes d’intégration : • <?php … ?> • <? … ?> : à activer via short_open_tag • <% … %>: à activer via asp_tags Les commentaires: • // ou # : une seule ligne. • /* … */ : plusieurs lignes. Les variables sont précédées du signe $. La variable est "déclarée" à son utilisation. La valeur qui lui est affectée détermine son type. echo affiche une chaîne de caractères : • telle quelle, si ' … ' est utilisés ; • en interprétant les variables, sinon. Toute instruction se termine par (;) sauf si elle est suivie de ?>.
  8. 8. Types de base numériques et booléen  Type entier: • un entier ou integer représente un entier relatif (32 bits) • généralement entre –2 147 843 648 et 2 147 843 647  Type réel: • Un réel ou double représente un nombre à virgule. • de -1,7e308 à 1,7e308 avec 14 chiffres après la virgule.  Type booléen: • exprime la valeur TRUE ou la valeur FALSE • seuls les constantes FALSE et NULL, les nombres 0 et 0.0, les chaînes "0" et vide, le tableau vide et l’objet vide valent FALSE. • TRUE convertit en entier donne 1 et FALSE donne 0 • TRUE convertit en chaine donne "1" et false donne ""
  9. 9. Types de base chaîne de caractères  Une string représente une suite de caractères.  Il y a 256 caractères, mais une string est illimitée.  Une constante string est délimitée par des guillemets ( ' ou " ).  Les guillemets doubles permettent d’interpréter d’éventuels caractères d’action ou variables présents dans la chaîne qu’ils délimitent.  l’anti-slash () permet d’échapper ou de déspécialiser les caractères (', ", , $). App1
  10. 10. Types de base quelques fonctions  gettype($var) : retourne le type de $var.  settype($var, "type_désiré") : renvoie true si le type de $var est modifiée.  intval($var), doubleval($var), strval($var) : permettent de convertir.  is_string($var), is_bool($var), is_int($var), is_double($var), is_numeric($var), is_array($var) : permettent de tester un type.  isset($var) : renvoie false si $var n’est pas initialisée ou vaut NULL.  empty($var) : renvoie true si $var n’est pas initialisée ou vaut NULL, 0, 0.0, "" ou "0".  unset($var) : détruit la variable $var.
  11. 11. Types de base quelques fonctions sur les strings  strlen($str) : renvoie la longueur de $str.  strcmp($str1, $str2): compare alphabétiquement $str1 et $str2.  trim($str): supprime des espaces de début et de fin de chaîne.  addslashes($str): déspécialise les caractères (', ", ).  stripslashes($str): supprime les antislashs.  substr($str,$i,$j) : retourne une sous chaîne de $str de taille $j et débutant à la position $i.  explode ($sep , $str) retourne un tableau de chaînes, chacune d'elle étant une sous-chaîne du paramètre $str extraite en utilisant le séparateur $sep.
  12. 12. Notion de constante  Une constante est un identificateur qui représente une valeur restant inchangée durant l’exécution d’un script.  Cet identificateur est en majuscules (fortement recommandé) et n’est pas préfixée par $.  Syntaxe de définition d’une constante : define("NOM_CTE", val_cte);  Exemple : define ("TVA", 0.18);  Une constante ne doit pas être redéfinie.
  13. 13. Tableaux présentation  Un tableau est un regroupement de données de types distincts ou non, désignées par un identificateur unique.  Chaque donnée est repérée par une clé (ou indice) de type entier positif ou de type string.  Syntaxe de création d’un tableau numéroté : $nomTab=array(valeur1,valeur2,valeur3,...)  Syntaxe de création d’un tableau associatif : $nomTab=array(cle1=>valeur1, cle2=>valeur2,...)  Syntaxe d’accès à un élément : $nomTab[cle] App2
  14. 14. Tableaux quelques fonctions  reset($tab) : déplace le pointeur de $tab au début et retourne la première valeur de celui-ci.  count($tab) : retourne le nombre d’élément d’un tableau.  each($tab) : retourne le couple clé/valeur courant.  extract($tab) : reçoit un tableau associatif $tab et crée des variables dont les noms sont les clés de $tab, et leur affecte les valeurs associées.  list($var1, $var2, …): assigne une liste de variables en une seule instruction.  sort($tab) et rsort($tab) : la première permet le tri alphanumérique des éléments de $tab, et le second fait l’inverse.  array_merge($tab1, $tab2, …): concatène les tableaux passés en argument.
  15. 15. Opérateurs  Opérateurs arithmétiques +, -, *, /, % (modulo), ++(incrément), --(décrément)  Opérateurs d’assignation = (affectation), += (ajouter à), *=, /=, -=, %=  Opérateurs de comparaison == (égalité), <, <=, >, >=, !=  Opérateurs logiques AND, && (et), OR, || (ou), ! (non)  Opérateur de concaténation Noté par un point (.), il « fusionne » deux strings App3
  16. 16. Structures conditionnelles Elles permettent d'exécuter un traitement en fonction d’une (ou de plusieurs) condition(s).  if (condition_1) {traitement_1} [else {traitement_2}]  if (condition_1) {traitement_1} elseif (condition_2) {traitement_2} … // suite de elseif else {traitement_n}
  17. 17. Structures itératives Elles permettent la répétition d’un traitement en fonction d’une condition.  while(condition) { traitement }  do { traitement } while(condition);  for (exp1 ; condition ; exp2 ) { traitement }  foreach ($tableau as $valeur){traitement}  foreach ($tableau as $cle => $valeur) {traitement} App4&5
  18. 18. Fonctions syntaxe  Syntaxe de la définition d’une fonction function nomDeLaFonction( [arg_1[, arg_2, …] ]) { corpsDeLaFonction }  Un argument (ou paramètre) permet à la fonction de communiquer avec son environnement.  return dans le corps de la fonction lui permet de retourner une valeur résultat.  A défaut de return, une fonction peut utiliser un argument pour renvoyer une valeur.
  19. 19. Fonctions rappel sur les paramètres  La communication entre la fonction appelée et le code appelant se fait par l'intermédiaire de variables particulières et locales à la fonction appelée que l’on nomme paramètres formels.  Lors de l’appel, tout paramètre formel est associé à une variable ou constante de même type nommée paramètre effectif.  Il existe deux types d'association ou de passage de paramètre : • passage par valeur : oCopie de la valeur du param eff dans le param formel oLa fonction accède au param eff uniquement en lecture • passage par référence : oLe param eff et le param formel « se confondent » oLa fonction accède au param eff en lecture et en App6
  20. 20. Transfert de données donnée interne transmise d’une page à une autre  L’URL (Uniform Ressource Location ou adresse) d’une page permet le transfert de données d’une page à une autre  Ajouter à l’URL le caractère ? suivi des couples nom/valeur des données à transférer. Séparer les couples par le caractère &.  Exemple : <a href="page2.php?id=3&montant=10000"> Aller à la page 2 en transmettant l’identifiant du client et le montant de sa commande </a>  La page2 accède aux données transmises par le biais du tableau associatif $_GET. Exemple : echo $_GET['montant']; // affiche 10000 App7
  21. 21. Transfert de données données transmises via formulaire  Principaux attributs de l’élément form : • action="adresse_script_cible" script côté serveur qui traitera les données du formulaire. • method="get|post" méthode HTTP employée pour envoyer les données  Tout champ du formulaire doit avoir un nom • Attribut name="nomChamp" • Choix multiple : name="nomChamp[]"  Le script cible accède aux données transmises comme suit : • $_GET['nomChamp'] si method="get" • $_POST['nomChamp'] si method="post" • $_REQUEST['App8&9 nomChamp'] dans tous les cas
  22. 22. Transfert de données fichier uploadé via formulaire  Pour joindre un fichier à un formulaire : • attribut enctype="multipart/form-data" de l’élément form • méthode d’envoi : post • champ input de type file muni de l’attr name="nomChamp"  Le script destinataire accède aux infos (nom, type, taille, … ) sur un fichier joint par le biais du tableau super global $_FILES['nomChamp'].  Tout fichier uploadé est placé dans un répertoire temporaire  move_uploaded_file($nom_temporaire,$nom_definitif) déplace un fichier uploadé et retourne un booléen. App10
  23. 23. Gestion de sessions présentation  La gestion d’une session permet d'enregistrer (côté serveur) des infos sur un internaute afin de les réutiliser durant toute sa visite.  Ces informations doivent être explicitement enregistrées dans le tableau associatif $_SESSION.  Ce qui permet ainsi de suivre un internaute de page en page, de sauvegarder un caddie, de sécuriser un site, etc.  Tout visiteur se voit assigner un "identifiant de session" permettant de retrouver des informations sur lui.  Cet identifiant est stocké dans un cookie (chez le client) ou propagé dans l'URL des pages visitées (méthode à risques).  Dans les versions récentes de PHP, réactiver la propagation par l’URL en modifiant, dans le fichier php.ini, les directives : • session.use_only_cookies = 0 • session.use_trans_sid = 1  Une session doit obligatoirement démarrer avant l’envoi de toute information au navigateur.
  24. 24. Gestion de sessions exemple  Stockage d’une information dans une variable $total = 35000; // Montant d’une commande par exemple  Création ou prolongement d’une session session_start();  Enregistrement de la variable ‘total’ dans la session $_SESSION[‘total’] = $total ;  Test de l’enregistrement de la variable ‘total’ dans la session if ( isset( ($_SESSION[‘total']) )  Affichage de l’information (dans une autre page) echo $_SESSION[‘total’];  Suppression de la variable de session associée à ‘total’ unset($_SESSION[‘total']);  Destruction de toutes les variables de session $_SESSION = array(); // Tableau vide  Destruction de la session session_destroy(); App11
  25. 25. PHP ↔ MySQL présentation de MySQL  Le SGBDR (Système de Gestion de Bases de données Relationnelles) open source le plus utilisé sur le Web.  Logiciel permettant de créer des bases de données, de les exploiter (en y effectuant notamment des recherches des modifications ou des tris) et de contrôler l’accès aux données.  Ses principaux concurrents sont PostgreSQL, Microsoft SQL Server, DB2 et Oracle mais ses atouts majeurs sont :  performances élevées ;  coût réduit ;  simplicité de configuration et d’apprentissage ;  portabilité ;  accessibilité du code source ;  disponibilité du support (www.mysql.com).
  26. 26. PHP ↔ MySQL étapes de la communication Pour que PHP travaille avec MySQL, il faut une : 1. connexion au serveur  authentification  création d'un objet ou d’un identifiant 1. sélection d’une base de données 2. utilisation des tables  Lecture  écriture 4. déconnexion du serveur (facultative si la connexion et non persistante) NB : Dans ce cours, l’extension mysqli (i pour improved çàd amélioré) est choisie du fait d’une forte recommandation du « The PHP group ».
  27. 27. PHP ↔ MySQL Connexion/Déconnexion • Connexion à l’aide du constructeur de la classe mysqli qui reçoit les 4 chaînes : $serveur, $user, $passwd et $dbname. • Retourne, en cas de succès, un objet qui représente la connexion au serveur MySQL. • Il est recommandé de vérifier la réussite de la connexion via l’attribut mysqli::$connect_error. • Pour une connexion persistante, préfixer l’adresse IP ou le nom du serveur par p: . • La déconnexion se fait soit automatiquement à la fin de l'exécution du script (si la connexion n’est pas persistante), soit explicitement en appelant la méthode : bool mysqli::close ( void )
  28. 28. PHP ↔ MySQL Connexion/Déconnexion : exemple //Définition des paramètres de connexion define('SERVER','localhost'); define('USER','toto'); define('PASSWD','secret'); define('DBNAME','mabdd'); //Connexion $cnx = new mysqli(SERVER, USER, PASSWD,DBNAME) or die('Erreur de connexion : ' . $cnx->connect_error); … //Déconnexion explicite $cnx->close(); App12
  29. 29. PHP ↔ MySQL exécution d’une requête de lecture ou d’écriture mixed mysqli::query (string $req)  Invoquer sur un objet mysqli  Reçoit $req, une requête écrite en SQL  Retourne un jeu de résultats ou objet mysqli_result pour une requête select.  Retourne TRUE pour les requêtes insert, update et delete.  retourne FALSE en cas d’échec de n’importe quelle requête.  Il est recommandé de vérifier la réussite de l’exécution de la requête via l’attribut mysqli::$error.
  30. 30. PHP ↔ MySQL exploitation d’une select via tableau associatif mixed mysqli_result::fetch_assoc( )  Invoquer sur un objet mysqli_result  Retourne une ligne de ce résultat sous la forme d’un tableau associatif dont les clés sont les noms des attributs (de la clause SELECT) et leurs valeurs associées étant leurs valeurs ds la BDD ;  Chaque nouvel appel à fetch_assoc() retournera la prochaine ligne dans le jeu de résultats, ou NULL s'il n'y a plus de lignes. Exemple : consultation sur la table membres(id, nom, prenom) $liste= $cnx->query("select prenom, nom from membres"); while($ligne = $liste->fetch_assoc() ){ echo 'Prenom :'.$ligne['prenom'].' Nom : '.$ligne['nom'].'<br />'; }
  31. 31. PHP ↔ MySQL exploitation d’une select via objet mixed mysqli_result::fetch_object( )  Invoquer sur un objet mysqli_result  Retourne une ligne de ce résultat sous la forme d’un objet dont les attributs sont les noms des attributs (de la clause SELECT) et leurs valeurs associées étant leurs valeurs dans la BDD ;  Chaque nouvel appel à fetch_object() retournera la prochaine ligne dans le jeu de résultats, ou NULL s'il n'y a plus de lignes. Exemple : consultation sur la table membres(id, nom, prenom) $liste= $cnx-> query("select prenom, nom from membres"); while($ligne = $liste->fetch_object() ){ echo 'Prenom :'.$ligne->prenom.' Nom: '.$ligne->nom.'<br />'; } App13
  32. 32. PHP ↔ MySQL autres méthodes  mysqli_result::free_result() Libère la mémoire associée à l'objet mysqli_result.  mysqli::$insert_id retourne le dernier identifiant généré par un champs de type AUTO_INCREMENT.  mysqli_result::$num_rows retourne le nombre de lignes d'un résultat d’une SELECT.  mysqli_stmt::$affected_rows retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE.  string mysqli::real_escape_string($chaine_a_echapper) ajoute un slash à tout caractère spécial de la chaîne à échapper. Cette fonction doit toujours (avec quelques exceptions) être utilisée pour protéger les données à insérer dans la BDD. App14

×