Discussion:
Script php qui marchait il y a quelques années et qui ne marche plus maintenant.
(trop ancien pour répondre)
jp
2019-12-05 21:11:57 UTC
Permalink
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...
Didier
2019-12-05 22:20:43 UTC
Permalink
Post by 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) {
if ($fp) {
fwrite($fp, $counter);
fclose($fp);
}
}
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
2019-12-06 11:38:04 UTC
Permalink
Post by Didier
Post by jp
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
2020-04-23 18:57:55 UTC
Permalink
  $counter = fgets($fp, 20);
fgets renvoie un string donc difficile de faire $counter++ ensuite ...
jp
2020-04-25 16:47:14 UTC
Permalink
Post by Lcd5
  $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

Continuer la lecture sur narkive:
Loading...