Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Script php qui marchait il y a quelques ann

4 réponses
Avatar
jp
Bonjour,

Je suis en train de remettre un script que j'avais fait il y a plusieurs
années. Est-ce que quelqu'un peut me dire où se trouve l'erreur dans ce
script? Merci d'avance.

<?php
$counter = 0;
$ip = getenv("REMOTE_ADDR");

function count($counter) {
$fp = @fopen("download_counter.txt","w");
if ($fp) {
fwrite($fp, $counter);
fclose($fp);
}
}

$fp = @fopen("download_counter.txt","r");
if ($fp) {
$counter = fgets($fp, 20);
fclose($fp);
if ( ($ip !== 'xx.xx.xx.xx'/*Mon ip*/) && ($ip !== '127.0.0.1') ) {
$counter++;
count($counter);
}
/*Affiche le compteur seulement quand c'est le webmaster qui se connecte.
=> décommenter la ligne A et mettre en commentaire la ligne B*/
//else { echo $counter . ' téléchargements.'; }//Ligne A

/*Affiche le compteur tout le temps => mettre en commentaire la ligne A
et décommenter la ligne B pour que tout le monde voit le compteur.*/
echo $counter . ' téléchargements.';//Ligne B
}
else {
$counter++;
count($counter);
echo $counter;
}
?>

C'est un script qui compte le nombre de vues de la page dans laquelle il
se trouve. Avant ça marchait, maintenant ça ne marche plus...

4 réponses

Avatar
Didier
Le 05/12/2019 à 22:11, jp a écrit :
Bonjour,
Je suis en train de remettre un script que j'avais fait il y a plusieurs
années. Est-ce que quelqu'un peut me dire où se trouve l'erreur dans ce
script? Merci d'avance.
<?php
$counter = 0;
$ip = getenv("REMOTE_ADDR");
function count($counter) {
$fp = @fopen("download_counter.txt","w");
if ($fp) {
fwrite($fp, $counter);
fclose($fp);
}
}
$fp = @fopen("download_counter.txt","r");
if ($fp) {
$counter = fgets($fp, 20);
fclose($fp);
if ( ($ip !== 'xx.xx.xx.xx'/*Mon ip*/) && ($ip !== '127.0.0.1') ) {
$counter++;
count($counter);
}
/*Affiche le compteur seulement quand c'est le webmaster qui se connecte.
=> décommenter la ligne A et mettre en commentaire la ligne B*/
//else { echo $counter . ' téléchargements.'; }//Ligne A
/*Affiche le compteur tout le temps => mettre en commentaire la ligne A
et décommenter la ligne B pour que tout le monde voit le compteur.*/
echo $counter . ' téléchargements.';//Ligne B
}
else {
$counter++;
count($counter);
echo $counter;
}
?>
C'est un script qui compte le nombre de vues de la page dans laquelle il
se trouve. Avant ça marchait, maintenant ça ne marche plus...

Je ne suis qu'un piètre amateur en PHP, mais pourquoi utiliser un mot
réservé du langage ('count') pour ta fonction ? Peut-être que 'count'
n'en était pas un il y a qq années ?
Didier.
Avatar
jp
Le Thu, 05 Dec 2019 23:20:43 +0100, Didier a écrit :
C'est un script qui compte le nombre de vues de la page dans laquelle
il se trouve. Avant ça marchait, maintenant ça ne marche plus...

Je ne suis qu'un piètre amateur en PHP, mais pourquoi utiliser un mot
réservé du langage ('count') pour ta fonction ? Peut-être que 'count'
n'en était pas un il y a qq années ?
Didier.

Effectivement. Je ne sais pas si c'est un mot qui a été rajouté au
langage, mais avant ça marchait... Je vais essayer en changeant le nom de
la fonction. Ça risque de fonctionner. Merci pour ta remarque.
Avatar
Lcd5
Le 05/12/2019 à 23:20, Didier a écrit :
  $counter = fgets($fp, 20);

fgets renvoie un string donc difficile de faire $counter++ ensuite ...
Avatar
jp
Le Thu, 23 Apr 2020 20:57:55 +0200, Lcd5 a écrit :
Le 05/12/2019 à 23:20, Didier a écrit :
  $counter = fgets($fp, 20);

fgets renvoie un string donc difficile de faire $counter++ ensuite ...

J'ai déjà soumis ce problème à ce groupe et la solution est qu'il faut
transtyper. $counter = (int) fgets($fp, 20); Et après on peut faire
$counter++;
J'espère que ça aidera comme ça m'a aidé. Je précise que je ne suis pas
spécialiste.
A+
JP