Script php qui marchait il y a quelques ann

Le
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

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Didier
Le #26532363
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.
jp
Le #26532428
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.
Lcd5
Le #26544300
Le 05/12/2019 à 23:20, Didier a écrit :
  $counter = fgets($fp, 20);

fgets renvoie un string donc difficile de faire $counter++ ensuite ...
jp
Le #26544592
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
Poster une réponse
Anonyme