PHP et MySQL
Introduction aux pages web actives avec

version 1.0 (mardi 23 février 1999)

Sommaire

Introduction

Rendre un site web vivant est un travail de titan : mettre à jour les informations, changer régulièrement la page d'accueil ... À tel point que l'on pourrait y passer ses journées entières. La solution pour faciliter ce travail est d’automatiser ces modifications grâce à des pages dite " active ".
PHP est un langage de programmation qui s’inclut dans le code HTML pour effectuer certaines opérations qui peuvent aller d’insérer la date du jour à retrouver une information dans une base de donnés.

Dans cet article, je vais vous présenter un exemple qui met en jeu le stockage d’une information dans une base de donnée et puis la récupération de cette information.

Pourquoi PHP ?

Pour faire des CGI actuellement il y a un standard : le Perl. J’ai essayé de regarder à quoi cela ressemblait, je n’ai rien compris. Microsoft a son standard : les ASP, basé sur du Visual Basic, malheureusement je ne parle pas ce langage et ca ne m’a pas plus parlé que le Perl.
On m’a parlé de PHP pendant les premières journées linux organisés par le LUG de Strasbourg. Pourquoi ca m’a plu :

Thème de l’exemple

Pour les fêtes de fin d’année tous le monde envoi des cartes de vœux. Ayant à disposition quelques belles photos de Strasbourg, j’ai pensé à en faire des cartes de vœux électroniques.

Vous pouvez tester en live : http://www.cigogne.net/cartes/nouvelle.html pour creer une carte. Vous pouvez voir un exemple de carte à http://www.cigogne.net/cartes/?n=16

Fonctionnement général

L’utilisateur A veut envoyer une carte à l’utilisateur B

A se connecte sur la page " nouvelle.php ". Il remplit le formulaire : son nom, son adresse email, le nom, l’adresse email de son correspondant B, un texte et choisit la photo. Après avoir validé ce formulaire, toutes ces informations son stocké dans la base de donnée, un email est envoyé à B et une page HTML de confirmation est affichée pour A.

Dans l’email envoyé à A il y a un petit message l’invitant à se connecter sur l’adresse du serveur du type : http://www.cigogne.net/cartes/index.php?n=32

" index.php " est la page web active qui permet de retrouver la carte postale passé en paramètre (n=32).
Quand B se connecte sur la page " index.php " la carte numéro 32 est recherché dans la base de donnée et affiché pour B.

Installation de PHP 3

Sur votre serveur linux, vous devez avoir trois éléments installés (entre parenthèses, les versions que j’utilise) :
- Apache (1.3.3) : le serveur web bien connu.
- PHP 3 (3.0.5) : le langage incorporé dans le HTML
- MySQL (3.21.30) : la base de donnée SQL

L’installation d’Apache et MySQL ne pause pas de problème particulier à partir des RPM. Par contre vous devrez certainement recompiler PHP car le RPM fourni par RedHat ne prend pas en charge les bases de données.

Installation facile d’Apache + PHP + MySQL sur RedHat 5.2

Récupérer le source du RPM mod_PHP : c'est le source de la version d'origine RedHat
http://rufus.w3.org/linux/RPM/redhat/5.2/i386/mod_php3-3.0.5-2.i386.html

Site RedHat : ftp://ftp.redhat.com/pub/redhat/redhat-5.2/SRPMS/SRPMS/mod_php3-3.0.5-2.src.rpm
Mirroir en France : ftp://ftp.lip6.fr/pub/linux/distributions/redhat/redhat-5.2/SRPMS/SRPMS/mod_php3-3.0.5-2.src.rpm

Apache

Vérifier qu’apache est installé sur votre système
Rpm –q apache

Doit vous répondre :
Apache-1.3.3-1

C'est la version d'origine de RedHat, elle est dans votre CD. Si vous ne l'avez vous pouvez la trouver aux adresses suivantes :
http://rufus.w3.org/linux/RPM/redhat/5.2/i386/apache-1.3.3-1.i386.html
ftp://rpmfind.net/linux/redhat/redhat-5.2/i386/RedHat/RPMS/apache-1.3.3-1.i386.rpm

Il faut aussi installer Apache-devel-1.3.3-1. Il est aussi sur la CD RedHat. Sinon voici les adresses :
http://rufus.w3.org/linux/RPM/redhat/5.2/i386/apache-devel-1.3.3-1.i386.html
ftp://rpmfind.net/linux/redhat/redhat-5.2/i386/RedHat/RPMS/apache-devel-1.3.3-1.i386.rpm

MySQL

MySQL n'est pas livré dans la distribution RedHat, vous le trouverez aux adresses suivantes :
http://rufus.w3.org/linux/RPM/contrib/libc6/i386/mysql-3.21.30-1.i386.html
ftp://rpmfind.net/linux/contrib/libc6/i386/mysql-3.21.30-1.i386.rpm

Il faut aussi récuperer MySQL Client et Devel.

MySQL devel
http://rufus.w3.org/linux/RPM/contrib/libc6/i386/mysql-devel-3.21.30-1.i386.html
ftp://rpmfind.net/linux/contrib/libc6/i386/mysql-devel-3.21.30-1.i386.rpm

MySQL Client
http://rufus.w3.org/linux/RPM/contrib/libc6/i386/mysql-client-3.21.30-1.i386.html
ftp://rpmfind.net/linux/contrib/libc6/i386/mysql-client-3.21.30-1.i386.rpm

Installation des RPM

Compiler PHP en module avec le support MySQL

Configuration d'Apache pour prendre en compte PHP

Tester

 

Création de la table dans la base de données

Voici le SQL pour créer la table :

" numero " est le code qui va servir à retrouver la carte, il est de type AUTO_INCREMENT comme ca il n’y a même pas besoin de s’en occuper.
" date " va permettre de stocker la date de création, elle ne sert pas vraiment à grand chose, mais peut être un jour pour des statistiques….
" nom " et " email " sont les nom et email de l’expéditeur. (en soit ils ne sont pas indispensables mais servent uniquement à informer le destinataire)
" nom_dest " et " email_dest " sont les nom et email du destinataire. (l’email est indispensable pour envoyer le message)
" message " est le texte d’accompagnement de la carte.
" signature " est un petit texte qui sera mise en gras à la fin de la carte.
" carte " est le nom de l’image qui sera sur la carte.
" numero " est défini comme étant la clef d’index.

Explication du code

Le code PHP est intégré au html entre des balises ("tags") spécifique. Il en existe plusieurs formes mais elles ont les même fonction :

Même si ce n’est pas dans l’ordre logique, commençons par le plus simple !
Index.php est la page qui affiche à carte postale électronique
Nouvelle.php est la page qui crée une nouvelle carte postale.

Remarque : dans le code html en exemple, le code PHP est mis en bleu, et les commentaires en rouge.

Ouverture

Un certain nombre de chose pourrait être ajouté à cet exemple :

Tout cela n’est qu’une question de temps. Pour information j’ai consacré 4 heures au développement, test et mise en ligne de cet exemple ( moins longtemps que pour écrire ces quelques lignes)

Références

Historique

le 23/02/99 : oups ... il faut aussi installer le RPM apache-devel pour que ca marche ! Corrigé dans la procédure d'installation.

le 22/02/99 : correction d'URL défaillante

Version 1.0 : rajouté l'installation complette de php pour linux. Modifié quelques termes utilisés.

Version 0.1 : version initiale.