Cours PHP initiation.
Réponse AJAX

Introduction au PHP

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 :

Le cas échéant : installation des logiciels nécessaires

Si vous voulez transformer votre ordinateur en serveur Internet, téléchargez WampServer puis installez-le.

Si vous voulez utiliser le serveur Internet du lycée, téléchargez Filezilla Client puis installez-le, vous pourrez ainsi transférer vos fichiers vers le serveur.

Pour dépanner, vous pouvez utiliser le PHP Instant (aux possibilités très limitées).

Hello World !

Le Hello World ! est une coutume en informatique : cela permet de montrer la mise en place minimale pour exécuter un programme dans un environnement que vous êtes en train de découvrir.

Lancez un traitement de texte brut comme Notepad++ par exemple.

Tapez dedans le code de Hello Word ! :

Enregistrez-le sous c:\wamp64\www\helloworld.php (éventuellement utilisez FileZilla pour l'envoyer sur votre espace Web sur le serveur du lycée).

Ouvrez-le dans le navigateur et tapant l'URL 127.0.0.1/helloworld.php

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