PHP, une initiation

Dominique Gonzalez

Université Lille3-Charles de Gaulle

Ce document est soumis à la licence GNU FDL. Permission vous est donnée de distribuer, modifier des copies de ces pages tant que cette note apparaît clairement.

mercredi 25 novembre 2009 à 13h58


Table des matières

I. Le cours
1. Pourquoi et comment ?
Introduction
Pourquoi ce document ?
Comment a-t-il été construit ?
Où trouver ce document ?
QBullets
2. Généralités sur les langages informatiques
Qu'appelle-t-on langage informatique?
Langage interprété
Langage compilé
Langages intermédiaires
3. Des langages particuliers : les langages du web
Pourquoi programmer ?
Quels langages ?
Avantages et inconvénients
Choisir
4. Une FAQ élémentaire sur PHP
Qu'est ce que PHP ?
Quelle différence avec Javascript ?
Pourquoi choisir PHP au lieu de Javascript ?
Que se passe-t-il à l'affichage d'une page PHP ?
Comment intégrer du PHP dans du HTML ?
5. Premiers exemples en PHP
LE premier programme
LE deuxième programme
Rappels (?) d'algorithmique
Variables et expressions
Fonctions
À vous
6. Formulaires en HTML
Présentation
Principaux contrôles
Exemples
7. Traitement d'un formulaire en PHP
Traitement des données d'un formulaire en PHP
Exercices
8. Chaînes de caractères
Qu'est-ce qu'une chaîne de caractères ?
Que choisir ? Guillemets ou apostrophes ?
Principales utilisations du backslash
Principales opérations sur les chaînes
Principales fonctions
Conversions de types
Exercices
9. Les tableaux
Qu'est-ce qu'un tableau ?
Quelques exemples d'utilisation
Remplir et afficher le contenu un tableau
Un exemple complet
Les tableaux associatifs
Parcours d'un tableau associatif
Exercices
10. PDO
Qu'est-ce que PDO
Quelle utilité ?
Se connecter à la base de données
Exécuter une requête
Nombre de lignes et colonnes d'une requête select
Accéder aux résultats d'une requête select
Accès par le nom des colonnes
Accès par le numéro des colonnes
Accès par le numéro des lignes et le numéro des colonnes
Gestion des erreurs
Code d'erreur
Informations associées à l'erreur
Exemple de traitement d'erreur
11. Programmation séparée en PHP
La programmation séparée
Les fonctions require et include
12. Identification en PHP
Préliminaires : la fonction header
Contrôle des mots de passe
Amélioration : plusieurs utilisateurs
Séparer les données du traitement
Cacher les mots de passe
Crypter les mots de passe
13. Sessions
Préambule
Application : identification des visiteurs
II. Hors programme
14. Utiliser PHP sur une base de données PostgreSQL
Connexion à la base
Exécution d'une requête
Obtention des résultats d'une requête
Un exemple
Requêtes autres que SELECT
Suppression des messages d'erreurs
Gestion des erreurs et des messages
Résultat renvoyé par pg_query en cas d'échec
Obtenir le texte de la dernière erreur
Obtenir le statut de la connexion
Obtenir le nombre de lignes affectées par une requête
15. peardb, une présentation
Qu'est-ce que pear
Quelle utilité ?
Utiliser peardb
Se connecter à la base de données
Gestion des erreurs
En cas d'erreur...
Application
Exécuter une requête
Accéder aux résultats d'une requête select
fetchRow()
fetchInto()
setfetchmode()
peardb, informations sur les requêtes
numRows()
numCols()
affectedRows()
tableInfo()
16. dbx
Qu'est-ce que dbx
Quelle utilité ?
Se connecter à la base de données
Exécuter une requête
Nombre de lignes et colonnes d'une requête select
Accéder aux résultats d'une requête select
Accès par le nom des colonnes
Accès par le numéro des colonnes
Accès par le numéro des lignes et le numéro des colonnes
17. Exploration du contenu d'un répertoire
Les notions nécessaires en PHP
Exploration d'un répertoire
Extraction d'une sous-chaîne de caractères
Les notions nécessaires en HTML
Images cliquables
Pour qu'un lien affiche une image plutôt qu'une page HTML ou PHP
Exercices
18. News...
Présentation
Votre travail
Si vous avez le temps...
19. Les fichiers
Manipulations de base
Ouverture (et fermeture) d'un fichier
Écrire dans un fichier
Lire le contenu d'un fichier
Un exemple
Exercice
III. Corrigés des exercices
20. Premiers exercices d'algorithmique, corrigés
21. Premiers formulaires en PHP, corrigés
22. Chaînes de caractères, corrigé
23. Exercices sur les tableaux, corrigés
24. Exercices sur les fichiers, corrigés
25. Exploration d'un répertoire, corrigés
26. News..., corrigé
Accueil
Liste des noms de fichiers de nouvelles
Liste des liens vers les fichiers de nouvelles
Affichage de toutes les nouvelles
Affichage des titres des nouvelles
Affichage des titres faisant lien vers les nouvelles
Affichage de toutes les nouvelles, proprement
Choix du sujet
IV. Études de cas
27. Études de cas
28. Projet Disques 2009
Présentation
Fonctionnalités générales
Fonctionnalités de consultation
Modification des données, accès aux données sensibles
La base de données
Les tables
MLD
29. Projet Inscriptions
Présentation
Fonctionnalités générales
Fonctionnalités du calendrier
Gestion de la base
La base de données
MLD
Les tables
30. Projet Teniraq
Présentation
Adhésions
Entrées dans les salles
Réservations de courts
Matchs défis
Paramétrage
La base de données
MLD
Les tables
31. Projet Camping
Présentation
Les informations à conserver
Les traitements
La base de données
MLD
Les tables
32. Projet Association
Contenu du site web
Conditions de travail
Base de données
MLD du projet Association
Création des tables de la base Association
Création des tables
Contraintes
Évaluation
Dernier conseil
33. Projet Généalogie
Généralités
Les données à conserver
Les données de base
Données supplémentaires
Traitement des données
Optimisations
Import-export
MCD du projet généalogie
Les différentes tables
Les tables des entités
Les tables des relations
Les différentes contraintes
Sur la table individu
Sur la table ville
Sur la table lieu
Sur la table couple
Sur la table type_couple
Sur la table type_document
Sur la table document
Sur la table doc_couple
Sur la table doc_lieu
34. Projet Brazil
Description
Les tables des entités
La table citoyen
La table ville
La table rue
La table maladie
La table service
La table ministere
Les tables des relations
Associer une maladie à un citoyen : listemaladie
Associer une adresse à un citoyen : habite
Associer un citoyen au service pour lequel il travaille : travaillepour
Associer un service au ministère pour lequel il produit : serviceproduit
Associer un service au ministère auquel il appartient;: serviceappartient
Associer un service au ministère qu'il contrôle : servicecontrole
Associer un citoyen au ministère qu'il dirige : tabledirige
Les contraintes
Sur la table ville
Sur la table rue
Sur la table citoyen
Sur la table habite
Sur la table maladie
Sur la table listemaladie
Sur la table service
Sur la table ministere
Sur la table travaillepour
Sur la table serviceproduit
Sur la table serviceappartient
Sur la table servicecontrole
Sur la table dirige
35. Projet Services
But de ce projet
Fonctionnement
Les utilisateurs n'ont pas les mêmes droits suivant leur identité
Fonctionnalités requises pour la consultation
Fonctionnalités requises pour la mise à jour
Informations plus techniques
Question subsidiaire : comment gérer l'historique de la base ?
Vocabulaire utilisé
Première ébauche de la structure
Structures des tables
cmtd
ufr
formations
annees
cnu
cours
statut
enseignants
affectations
Création des tables
cmtd
ufr
formations
annees
cnu
cours
statut
enseignants
affectations
Remplir les tables de paramètres
statut
cnu
cmtd
36. Projet Disques
Approche naïve
Analyse
Dernières remarques
Une autre analyse du projet Disques
Description
Résultat
Création des tables
Votre travail
Index

Liste des illustrations

32.1. MCD du projet Association
33.1. MCD du projet Généalogie
36.1. Relations dans la base Disques, première version
36.2. Relations dans la base Disques, deuxième version
36.3. Un autre MCD pour la base Disques

Liste des tableaux

8.1. Principales utilisations du backslash
10.1. Champs de $db->errorInfo()

Liste des exemples

36.1. Un groupe
36.2. Un groupe avec interprète invité
36.3. Interprèete et compositeur