Cours PHP initiation.
Réponse AJAX

Introduction au PHP

Généralités

A la base, les serveurs HTTP (Apache, IIS, etc.) ne savent pas interpréter le PHP. Pour que cela marche, il faut leur ajouter le module adéquat. WAMP, ainsi que les autres suites logicielles similaires, ajoutent automatiquement cette extension.

Le PHP est exécuté côté serveur, seul le résultat est envoyé au navigateur. Les navigateurs ne savent donc pas exécuter le PHP, et ne sont pas censés en recevoir.

Le PHP permettra, dans un site : d'utiliser une base de données (pour stocker les utilisateurs, des messages, etc.), d'envoyer des courriers électroniques, etc. Ces choses sont impossibles en HTML/CSS.

Une page PHP contient par défaut du HTML, elle doit donc commencer par les balises <html><head>.... Toutefois, on a la possibilité de basculer du HTML au PHP, et inversement, grâce aux balises suivantes :
(code HTML) <?PHP (instructions PHP) ?> (code HTML)

Ma page PHP ne s'éxécute pas ? La liste des erreurs possibles..

Les erreurs les plus fréquentes sont :

D'autres erreurs possibles :

L'affichage avec echo

echo permet d'envoyer un contenu au navigateur. Le navigateur traitera ce contenu comme lorsqu'il reçoit une page Web traditionelle.

Ce contenu sera donc généralement du HTML, mais cela pourra être également du CSS ou n'importe quelle technologie dite cliente (c'est à dire interprétable par le navigateur, contrairement à une technologie dite serveur).

Voici un exemple de page PHP, qui mélange du HTML et du PHP, et qui utilise la fonction echo pour afficher "Bonjour !" dans le navigateur :

Vous remarquez dans cet exemple :

Arrivez-vous à faire fonctionner cet exemple ? Tapez le code ci-dessus dans un éditeur de texte brut genre NotePad++.

Sauvez-le à la racine du serveur Internet (en général C:\wamp\www (cf. paragraphe 1), avec l'extension .php, par exemple test.php.

Ouvrez-le dans un navigateur, avec l'adresse http://127.0.0.1/test.php. Vous devez obtenir ce résultat :

Récupération des données de formulaires

Tapez les codes suivants dans le bloc-note, et sauvez-les dans deux fichiers respectifs à la racine du serveur Internet.

fichier formulaire.html fichier validation.php

<html><head></head><body>
<form action=validation.php>
  <input type=text name=ma_zone_de_texte>
  <br>
  <input type=submit>
</form>
</body></html>

<html><head></head><body>
<?php
  echo "Vous avez saisi : ";
  echo $_GET["ma_zone_de_texte"];
?>
</body></html>

Vous remarquez que :

A vous de jouer : créer un fichier saisi_nom.html qui :
- contient un formulaire où l'on peut saisir son prénom
- renommez le champ ma_zone_de_texte pour lui donner un nom approprié,
- l'action du formulaire envoie vers la page affiche_bonjour.php
Collez ici le contenu de ce fichier :

Votre réponse n°1

Créez le fichier affiche_bonjour.php qui, si l'on a saisi Visiteur, affiche Bonjour Visiteur. Collez ici le contenu de ce fichier :

Votre réponse n°2

Les variables et les expressions de base

UtilisationExplication
$aUne variable en PHP est précédée du signe $.
$a = 5 ;On affecte 5 à la variable $a.
$a vaut 5.
$a = $a + 1;On ajoute 1 à la valeur de la variable a.
$a = $a - 1;On enlève 1 à la valeur de la variable a.

Créez une page PHP sans formulaire où :
- vous affectez la valeur 10 à une variable nommée $nb,
- vous ajoutez 5 à cette variable,
- vous affichez le résultat dans le navigateur.
Après l'avoir testé, collez ici ce code HTML/PHP :

Votre réponse n°3

Dans cet exercice, vous reprenez l'exemple du paragraphe précédent. Au lieu de faire saisir un login, vous faites saisir deux entiers a et b. La partie en PHP affiche la somme des deux nombres. Prenez soin de faire un affichage explicite, dans le formulaire et dans le résultat.

Collez ici la partie HTML :

Votre réponse n°4

Collez ici la partie PHP :

Votre réponse n°5

Fusionner le formulaire et le traitement dans un même fichier .php

Pour ne pas trop multiplier le nombre de fichiers qui compose notre site Web, on regroupe en général dans un même fichier tous les formulaires et tous les traitements associés que l'on peut rencontrer dans une page Web.

Par exemple, dans ce site, la gestion du compte permet de déposer une petite annonce, modifier son mot de passe, modifier son adresse mél, etc.

Cette page devra avoir l'extension .php et non pas .html puisqu'elle contient des traitements php.

Dans l'exemple suivant, je reprends l'exemple du prénom et je le fusionne dans un seul fichier. Voilà le résultat (extrait seulement, il manque la structure de la page Web) :

Toutefois, cela génère une erreur la première fois que l'on arrive sur la page, car PHP essaie d'afficher un prénom qu'il ne connait pas encore parce que le formulaire n'a été ni rempli, ni soumis :

Bonjour
( ! ) Notice: Undefined index: form_prénom in C:\wamp\www\test.php on line 7
Call Stack
#TimeMemoryFunctionLocation
10.0006244680{main}( )..\test.php:0

Voici donc la formulation qui évite l'erreur : si le formulaire n'est pas validé, on n'effectue pas le traitement associé :

Reprenez vos réponses 4 et 5 (somme des entiers a et b), et fusionnez les deux fichiers en un seul fichier somme.php. Après l'avoir testé, collez ici le contenu du fichier :

Votre réponse n°6

Méthode GET et méthode POST

Par défaut, un formulaire est en méthode GET. C'est pourquoi les données du formulaire sont transmises par l'URL. C'est comme si on avait écrit (mais c'est inutile car c'est la valeur par défaut) :

Cette méthode présente plusieurs inconvénients :

Il existe donc une autre méthode : la méthode POST, qui corrige tous ces inconvénients. Cela doit être précisé explicitement dans la balise <form> et demande quelques adaptations dans le code PHP :

Repenez votre réponse n°6, adaptez-la pour qu'elle travaille avec la méthode POST, puis collez ici le contenu du fichier :

Votre réponse n°7