PARTIE 2 : Développez une application web dynamique et interactive : Comprendre les Sessions et les Cookies. Manipuler les formulaires et leurs éléments. Présenter Mysql, définir une BD, Comprendre le langage SQL et Apprendre à manipuler phpMyadmin. Faire la connexion avec la base de données et réaliser des opérations CRUD. Tout ceci accompagné avec des exemples et exercices.
1. 1 Lelangage PHP (partie II) Présentation réalisée par : Mahdi BEN ALAYA Elève-ingénieur à l’ENSI & Secrétaire Général du club Junior ENSI Entreprise (2008) Version : 22-11-2009
2. Remerciements Avant de commencer, je tiens à présenter mes sincères remerciements à tous ceux qui ont contribué au bon déroulement de cette formation. Je tiens à remercier particulièrement M. MarouenOmmezzine et M. WassimeAbbessi qui ont assuré les formations Web2.0 et PHP pour les années 2007 et 2008 au sein du club Junior ENSI Entreprise. 2
3. Plan Les sessions Les cookies Les formulaires Exercice « Somme » Exercice « Commande » Exercice « Login » Présentation de MySQL Les requêtes SQL L’interface phpMyAdmin Connexion à une base de données TP « Mini chat » 3
7. Démarrer une session 7 <?phpsession_start(); ?> Ce code permet de démarrer une session. Si un fichier existe sur le serveur pour cette session, les variables de sessions seront récupérées, sinon un nouveau fichier sera créé. Cette fonction permet de créer un tableau $_SESSION qui sera remplie par les variable de session. Aucuncode HTML avant le démarrage d'une session !!
8. Créer une variable de session 8 <?php$_SESSION['variable']=$valeur ;?> Nous créons ici une variable de session nommée variable qui vaut $valeur. Les variables de sessions sont accessibles, une fois que la session est démarrée via un tableau super global $_SESSION
9. Utiliser la valeur d’une variable de session 9 <?php if(isset($_SESSION['ensi'])){ echo 'La variable "ensi" existe : ' . $_SESSION['ensi']; } ?> isset() permet de savoir si une variable de sessionexiste ou non.
10. Supprimer une variable de session 10 <?php unset($_SESSION['variable']); echo'La variable de session "variable" est détruite'; ?> unset() permet de supprimer une variable de session.
11. Détruire toutes les variables de session 11 <?phpsession_unset(); ?> Détruire une session <?phpsession_destroy(); ?>
13. Qu'est-ce qu'un cookie ? 13 Un cookie est un fichier que le serveur envoiesur la machine de l'utilisateur. Il est souvent utilisé pour reconnaitre les utilisateurs. Pour explorer le répertoire cookies sous votre machine Windows ; faites DémarrerExécuter et taper Cookies.
14. Créer un Cookie 14 <?phpsetcookie(name, value, expire, path, domain); ?> La fonction setcookie() doit être placée avant tout code HTML, car le cache du navigateur doit être vide pour que cette fonction marche convenablement.
15. Créer un Cookie 15 L'exemple ci-dessous génère un cookie appelé "nom_cookie" , avec pour contenu "Léon" et pendant une période de 10 heures. <?php// génère le cookie $contenu = 'léon'; // le contenu de votre cookie setcookie("nom_cookie",$contenu, time()+36000); ?>
16. Retrouver la valeur d'un cookie 16 L'exemple ci-dessous test l'existence d'un cookie appelé "nom_cookie" et affiche si le cookie existe ou n'existe pas. <?php if (isset($_COOKIE["nom_cookie"])) echo'Le cookie existe ' . $_COOKIE["nom_cookie"]; else echo'Le cookie namp;apos;existe pas'; ?>
17. Session VS Cookie 17 La différence entre les sessions et les cookies est que les cookies sont stockés sur le poste du visiteur tandis que les sessions sont dans des fichiers présents sur le serveur.
19. Pourquoi un formulaire ? Un formulaire permet de saisir des données et échanger des informations entres les pages web et la base de données. Ce sont des éléments interactifs permettant de dialoguer avec l’internaute. 19
52. Connexion à une BD 1 Bd Script.php (Requête SQL) Table Serveur BD IP Server User Password Nom BD + Privilège Nom Table Nom champ 54
53. Fonctions PHP pour la connexion IP Server User Password mysql_connect("IP Server","User","Password"); Nom BD + Privilège mysql_select_db("Nom BD"); Nom Table $resultat = mysql_query("Requête SQL"); Nom champ Gestion des exceptions Die("msgd’erreur"); Fermer la connexion mysql_close(); 55
54.
55. Pour les requêtes de type SELECT , mysql_Query() retournera une ressourceen cas de succès ou FALSE en cas d'erreur.
56. Pour les autres types de requêtes INSERT, UPDATE , DELETE , mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur.56
57.
58.
59. Extraction des données $resultat = mysql_query("SELECT nom, prenom FROM etudiant WHERE age > 20) ; $row= mysql_fetch_array($resultat) ; while ($row!=NULL ){ echo$row["nom"] . " " .$row["prenom"]; $row= mysql_fetch_array($result); } 59