Alain Barraud Mémento informatique  
 
Accueil Logithèque - SE Photo - vidéo Internet - protocoles Site Web PC - Réseau Archives
Page ouverte le 20/02/2010
PHP
Logo PHP

 
Tuto retranscrit de http://www.siteduzero.com/tutoriel-3-14668-un-site-dynamique-avec-php.html
Autres sites à consulter
Partie 1 : les bases du PHP
1. Introduction
Origine
Types de sites
Préparer son ordinateur
2. Premiers pas
balises PHP
afficher du texte
les commentaires
Autres sites à consulter
3. Inclure des portions de page
4. Les variables
5. Les conditions
6. Les boucles
7. Les fonctions
8. Les tableaux
Partie 2 : transmettre des données de page en page
1. Transmettre des données avec l'URL
2. Transmettre des données avec les formulaires
3. TP : page protégé par mot de passe
4. Variables superglobales, sessions et cookies
5. Lire et écrire dans un fichier
Partie 3 : stocker des informations dans une base de données
1. Présentation des bases de données
2. phpMyAdmin
3. Lire des données
4. Ecrire des données
5. TP : un Mini-Chat
Partie 4 : PHP, c'est plus fort que toi !
1. Les Array II : le Retour
2. Créer des images en PHP
3. Les expressions régulières (partie 1/2)
4. Les expressions régulières (partie 2/2)
5. Les dates
Partie 5 : annexes
1. Coder proprement
2. Utiliser la documentation PHP
3. Au secours ! Mon script plante !
4. Protéger un dossier avec un .htaccess
5. Mémo pour les Regex
Partie 6 : condensés
1. Codage, instructions, variables
2.

Introduction

Origine
Fut créé en 1994 par Rasmus Lerdof pour garder une trace des visiteurs qui consultaient son CV et signifiait Personnal Home Page (page d'accueil personnel) .
Les programmeurs se l'approprièrent et signifie maintenant Hypertext Prepocessor.
PHP n'est pas un langage de programmation, mais un langage de scripts car, il fut conçu pour agir suite à une action.

Contrairement à Javascript qui est exécuté au niveau du navigateur, PHP est exécuté au niveau du serveur pour générer du code (constitué généralement de HTML ou XHTML, de CSS et parfois de JavaScript) qui pourra être interprété par le navigateur du client ayant demandé la page.

PHP vise un large public voulant réaliser un site web (ou autre application web) dynamique et compatible Linux (contrairement à ASP, langage propriétaire Windows).

Types de sites

Il existe 2 types de sites :
  • sites statiques réalisés uniquement en (X)HTML et CSS. Leur contenu n'évolue que si le code source est modifié par le gestionnaire du site, ce qui peut-être fastidieux, et en plus, ils ne sont pas interactifs, ce qui explique que ce type de site tant à disparaître.
    Dans ce cas, le client demande une page web au serveur qui lui envoie.
  • sites dynamiques utilisent en plus du (X)HTML et CSS d'autres langage comme le PHP et MySQL qui permettent des variations sans intervention du webmaster.
    Cela peut permettre de faire (entre autres exemples) :
    - des espaces membres pour avoir accès à des espaces réservés.
    - un forum.
    Par rapport au site statique, il y a une étape intermédiaire :
    Le client demande une page web au serveur. Le serveur génère la page spécialement pour le client (par rapport à des critères prédéfinis) et enfin, le serveur envoie la page au client.
Dans les deux cas, les pages sont envoyées en XHTML et CSS. Le PHP génère du code XHTML au niveau du serveur, c'est lui qui décide quel code il doit générer (par exemple s'il s'agit d'un client inscrit il pourra mettre "bienvenue à …" en mettant le nom du client. Les pages sont en quelque sorte individualisées en fonction des clients.

Préparer son ordinateur

Le PHP étant exécté au niveau du serveur, il faut pour créer un site dynamique, transformer son PC en serveur.

De quels programmes a-t-on besoin ?

Pour un site statique, on sait qu'il faut un éditeur de texte pour créer le code et un navigateur pour tester sa page.

Pour un site dynamique, il faut en plus d'autres programmes pour que l'ordinateur se comporte comme un serveur (et qui sont les mêmes). Ce sont :
- Apache, c'est ce qu'on appelle un serveur web. C'est le plus important, c'est lui qui délivre les pages. Cependant, Apache ne peut traiter que des pages en HTML. Il faut le compléter avec d'autres programmes.
- PHP, c'est un plug-in pour Apache qui le rend capable de traiter des pages web dynamiques en PHP. En combinant Apache et PHP, l'ordinateur sera capable de lire des pages web en PHP.
- MySQL, c'est le logiciel de gestion de base de données. Il permet d'enregistrer des données de manière organisée (comme la liste des membres de notre site).

Cette combinaison Apache + PHP + MySQL étant très courante, il existe des "packs" suivant le système d'exploitation :
- WAMP sous Windows
- XAMPP sous Linux

WAMP sous Windows

WAMP Server est en français et régulièrement mis à jour.
Pour le télécharger : site officiel, aller sur "Téléchargement". Le formulaire n'est pas obligatoire, descendre en bas de la page et cliquer sur "Télécharger WampServer".

Quand on lance WAMP, une icône apparaît en bas, à droite, dans la barre de tâches, à côté de l'horloge icône WampServer
Si le pare-feu bloque Apache, c'est normal, l'autoriser, pas d'inquiètude à avoir.
Par défaut, WAMP est en anglais. Pour le passer en français, clic droit sur icône WAMP dans la barre de tâches → Language → French.

Pour lancer WAMP, clic gauche sur l'icône de WAMP → Localhost.
Si Apache fonctionne, une page comme ci-dessous s'ouvre dans le navigateur
Accueil WAMP
alt La page que l'on voit a été envoyée par notre propre serveur Apache qui a été installé en même temps que WAMP.
On simule le fonctionnement d'un serveur web sur notre pc. Comme on est le seul internaute à pouvoir y accéder, on dit que l'on travaille "en local".
L'URL affichée par le navigateur dans la barre d'adresse est "http://localhost/", ce qui signifie qu'on navigue sur un site web situé sur notre propre ordinateur.

La section "Vos projets" de la page d'accueil de WAMP doit indiquer qu'aucun projet n'existe pour l'instant. Chaque site web que l'on entreprend est un nouveau projet.

Créons un projet appelé "tests". Pour cela, ouvrir l'explorateur Windows pour aller dans le dossier où WAMP a été installé, puis dans le sous-dossier appelé www (on aurait pu faire clic gauche / répertoire www sur l'icône de WAMP).
Une fois dans ce dossier, clic droit dessus pour le sélectionner → "Fichier" → "Nouveau" → "Dossier". On le nomme "tests".
Si on retourne sur la page d'accueil de WAMP et qu'on l'actualise (on peut cliquer sur la touche F5), on verra apparaître le dossier "tests" car WAMP a détecté ce nouveau dossier.
dossier tests c'est là que l'on créera ses pages web en PHP.
Si on clique sur "tests", comme on a encore rien cré:é, une page vide comme celle-ci va apparaître :
répertoire vide

XAMPP sous Linux

A compléter…

Premiers pas en PHP

Les balises PHP

Le code PHP va s'insérer au milieu du code XHTML. Ces bouts de code seront les parties dynamiques de la page (qui peuvent changer toutes seules).
Pour illustrer :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
        <title>Ma page web</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <h1>Ma page web</h1>

        <p>
            Bonjour Insérer le pseudo du visiteur ici !
        </p>
    </body>
</html>
Ici, la donnée dynamique est la partie surlignée en vert, le pseudo qui va changer en fonction du visiteur.

La forme d'une balise PHP

Pour utiliser le PHP, on se sert d'une balise spécifique qui commence par <?php et se termine par ?>.
On écrit son code PHP sur une ou plusieurs lignes
Code PHP
1     <?php /* on écrit son code PHP ici */ ?>
Code PHP
1     <?php
2     /* on écrit son code PHP sur une ligne ou
3     plusieurs lignes */

4     ?>

alt Il existe d'autres balises comme par exemple <? ?>, <% %>, etc… Cependant <?php ?> est la forme la plus correcte.

Insérer une balise PHP au milieu du code XHTML

En reprenant l'exemple précédent :
Code PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Ceci est une page de test avec des balises PHP</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>

        <h2>Page de test</h2>

        <p>
            Cette page contient du code (X)HTML avec des balises PHP.<br />
            <?php /* Insérer du code PHP ici */ ?>
            Voici quelques petits tests :
        </p>

        <ul>
            <li style="color: blue;">Texte en bleu</li>
            <li style="color: red;">Texte en rouge</li>
            <li style="color: green;">Texte en vert</li>
        </ul>

        <?php
        /* Encore du code PHP
        Toujours du PHP */

        ?>
    </body>
</html>

question Peut-on placer une balise PHP n'importe où dans le code ?
Réponse : oui, même dans l'en-tête de la page et dans une balise XHTML.
Code PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Ceci est une page de test <?php /* Code PHP */ ?></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
Code PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Ceci est une page de test</title>
        <meta http-equiv="Content-Type" <?php /* Code PHP */ ?> content="text/html; charset=iso-8859-1" />
    </head>

Afficher du texte

L'instruction echo
Le PHP est un langage de programmation (contrairement au HTML qui est du codage). Tout langage de programmation contient des instructions. On en écrit, en général, une par ligne et, elles se terminent toutes par un point-virgule. Une instruction commande à l'ordinateur d'effectuer une action précise.

La première instruction que l'on va voir permet d'insérer du texte dans la page web. C'est l'instruction echo (c'est la plus simple et basique).

Exemple d'utilisation :
Code PHP
    <?php echo "Ceci est du texte"; ?>
A l'intérieur de la balise PHP, on écrit l'instruction echo, suivie du texte à afficher entre guillemets.
Les guillemets permettent de limiter le début et la fin du texte et l'instruction se termine par un point-virgule.

alt Il existe une instruction identique à echo, appelée print, qui fait la même chose. Cependant echo est plus couramment utilisé.

On peut demander d'afficher des balises :
Code PHP
    <?php echo "Ceci est du <strong>texte</strong>"; ?>
Le mot "texte" sera affiché en gras.

question Comment faire pour afficher des guillemets ?
Si on met simplement le guillemet, cela signifie que le texte s'arrête là. Pour reconnaître que c'est un guillemet à afficher, on fait précéder le guillemet d'un backslash \. Exemple :
Code PHP
    <?php echo "Ceci est \"uniquement\" en PHP."; ?>

Exemple pour tester ce que cela donne. Le PHP s'insère dans le code XHTML. Cas d'une page basique :
Code PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Ceci est une page de test avec des balises PHP</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <h2>Affichage de texte avec PHP</h2>

        <p>
            Cette ligne est écrite entièrement en (X)HTML.<br />
            <?php echo "Celle-ci est écrite entièrement en PHP."; ?>
        </p>
    </body>
</html>

question Comment enregistrer sa page PHP ?

Enregistrer une page PHP
Tout simplement avec l'extension .php, pour l'exemple on enregistre "affichertexte.php"
Avec Notepad++, sélectionner PHP Hypertxt Preprocessor file (*.php)

Tester la page PHP
La méthode sera similaire dans les grandes lignes quelque soit le système d'exploitation.
Sous Windows, démarrer WAMP et aller dans le menu "Localhost". Si le dossier "tests" a bien été créé dans le répertoire "www", on voit apparaître un lien vers le dossier "tests". Cliquer dessus.
Une page weg s'ouvre indiquant tous les fichiers se trouvant dans ce dossier "tests". On doit avoir notre fichier "affichertexte.php". Cliquer dessus, l'ordinateur génère alors le code php, puis ouvre la page.
Le même résultat peut-être obtenu en allant directement à l'adresse http://localhost/tests/affichertexte.php dans son navigateur.

Comment PHP génère du code XHTML
L'instruction echo demande à PHP d'insérer le texte que l'on a demandé

erreur Ne jamais oublier le point-virgule, sinon, on aura le message "Parse Error".
Noter que ça plante uniquement si le code PHP fait plus d'une ligne (ça sera tout le temps le cas). Donc, prendre l'habitude de mettre un point-virgule à la fin des instructions.

PHP génè du code XHTML et renvoie au visiteur uniquement du code XHTML (accompagné de sa feuille de style CSS éventuellement).

Concrètement :
Code PHP d'origine
        <p>
            Cette ligne est écrite entièrement en (X)HTML.<br />
            <?php echo "Celle-ci est écrite entièrement en PHP."; ?>
        </p>
Code généré et envoyé au visiteur
        <p>
            Cette ligne est écrite entièrement en (X)HTML.<br />
            Celle-ci est écrite entièrement en PHP.
        </p>

Les commentaires

Deux types de commentaires :
  • commentaires monolignes
  • commentaires multilignes
Code PHP commentaires monolignes suivant l'endroit
        <?php
        echo "une instruction en PHP."; // commentaire de cette instruction
       
        // commentaire de l'instruction ci-dessous
        echo "une autre instruction en PHP.";
        ?>
Code PHP commentaire multiligne
        <?php
        /* commentaire pour mon instruction PHP
        sur plusieurs lignes…
        …, j'ai dit plusieurs lignes */

        echo "une instruction en PHP.";
        ?>

Autres sites à consulter

- http://www.siteduzero.com/tutoriel-3-14668-un-site-dynamique-avec-php.html
- http://www.phpfrance.com/
- http://fr.wikipedia.org/wiki/PHP
- http://php.net/manual/fr/index.php
- http://www.vulgarisation-informatique.com/php.php
-
- http://www.phpdebutant.org/article54.php
- http://www.neuronnexion.fr/setup/http.php/index.html
- http://www.lephpfacile.com/cours/1-avant-toutes-choses
- http://www.cdprof.com/formation/formation_php1.php
-