Dans ce tutoriel, nous allons dĂ©couvrir comment suivre les clics sur des liens en utilisant lâattribut HTML ping
et un script PHP. Cette mĂ©thode est utile pour enregistrer les clics des utilisateurs sur des liens externes sans perturber leur navigation. Voici comment cela fonctionne et comment lâimplĂ©menter Ă©tape par Ă©tape.
1. Introduction au fonctionnement
Le suivi des clics sur des liens peut ĂȘtre rĂ©alisĂ© Ă l'aide de l'attribut ping
. Cet attribut permet d'envoyer une requĂȘte POST vers une URL spĂ©cifiĂ©e lorsque l'utilisateur clique sur un lien. L'avantage est que cette requĂȘte est indĂ©pendante de l'ouverture du lien, ce qui garantit une expĂ©rience fluide pour l'utilisateur.
Dans notre exemple :
- Les liens HTML possĂšdent lâattribut
ping
pointant vers un script PHP. - Le script PHP enregistre les clics dans un fichier journal (
pings.log
).
2. Structure HTML avec lâattribut ping
Voici le code HTML utilisĂ© pour dĂ©finir les liens avec lâattribut ping
:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ping</title>
</head>
<body>
<a href="https://nouvelle-techno.fr" target="_blank" ping="./ping.php">Nouvelle-Techno.fr</a>
<a href="https://youtube.com" target="_blank" ping="./ping.php">Youtube</a>
</body>
</html>
Explications :
- Attribut
ping
:- DĂ©finit une URL oĂč une requĂȘte POST est envoyĂ©e lorsquâun utilisateur clique sur le lien.
- Dans cet exemple, les requĂȘtes sont envoyĂ©es au fichier
ping.php
.
- Balises
<a>
:- Chaque lien ouvre une page externe (
href
) dans un nouvel onglet (target="_blank"
). - En parallĂšle, une notification est envoyĂ©e Ă
ping.php
.
- Chaque lien ouvre une page externe (
3. Le script PHP pour enregistrer les clics
Le fichier ping.php
est le cĆur de la logique. Il traite les requĂȘtes POST et enregistre les informations dans un fichier journal.
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Lire le contenu brut de la requĂȘte
$content = file_get_contents('php://input');
// Vérifier que le contenu est bien un "PING"
if ($content === 'PING') {
// RĂ©cupĂ©rer les informations de l'en-tĂȘte HTTP
$source = $_SERVER['HTTP_PING_FROM']; // URL de départ
$dest = $_SERVER['HTTP_PING_TO']; // URL de destination
$sent_at = date('d/m/Y H:i:s'); // Date et heure du clic
// Enregistrer les données dans un fichier log
file_put_contents('pings.log', "$sent_at - $content - De : $source - Vers : $dest\n", FILE_APPEND);
}
}
Explications :
Vérification de la méthode HTTP :
- Le script ne rĂ©pond quâaux requĂȘtes
POST
grĂące Ă la condition$_SERVER['REQUEST_METHOD'] === 'POST'
.
Lecture du contenu de la requĂȘte :
- La méthode
file_get_contents('php://input')
permet de lire le corps brut de la requĂȘte POST. Dans ce cas, le contenu attendu est "PING".
Informations sur le clic :
- L'en-tĂȘte
HTTP_PING_FROM
contient lâURL du lien cliquĂ©. - L'en-tĂȘte
HTTP_PING_TO
contient lâURL de destination du lien.
Enregistrement dans un fichier journal :
- Les informations sont formatées et ajoutées à un fichier
pings.log
pour un suivi simple.
4. Exemple de fichier journal
Voici un exemple de contenu du fichier pings.log
aprĂšs plusieurs clics sur les liens :
25/01/2025 16:12:34 - PING - De : https://nouvelle-techno.fr - Vers : https://youtube.com
25/01/2025 16:15:10 - PING - De : https://nouvelle-techno.fr - Vers : https://nouvelle-techno.fr
Chaque entrée enregistre :
- La date et lâheure du clic.
- Le contenu brut de la requĂȘte (
PING
). - LâURL source et destination.
5. Configuration du serveur pour les en-tĂȘtes ping
Pour que cette solution fonctionne, le navigateur envoie automatiquement les en-tĂȘtes HTTP PING_FROM
et PING_TO
. Aucun paramĂštre supplĂ©mentaire nâest nĂ©cessaire sur le serveur ou le client.
6. Limites et précautions
Compatibilité des navigateurs :
- Lâattribut
ping
est pris en charge par les principaux navigateurs modernes, mais peut ne pas ĂȘtre compatible avec certains navigateurs plus anciens.
Protection des données :
- Ăvitez de stocker des informations sensibles dans les logs, et assurez-vous que le fichier
pings.log
nâest pas accessible publiquement.
Sécurisation :
- VĂ©rifiez le contenu des requĂȘtes pour Ă©viter les abus ou injections malveillantes.
7. Avantages de lâattribut ping
Performance :
- Le suivi est effectuĂ© de maniĂšre asynchrone sans ralentir lâutilisateur.
Simplicité :
- Lâattribut
ping
est facile Ă mettre en Ćuvre et ne nĂ©cessite pas de JavaScript.
Traçabilité :
- Les informations collectĂ©es peuvent ĂȘtre utilisĂ©es pour des analyses simples du trafic.
Avec ce systĂšme, vous pouvez suivre efficacement les clics sur vos liens tout en offrant une expĂ©rience utilisateur fluide et rapide. Cette mĂ©thode est idĂ©ale pour surveiller les interactions avec des liens externes sur un site web. đ
Obtenir de l'aide
Pour obtenir de l'aide, vous pouvez accéder au serveur Discord pour une entraide par chat.

Catégories : Développement Front-End Développement Back-End Développement PHP
Mots-clés : Tutoriel HTML Tutoriel PHP