Une page web est dite statique si son contenu ne change pas en fonction de la demande, elles peuvent être animées (pensez à l'exemple en CSS ou aux logos) mais il n'y a pas d'interactions (un lien vous entraîne sur une autre page mais ne modifie pas la page) et si vous ouvrez le fichier HTML de la page dans un éditeur alors vous aurez le même code que votre voisin. Dans se cas le serveur de votre hébergeur ne fait qu'envoyer le bon fichier là où il faut. Un grand nombre de pages de mon site sont statiques.
Au départ, le web était surtout constitué de page statique, mais actuellement beaucoup de site vous demande de vous identifier et d'interagir, les pages sont alors dynamiques.
Par exemple, quand vous êtes sur MBN vous avez peut être votre nom d'identifiant dans un coin, la page est adaptée à vous. Si vous ouvrez le fichier HTML et que vous le comparer avec votre voisin, vous allez voir que le code n'est pas le même (souvent pas grand chose un Alain et remplacé par un Béatrice par exemple)
On peut penser que le serveur contient une version de chaque fichier HTML par identifiant et vous donne celui qui vous revient mais cela demanderait beaucoup trop de mémoire, en réalité le serveur va créer de lui même une page HTML adaptée et vous l’enverra, pour cela il a besoin d'un nouveau langage le PHP.
Rassurez vous, l’étude du PHP n'est pas au programme (il faut bien laisser quelque chose au supérieur surtout qu'au PHP on associe souvent une gestion des bases de données) ce qui est au programme sont les façons de communiquer avec le serveur.
Quand une page est généré à partir de PHP on dit qu'elle est dynamique coté serveur, une autre façon de rendre dynamique une page est de la faire via des script coté client (c'est à dire sur votre ordinateur). Pour cela on utilise des petits programmes (des scripts) qui se lanceront sur l'ordinateur de l’utilisateur mais pas sur le serveur de l'hebergeur. Pour faire des scripts coté client, le langage généralement utilisé et reconnu par tous les navigateurs est le JavaScript mais on peut aussi utiliser python si l'on veut.
Les deux façons ne sont pas exclusives, on peut très bien créer en PHP une page dynamique coté client.
L'étude du JavaScript est pour les prochaines séances. Dans cette partie nous avons parler des formulaires et des deux méthodes possibles pour les envoyer au serveur.
EN HTML, nous avons vu comment entrer du texte et des images mais on peut aussi insérer des éléments de saisies, cela se fait via la balise <input type = 'type de l'input'>.
Pour chaque input on peut évidemment paramétrer plein de choses, la couleur d'un bouton, la longueur d'une zone texte,... il y a tellement de choses que le mieux et de passer par un moteur de recherche ou un bon livre pour avoir des précisions.Néanmoins il y a un paramètres importants à donner pour chaque balise le nom si vous voulez communiquer avec le serveur ou l'ID si vous voulez rester sur le client.
Les formulaires regroupent plusieurs balises input et enverrons après soumission les informations vers le serveur de manières différentes.
Voyons un exemple de formulaire, entrer votre nom et prénom puis votre date de naissance et appuyer sur terminer.
Le code (sans les balises body...) est le suivant :
On déclare le début d'un formulaire avec la balise <form> à cette balise on donne la façon d'envoyer les données (ici GET) et le fichier cible Bonjour_v_get.php qui est hébergé sur le serveur, il est important de comprendre que ce fichier n'existe pas sur votre ordinateur et ne sera jamais sur votre ordinateur.
Ensuite viennent des balises inputs, la balise date à un effet variable selon les navigateurs (essayez avec edge et chrome par exemple), le nom des balises est important et il est conseillé de ne pas les choisir n'importe comment (genre a,b,c).
La dernière balise est un bouton particulier qui va signaler l'envoie de vos données au serveur, si vous n'avez plus de connexion internet et bien ça bug.
Remarquez la barre d'adresse de votre navigateur, les données que vous avez entrées sont données au serveur par de cette façon avec la méthode GET, si vous le désirez vous pouvez très bien modifier directement la barre d'adresse sans passer par le formulaire. Au passage vous voyez que le mot de passe n'est pas caché du tout !
Vous n’êtes pas obligé d'utiliser le formulaire, vous pouvez très bien modifier directement la barre d'adresse ou même l'écrire en entier sans même passer par la page précédente.
Voyons les étapes d'une utilisation classique :
A titre indicatif, voici le contenu du fichier Bonjour_v_get.php :
Comme vous voyez ça ressemble beaucoup à du HTML (d'ailleurs si le code peut être que du HTML), cependant à moins d'avoir un serveur sur votre ordinateur (par exemple apache) vous ne pouvez rien en faire.
Le echo est l'équivalent d'un print, les variables sont toutes précédées d'un $ et $_GET est un dictionnaire avec pour clefs les noms données dans les champs "name".
Comme les données sont dans la barre on peut créer des raccourcis et des liens pratiques, par exemple le lien suivant conduit à la recherche NSI Stanislas sur Google.
Comme les adresses on une taille limitée, on a une autre méthode pour envoyer de l'information la méthode "POST".
Pour utiliser la méthode POST il suffit juste de remplacer GET par POST dans le formulaire puis dans la fichier PHP et c'est tout !
Le code du formulaire est :
Et pour information le code de la page PHP est :
Ici on ne voit pas les données transmises, c'est un peu plus confidentiel : on ne voit pas plus le mot de passe mais si vous ne passez pas par une communication sécurisée il suffit d'intercepter votre communication (par exemple en étant sur un des routeurs) pour tout récupérer. La sécurité est un gros problème, on en parle un peu en terminale.
Avec post nous sommes obligé de passer par le formulaire pour accéder à la page et nous ne sommes pas limité au niveau de la taille des données.
Comment fait un site pour vous garder identifier ? On peut se dire que l'adresse IP suffit mais si vous une adresse privée (192.168...) alors votre adresse n'existe plus en dehors de votre réseau local et si vous etes sur un portable alors votre adresse change avec vos déplacements. Pour vous identifiez le site vous transmet un petit fichier appelé cookies qui contient vos informations, si vous allez à nouveau sur ce site alors le naviagateur envera aussi le cookies et le serveur l'analysera par exemple pour récupérer votre nom, ou votre panier, vos dernieres pages visitée ...
Les cookies ont des durées de vie limitée, si par exemple vous être incatif trop longtemps sur MBN alors le coockies aura expiré et vous allez devoir vous connecter à nouveau pour recevoir un nouveau coockies.
Les coockies ont mauvaise réputation car ils peuvent (dans certain cas) suivre votre navigation, imaginons que vous allez sur un site de jeu vidéo géré par un serveur A ou se trouve une publicité pour un jeu vidéo hébergée sur un serveur B (n'oubliez pas que pour charger une page votre naviagteur peut charger des bouts à différents endroits). Vous allez recevoir deux cookies, un de A et un de de B, si maintenant vous allez sur un troisiéme site par exemple un cite sur le cinéma contenant lui aussi une puclicité du serveur B alors vous allez renvoyer au serveur B le cookies que vous avez recu par la publicité sur le jeu vidéo. Le serveur B par un algorithme des k plus proches voisins "va se dire" : lui il aime les jeux vidéos donc on va lui proposer un film d'action violent. Si un des sites vend ses données, le site publicitaire peut même associer un nom ou une adresse mail ou cookies !