Pour communiquer entre eux, le client et le serveur doivent parler la même langue c'est-à-dire utiliser les mêmes protocoles.
Pour les requêtes web, c'est le protocole HTTP (HyperText Transfer Protocol) qui est utilisé.
<html>
<head>
<meta charset="UTF-8">
<title>horloge javascript</title>
</head>
<body>
<p>Horloge réalisée en javascript :</p>
<p id="heure"></p>
<script type="text/javascript">
function actualiser() {
var date = new Date();
var str = date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();
document.getElementById('heure').innerHTML = str;}
setInterval(actualiser, 1000);
</script>
</body>
</html>
<?php ... ?>
. <html>
<head>
<meta charset="UTF-8">
<title>horloge PHP</title>
</head>
<body>
<p>Horloge réalisée en php :</p>
<?php
date_default_timezone_set("Europe/Andorra");
echo date("H:i:s");
?>
</body>
</html>
<meta>
dans l'en-tête
:
<meta http-equiv="Refresh" content="durée_en_secondes;URL=adresse_de_la_page">
Remarque : Malgré la demande de rafraîchissement de la page, inclue dans le code de celle-ci,
les méthodes d'optimisation des navigateurs pour diminuer la consommation de données et permettre un
chargement plus rapide des pages peut rendre inefficace cette méthode.
Cela montre que pour ce genre d'application, il est préférable de déporter le calcul côté client (javascript) et ainsi soulager le réseau et le serveur.
http://raisintine.fr/chocolatine
index.html
du site internet chocolatine
hébergé sur le serveur raisintine.fr
qui sera envoyé par le serveur.
https://raisintine.fr/chocolatine/document.php?id=402
document.php
avec le paramètre id
et ayant pour valeurs 402
.
GET [/ http://www.google.com] HTTP/1.0
Accept : text/html
If-Modified-Since : Saturday, 15-January-2017 14:37:11 GMT
User-Agent : Mozilla/8.0 (compatible; MSIE 7.0; Windows 7)
http://www.google.com
au format text ou html pour le navigateur Firefox (Mozilla). &
.
https://raisintine.fr/chocolatine/document.php?id=402&idsb=2242
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script async>
// Récupération des valeurs passées dans l'URL (méthode GET)
var vars = {};
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {vars[key] = value;});
if (vars["nom"] != undefined) {
document.write("<h3>Bonjour "+vars["nom"]+" !</h3>");}
else {
document.write("<h3>Bonjour inconnu !</h3>");}
</script>
</head>
<body>
</body>
</html>
$_GET
.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
if (isset($_GET['nom'])) {
echo '<h3>Bonjour '.$_GET['nom'].' !</h3>';}
else {
echo '<h3>Bonjour inconnu !</h3>';}
?>
</body>
</html>
Exemple : Une zone de texte qui demande votre prénom :
<form method="GET"
action="https://raisintine.fr/chocolatine/assets/1/bonjour.html">
<label for="nom">Entrez votre nom :</label>
<input type="text" name="nom" id="nom"
placeholder="Ex: Jojo" size="20" maxlength="10"/>
<input type="submit" value="Envoyer" />
</form>
<label>
suivie d'une case à remplir <input type="text" ...>
préremplie avec Ex: Jojo
.
placeholder
, size
et maxlength
sont facultatifs.
name
est le nom du champ du formulaire et correspond au nom du paramètre dans la requête envoyée au serveur.
id
est l'identifiant unique de la balise.Dans le cas d'une liste déroulante, nous aurions un seul attribut name
pour la liste mais plusieurs id
pour chaque choix possible dans cette liste.
for
dans la balise <label>
permet d'associer l'étiquette au champ à remplir. Si on clique sur Entrez votre nom
, le curseur se place automatiquement dans l champ de saisie associé.
<input>
de type submit
va créer un bouton qui sera chargé de l'envoi du formulaire au
fichier bonjour.html
avec en paramètres les différents champs (ici seulement name
) et leurs valeurs. formulaire.html
, avec l'exemple de formulaire ci-dessus. Cette page doit être située dans le même répertoire que le fichier de l'exercice précédente bonjour.html
.
<input>
pour faire des formulaires en HTML. Retrouver de nombreux exemples sur sur scriptol.fr
et sur w3schools. method="GET"
comme attribut du formulaire, celui-ci sera envoyé par défaut avec cette méthode. Méthode GET | Méthode POST | |
---|---|---|
Visibilité des paramètres | Visible pour l'utilisateur dans l'URL | Invisible pour l'utilisateur lambda |
Marque-page et historique de navigation | Les paramètres de l'URL sont stockés en même temps que l'URL. | L'URL est enregistrée sans les paramètres. |
Type de données | Jeu de caractères ASCII. Certains caractères sont réservés (= ou & ). | Jeu de caractère bien plus large. |
Longueur des données | Longueur maximale de l'URL d'environ 2000 caractères. | Illimitée |
évènement | explications |
---|---|
onclick | souris : clic sur l'élément |
ondblclick | souris : double-clic sur l'élément |
onmouseenter | souris : le curseur entre sur l'élément |
onmouseleave | souris : le curseur quitte l'élément |
onkeydown | clavier : une toucheest enfoncée |
onkeypress | clavier : une touche est maintenue enfoncée |
onkeyup | clavier : une touche est relâchée |
onfocus | le champ prend le focus (la souris est dedans) |
onblur | le champ perd le focus (permet donc de lancer un contrôle de validité du champ) |
onchange | la valeur du champ change |
oninput | le champ est rempli |
onvalid | la saisie n'est pas valide, par exemple un texte pour un nombre |
onselect | lorsqu'on sélectionne un champ dans un menu |
onsubmit | lorsqu'on envoie le formulaire |
bonjour.html
ou formulaire.html
, où faut-il ajouter du code javascript permettant de valider les données avant l'envoie ?