Atelier PHP/MySQL :
Premiers pas.


Prérequis :

Information sur... Le serveur Internet.

  • Le serveur Internet utilisé est Apache, avec extension PHP, et le serveur de bases de données MySQL (par exemple avec les packs EasyPHP ou WAMP) ;
  • L'ordinateur qui héberge ce serveur Internet est votre propre ordinateur ;

1
Comment intégrer du PHP dans une page HTML ?

 Tapez une page HTML simple.

Remarque sur... La lecture des pages HTML et PHP.

Une page contenant seulement des balises HTML est toujours lisible, qu'elle soit prise en charge ou pas par un serveur Internet. Ca ne sera pas le cas pour les pages contenant du PHP, car les instructions PHP doivent absolument être interpétées par un serveur Internet (ici, Apache). Si vous voulez tester vos sites PHP en local chez vous, vous pouvez installer un serveur Internet grâce à EasyPHP ou WAMP (gratuit).


 La même page, générée dynamiquement en PHP.

Information sur... Les éditeurs de texte avec numéro de lignes.

Lorsqu'il y a une erreur en PHP (de syntaxe, de déclaration ou autre), le navigateur affiche le numéro de la ligne incriminée. Si vous avez un éditeur de texte qui n'affiche pas les numéro de lignes (NotePad, WordPad), vous aurez beaucoup de mal à localiser ces erreurs. Utilisez donc de préférence un traitement de texte qui affiche les numéros de lignes (ConText, éditeur de Dreamweaver).


 Mélanger à volonté du PHP et du HTML.

Vous remarquez ...

  • Vous remarquez l'imbrication du code HTML et du code PHP :
    • Par défaut, la page est en HTML.
    • On bascule en PHP grâce à <?PHP.
    • On revient en HTML grâce à ?>.

  • Vous remarquez les premières fonctions de gestion des dates en PHP :
    • int time (void) revoie le timestamp Linux, c'est à dire le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit. Détail.
    • string date (string format, int timestamp) permet de formater un timestamp pour l'affichage. Détail.

2
Ecriture d'une fonction paramétrée,
appel de cette fonction avec un paramètre effectif.

Information sur... Les chaînes de caractères en PHP.

  • Les opérateurs de concaténation de chaînes, en Visual Basic, sont & et +. En PHP c'est le point ..

  • Vous remarquez les premières fonctions de traitement des chaînes de caractères :
    • string strtolower (string str) transforme la chaîne str en minuscules. Détails.
    • string substr (string str , int start , int length) permet de prendre un extrait de la chaîne str (dans notre cas, le premier caractère du prénom)

  • Dans une fonction en PHP, c'est l'instruction return qui renvoie le résultat de la fonction (comme en langage C). Le fonctionnement est donc très différent de Visual Basic.

3
Récupérer en variables PHP
les valeurs saisies dans un formulaire.

Objectif : Laisser la possibilité au visiteur de laisser son nom et son prénom dans un formulaire HTML. Lorsqu'il valide le formulaire, ce formulaire est traité par une page PHP.

Remarques...

  • la page traiter.php s'exécute lorsqu'on valide le formulaire, parce que on l'a précisé dans l'option action de la balise form (<FORM method=post action=traiter.php>).
  • les variables PHP que l'on affiche sont appelées $_POST["FormNom"] et $_POST["FormPrenom"], parce que les zones de texte dans le formulaire ont été appelées FormNom et FormPrenom.
  • le bouton intitulé OK sert à valider le formulaire, parce que on l'a déclaré de type submit (<INPUT type=submit value=OK>). Tout formulaire comporte un bouton Submit pour le valider (ou, plus généralement, pour exécuter l'action associée au formulaire. Ca peut être une fonction JavaScript, ou une redirection vers une autre page comme ici).

4
Ecrire du nom et du prénom
dans une base de données MySQL.

Objectif : même chose que précédemment, mais cette fois-ci le script PHP écrit le nom et le prénom dans une base de données.

Information sur... Les fonctions MySQL utilisées ici.

Voici l'explication à propos des commandes utilisées :

  • mysql_connect sert à se connecter à un serveur de base de données MySQL. En général, cela correspond au serveur Internet où se trouve votre site Web. Les trois paramètres sont :
    • le nom ou l'adresse IP du serveur Internet, ici "127.0.0.1" (adresse du serveur MySQL local);
    • le nom d'un utilisateur référencé dans le serveur MySQL, ici root;
    • le mot de passe, ici vide.
  • mysql_selectdb sert à choisir une base de données sur un serveur de base de données. La syntaxe implique que l'on peut travailler en même temps sur plusieurs bases provennant de plusieurs serveurs différents. Les paramètres sont :
    • le nom de la base de données, ici votrelogin_db ;
    • le serveur MySQL qui contient cette base, ici $ServeurDB (résultat de mysql_connect) ;
  • mysql_query sert à effectuer une requête SQL.

Chacune de ces trois instructions peut s'accompagner de la gestion d'erreurs or die, extrêmement pratique pour localiser une erreur. Par exemple :

$ServeurDB=mysql_connect("127.0.0.1", "root", "") or die ("Erreur de connexion au serveur MySQL");


5
A vous de jouer...

Lorsqu'un personne laisse son nom et son prénom, on veut maintenant rajouter automatiquement son login dans la base de données. Pour cela vous devez :

6
Lire depuis une base de données
MySQL.

Objectif : afficher dans le navigateur toutes les personnes qui se seraient inscrites dans le formulaire, et qui sont donc stockées dans la base.

7
Pour une programmation modulaire :
Centraliser la connexion à la base de données dans une page unique.

Les fonctions mysql_connect et mysql_selectdb sont utilisées dans quasimment chacune de nos pages PHP, avec le même paramétrage. D'autre part, lorsqu'on change de serveur, ou de mot de passe, on sera obligé de le changer dans toutes nos pages PHP. Pour éviter ce travail fastidieux, on va centraliser ces deux instructions dans un fichier connexion.php.

8
Pour une programmation modulaire : Réécrire une fonction mysql_query avec gestion d'erreur systématique.

En PHP, on a la possibilité de faire une gestion d'erreur associée aux requête SQL. On la fait jamais parce que c'est contraignant de réécrire cette gestion d'erreur à chaque requête SQL. Mais elle est tout le temps utile car on écrit tout le temps des bêtises dans nos requêtes SQL. La solution ? La modularité.

9
Présentation des ateliers
à venir...

Vous disposez déjà de tous les éléments pour rendre vos sites interactifs. Les ateliers suivants vont nous permettre de mettre ces techniques en oeuvre dans des cas concrets :


Sébastien PASTORE.