Installer un compteur de visites

#1
Bonjour,
Je voudrais placer un compteur de visites sur mon site et créer une base de données dans ce but.
J’ai réalisé une page d’essai contenant un script :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Abstrus</title>
<meta content="Michel BACKELJAU" name="author" />
<link type="text/css" rel="stylesheet" href="../styleHot.css" />
<script type="text/javascript" src="../jquery.js"></script>
</head>
<body>
<?php
// Connexion à MySQL
mysql_connect("XXX", "masqué", "masqué");
mysql_select_db("xvvuccbm_stats");
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
$donnees = mysql_fetch_array($retour);
if ($donnees['nbre_entrees'] == 0)
{mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');}
else
{mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');}
$timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE timestamp>\'' . $timestamp_5min . '\'');
$donnees = mysql_fetch_array($retour);
if ($donnees['nbre_entrees'] == 1)
{echo 'En ce moment, ' . $donnees['nbre_entrees'] . ' internaute est connect&#233;<br />.';}
else
{echo 'En ce moment, ' . $donnees['nbre_entrees'] . ' internautes sont connect&#233;s.<br />';}
$jour = date('d');
$mois = date('m');
$annee = date('Y');
$aujourd_hui = mktime(0, 0, 0, $mois, $jour, $annee);
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE timestamp>\'' . $aujourd_hui . '\'');
$donnees = mysql_fetch_array($retour);
if ($donnees['nbre_entrees'] == 1)// respect du singulier
{echo 'Depuis ce matin, ' . $donnees['nbre_entrees'] . ' visiteur s&#8217;est pr&#233;sent&#233;.<br />';}
else
{echo 'Depuis ce matin, ' . $donnees['nbre_entrees'] . ' visiteurs se sont pr&#233;sent&#233;s.<br />';}
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$donnees = mysql_fetch_array($retour);
echo 'Ce site re&#231;soit sa ' . $donnees['nbre_entrees'] . '<sup>e</sup>visite, avec la v&#244;tre, depuis sa premi&#233;re mise en ligne.<br />';
?>
</body>
</html>

J’ai créé une base de données sur le panneau Wordlite. Mais là je cale (déjà).
Que faut-il indiquer à la place des XXX (dans le script de essai.php) ?
Comment agir sur la base de données selon ce modèle :

CREATE TABLE IF NOT EXISTS `connectes` (
`ip` varchar(15) NOT NULL,
`timestamp` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf-8;


Après quelques tâtonnements, je crois avoir pu créer la "table" des 'connectes' sur la plateforme php.
Mais la page essai.php donne lieu à un code d'erreur sur la console Windows10/Edge :
"Failed to load resource: the server responded with a status of 500 (Internal Server Error)"
et la page n'affiche que le texte au-dessus du code php…

Je suis conscient de mon ignorance et vous serais reconnaissant de m’éclairer. Cordialement.
 
Dernière édition:

PH-Marc-André.B.

Modérateur
Membre du personnel
#2
Bonjour,

Votre script semble bien mais recours à une fonction dépréciée de PHP malheureusement pas disponible sur notre World Lite: mysql_connect

https://www.php.net/manual/fr/function.mysql-connect.php

C'était réservé pour php 4 et 5 et fût complètement discontinué, votre World Lite tourne en PHP 7.3+

[...]

'Avertissement
Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide. Alternatives à cette fonction :

'

[...]
 
#3
Bonjour,

Votre script semble bien mais recours à une fonction dépréciée de PHP malheureusement pas disponible sur notre World Lite: mysql_connect

https://www.php.net/manual/fr/function.mysql-connect.php

C'était réservé pour php 4 et 5 et fût complètement discontinué, votre World Lite tourne en PHP 7.3+

[...]

'Avertissement
Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide. Alternatives à cette fonction :

'

[...]
Je vous remercie de ces précisions. Entretemps, j'ai renoncé à l'installation d'un compteur de visites interne, imaginée en alternative au service externe qui me donnait satisfaction depuis quinze ans.
En effet, j'avais entretemps suspendu le service de statistiques tiers croyant que ce script causait la mise de mon site sur la liste noire.
Or, il n'en est rien : deux jours après suppression de ce service de statistiques, mon site reste "blacklisté".
 
Dernière édition:
Haut