message d'erreur avec fopen

Bonsoir

Je viens de placer une noisette dans mon site, noisette qui s’inspire très largement du plugin Balises de comptage
Si le résultat des balises est correct, j’ai un message d’erreur juste avant avant l’affichage du bloc :

Warning: fopen(data.dat) [function.fopen]: failed to open stream: Permission denied in /webdata/academie/escal/plugins/auto/escal/escal_fonctions.php on line 107

Visible en ligne ici

En effet ligne 107, j’ai bien
if($fichier=fopen($filename,« w »)) {

mais la ligne 75 qui contient
if ($fichier=fopen($filename,« r »)) {
ne provoque pas d’erreur

C’est donc le w (pour write je suppose) qui couine ?

Etant ignare en php, je me tourne vers vous.
Une idée de la solution ?

Ci-dessous l’ensemble de la fonction

// balise #NB_CONNECTES d’après Merckel Loic
function vst_nb_visiteurs_connecte() {
$time=240;
$filename=« data.dat »;
// $time est le temps en seconde à partir duquel on considère que
// le visiteur n’est plus connecté
// $filename est le nom du fichier créé pour stocker les informations
$ip = getenv(« REMOTE_ADDR »);
$date=time();
$i=0;
$ii=0;
$bool=0;
if (file_exists($filename)) {
if ($fichier=fopen($filename,« r »)) {
while(!feof($fichier)) {
$ligne=fgets($fichier,4096);
$tab=explode("|",$ligne);
if ($tab[1]>0) {
$tab_de_tab[$i][0]=$tab[0];
$tab_de_tab[$i][1]=$tab[1];
$i++;
}
}
fclose($fichier);
}
}
for ($j=0;$j<$i;$j++) {
if (($date-chop($tab_de_tab[$j][1]))>$time) {
//on ne fait rien
} else {
$tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0];
$tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]);
$ii++;
}
}
for ($j=0;$j<$ii;$j++) {
if ($tab_de_tab_actualise[$j][0]==$ip) {
$bool=1;
}
}
if($bool==0) {
$tab_de_tab_actualise[$ii][0]=$ip;
$tab_de_tab_actualise[$ii][1]=$date;
$ii++;
}
if($fichier=fopen($filename,« w »)) {
for($j=0;$j<$ii;$j++) {
fputs($fichier,chop($tab_de_tab_actualise[$j][0]));
fputs($fichier,"|");
fputs($fichier,chop($tab_de_tab_actualise[$j][1]));
fputs($fichier,"\n");
}
fclose($fichier);
}
return $ii;
}
function balise_NB_CONNECTES($p) {
$p->code = « vst_nb_visiteurs_connecte() »;
$p->statut = ‹ php ›;
return $p;
}

Oh oh, bizarre
je n’ai ce message que lorsque je suis connecté !
Vous ne le verrez donc pas mais le problème reste

Jean-Christophe Villeneuve a écrit :

Bonsoir,

Il faut regarder 3 choses:
1- les droits sur le fichier data.dat : 777
2- Si le safe mode est sur off
3- Si la directive allow_url_fopen est bien activée.

Bernard

Jean-Christophe Villeneuve a écrit :

Oh oh, bizarre
je n'ai ce message que lorsque je suis connecté !
Vous ne le verrez donc pas mais le problème reste

Jean-Christophe Villeneuve a écrit :

Bonsoir

Je viens de placer une noisette dans mon site, noisette qui s'inspire très largement du plugin Balises de comptage <http://www.spip-contrib.net/Plugin-pour-des-balises-de&gt;
Si le résultat des balises est correct, j'ai un message d'erreur juste avant avant l'affichage du bloc :

*Warning*: fopen(data.dat) [function.fopen <http://nout.crdp.ac-lyon.fr/escal/function.fopen&gt;\]: failed to open stream: Permission denied in */webdata/academie/escal/plugins/auto/escal/escal_fonctions.php* on line *107
*
Visible en ligne ici <http://nout.crdp.ac-lyon.fr/escal/&gt;

En effet ligne 107, j'ai bien
        if($fichier=fopen($filename,"w")) {

mais la ligne 75 qui contient
                if ($fichier=fopen($filename,"r")) {
ne provoque pas d'erreur

C'est donc le w (pour write je suppose) qui couine ?

Etant ignare en php, je me tourne vers vous.
Une idée de la solution ?

Ci-dessous l'ensemble de la fonction

// balise #NB_CONNECTES d'après Merckel Loic
function vst_nb_visiteurs_connecte() {
   $time=240;
   $filename="data.dat";
   // $time est le temps en seconde à partir duquel on considère que
   // le visiteur n'est plus connecté
   // $filename est le nom du fichier créé pour stocker les informations
   $ip = getenv("REMOTE_ADDR");
   $date=time();
   $i=0;
   $ii=0;
   $bool=0;
        if (file_exists($filename)) {
                if ($fichier=fopen($filename,"r")) {
                        while(!feof($fichier)) {
                                $ligne=fgets($fichier,4096);
                                $tab=explode("|",$ligne);
                                if ($tab[1]>0) {
                                        $tab_de_tab[$i][0]=$tab[0];
                                        $tab_de_tab[$i][1]=$tab[1];
                                        $i++;
                                }
                        }
                        fclose($fichier);
                }
        }
        for ($j=0;$j<$i;$j++) {
                if (($date-chop($tab_de_tab[$j][1]))>$time) {
                        //on ne fait rien
                } else {
                        $tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0];
                        $tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]);
                        $ii++;
                }
        }
        for ($j=0;$j<$ii;$j++) {
                if ($tab_de_tab_actualise[$j][0]==$ip) {
                        $bool=1;
                }
        }
        if($bool==0) {
                $tab_de_tab_actualise[$ii][0]=$ip;
                $tab_de_tab_actualise[$ii][1]=$date;
                $ii++;
        }
        if($fichier=fopen($filename,"w")) {
                for($j=0;$j<$ii;$j++) {
                        fputs($fichier,chop($tab_de_tab_actualise[$j][0]));
                        fputs($fichier,"|");
                        fputs($fichier,chop($tab_de_tab_actualise[$j][1]));
                        fputs($fichier,"\n");
                }
                fclose($fichier);
        }
        return $ii; }
function balise_NB_CONNECTES($p) {
    $p->code = "vst_nb_visiteurs_connecte()";
    $p->statut = 'php';
    return $p;
}

------------------------------------------------------------------------

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

------------------------------------------------------------------------

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com

Bernard Blazin a écrit :

Bonsoir,

Il faut regarder 3 choses:
1- les droits sur le fichier data.dat : 777
2- Si le safe mode est sur off
3- Si la directive allow_url_fopen est bien activée.

Bernard

merci mais je pige pas tout :
2- safe mode est bien à "off"
3- allow_url_fopen est bien à "on"
mais pas de fichier data.dat de créé

et pourtant, ça semble fonctionner

Jean-Christophe Villeneuve a écrit :

Oh oh, bizarre
je n'ai ce message que lorsque je suis connecté !
Vous ne le verrez donc pas mais le problème reste

Jean-Christophe Villeneuve a écrit :

Bonsoir

Je viens de placer une noisette dans mon site, noisette qui s'inspire très largement du plugin Balises de comptage <http://www.spip-contrib.net/Plugin-pour-des-balises-de&gt;
Si le résultat des balises est correct, j'ai un message d'erreur juste avant avant l'affichage du bloc :

*Warning*: fopen(data.dat) [function.fopen <http://nout.crdp.ac-lyon.fr/escal/function.fopen&gt;\]: failed to open stream: Permission denied in */webdata/academie/escal/plugins/auto/escal/escal_fonctions.php* on line *107
*
Visible en ligne ici <http://nout.crdp.ac-lyon.fr/escal/&gt;

En effet ligne 107, j'ai bien
        if($fichier=fopen($filename,"w")) {

mais la ligne 75 qui contient
                if ($fichier=fopen($filename,"r")) {
ne provoque pas d'erreur

C'est donc le w (pour write je suppose) qui couine ?

Etant ignare en php, je me tourne vers vous.
Une idée de la solution ?

Ci-dessous l'ensemble de la fonction

// balise #NB_CONNECTES d'après Merckel Loic
function vst_nb_visiteurs_connecte() {
   $time=240;
   $filename="data.dat";
   // $time est le temps en seconde à partir duquel on considère que
   // le visiteur n'est plus connecté
   // $filename est le nom du fichier créé pour stocker les informations
   $ip = getenv("REMOTE_ADDR");
   $date=time();
   $i=0;
   $ii=0;
   $bool=0;
        if (file_exists($filename)) {
                if ($fichier=fopen($filename,"r")) {
                        while(!feof($fichier)) {
                                $ligne=fgets($fichier,4096);
                                $tab=explode("|",$ligne);
                                if ($tab[1]>0) {
                                        $tab_de_tab[$i][0]=$tab[0];
                                        $tab_de_tab[$i][1]=$tab[1];
                                        $i++;
                                }
                        }
                        fclose($fichier);
                }
        }
        for ($j=0;$j<$i;$j++) {
                if (($date-chop($tab_de_tab[$j][1]))>$time) {
                        //on ne fait rien
                } else {
                        $tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0];
                        $tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]);
                        $ii++;
                }
        }
        for ($j=0;$j<$ii;$j++) {
                if ($tab_de_tab_actualise[$j][0]==$ip) {
                        $bool=1;
                }
        }
        if($bool==0) {
                $tab_de_tab_actualise[$ii][0]=$ip;
                $tab_de_tab_actualise[$ii][1]=$date;
                $ii++;
        }
        if($fichier=fopen($filename,"w")) {
                for($j=0;$j<$ii;$j++) {
                        fputs($fichier,chop($tab_de_tab_actualise[$j][0]));
                        fputs($fichier,"|");
                        fputs($fichier,chop($tab_de_tab_actualise[$j][1]));
                        fputs($fichier,"\n");
                }
                fclose($fichier);
        }
        return $ii; }
function balise_NB_CONNECTES($p) {
    $p->code = "vst_nb_visiteurs_connecte()";
    $p->statut = 'php';
    return $p;
}

------------------------------------------------------------------------

_______________________________________________

Jean-Christophe Villeneuve a écrit :

Bernard Blazin a écrit :

Bonsoir,

Il faut regarder 3 choses:
1- les droits sur le fichier data.dat : 777
2- Si le safe mode est sur off
3- Si la directive allow_url_fopen est bien activée.

Bernard

merci mais je pige pas tout :
2- safe mode est bien à "off"
3- allow_url_fopen est bien à "on"
mais pas de fichier data.dat de créé

et pourtant, ça semble fonctionner

c'est bon, je l'ai créé à la main et ça roule
merci !

Jean-Christophe Villeneuve a écrit :

Oh oh, bizarre
je n'ai ce message que lorsque je suis connecté !
Vous ne le verrez donc pas mais le problème reste

Jean-Christophe Villeneuve a écrit :

Bonsoir

Je viens de placer une noisette dans mon site, noisette qui s'inspire très largement du plugin Balises de comptage <http://www.spip-contrib.net/Plugin-pour-des-balises-de&gt;
Si le résultat des balises est correct, j'ai un message d'erreur juste avant avant l'affichage du bloc :

*Warning*: fopen(data.dat) [function.fopen <http://nout.crdp.ac-lyon.fr/escal/function.fopen&gt;\]: failed to open stream: Permission denied in */webdata/academie/escal/plugins/auto/escal/escal_fonctions.php* on line *107
*
Visible en ligne ici <http://nout.crdp.ac-lyon.fr/escal/&gt;

En effet ligne 107, j'ai bien
        if($fichier=fopen($filename,"w")) {

mais la ligne 75 qui contient
                if ($fichier=fopen($filename,"r")) {
ne provoque pas d'erreur

C'est donc le w (pour write je suppose) qui couine ?

Etant ignare en php, je me tourne vers vous.
Une idée de la solution ?

Ci-dessous l'ensemble de la fonction

// balise #NB_CONNECTES d'après Merckel Loic
function vst_nb_visiteurs_connecte() {
   $time=240;
   $filename="data.dat";
   // $time est le temps en seconde à partir duquel on considère que
   // le visiteur n'est plus connecté
   // $filename est le nom du fichier créé pour stocker les informations
   $ip = getenv("REMOTE_ADDR");
   $date=time();
   $i=0;
   $ii=0;
   $bool=0;
        if (file_exists($filename)) {
                if ($fichier=fopen($filename,"r")) {
                        while(!feof($fichier)) {
                                $ligne=fgets($fichier,4096);
                                $tab=explode("|",$ligne);
                                if ($tab[1]>0) {
                                        $tab_de_tab[$i][0]=$tab[0];
                                        $tab_de_tab[$i][1]=$tab[1];
                                        $i++;
                                }
                        }
                        fclose($fichier);
                }
        }
        for ($j=0;$j<$i;$j++) {
                if (($date-chop($tab_de_tab[$j][1]))>$time) {
                        //on ne fait rien
                } else {
                        $tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0];
                        $tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]);
                        $ii++;
                }
        }
        for ($j=0;$j<$ii;$j++) {
                if ($tab_de_tab_actualise[$j][0]==$ip) {
                        $bool=1;
                }
        }
        if($bool==0) {
                $tab_de_tab_actualise[$ii][0]=$ip;
                $tab_de_tab_actualise[$ii][1]=$date;
                $ii++;
        }
        if($fichier=fopen($filename,"w")) {
                for($j=0;$j<$ii;$j++) {
                        fputs($fichier,chop($tab_de_tab_actualise[$j][0]));
                        fputs($fichier,"|");
                        fputs($fichier,chop($tab_de_tab_actualise[$j][1]));
                        fputs($fichier,"\n");
                }
                fclose($fichier);
        }
        return $ii; }
function balise_NB_CONNECTES($p) {
    $p->code = "vst_nb_visiteurs_connecte()";
    $p->statut = 'php';
    return $p;
}

------------------------------------------------------------------------

_______________________________________________

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Jean-Christophe Villeneuve a écrit :

Jean-Christophe Villeneuve a écrit :

Bernard Blazin a écrit :

Bonsoir,

Il faut regarder 3 choses:
1- les droits sur le fichier data.dat : 777
2- Si le safe mode est sur off
3- Si la directive allow_url_fopen est bien activée.

Bernard

merci mais je pige pas tout :
2- safe mode est bien à "off"
3- allow_url_fopen est bien à "on"
mais pas de fichier data.dat de créé

et pourtant, ça semble fonctionner

c'est bon, je l'ai créé à la main et ça roule
merci !

enfin, c'est bon ... pas tout à fait
car j'aimerais qu'il se crée automatiquement
ou alors faire en sorte que ça fonctionne si ce fichier est dans un plugin ...
Une idée ?

Jean-Christophe Villeneuve a écrit :

Oh oh, bizarre
je n'ai ce message que lorsque je suis connecté !
Vous ne le verrez donc pas mais le problème reste

Jean-Christophe Villeneuve a écrit :

Bonsoir

Je viens de placer une noisette dans mon site, noisette qui s'inspire très largement du plugin Balises de comptage <http://www.spip-contrib.net/Plugin-pour-des-balises-de&gt;
Si le résultat des balises est correct, j'ai un message d'erreur juste avant avant l'affichage du bloc :

*Warning*: fopen(data.dat) [function.fopen <http://nout.crdp.ac-lyon.fr/escal/function.fopen&gt;\]: failed to open stream: Permission denied in */webdata/academie/escal/plugins/auto/escal/escal_fonctions.php* on line *107
*
Visible en ligne ici <http://nout.crdp.ac-lyon.fr/escal/&gt;

En effet ligne 107, j'ai bien
        if($fichier=fopen($filename,"w")) {

mais la ligne 75 qui contient
                if ($fichier=fopen($filename,"r")) {
ne provoque pas d'erreur

C'est donc le w (pour write je suppose) qui couine ?

Etant ignare en php, je me tourne vers vous.
Une idée de la solution ?

Ci-dessous l'ensemble de la fonction

// balise #NB_CONNECTES d'après Merckel Loic
function vst_nb_visiteurs_connecte() {
   $time=240;
   $filename="data.dat";
   // $time est le temps en seconde à partir duquel on considère que
   // le visiteur n'est plus connecté
   // $filename est le nom du fichier créé pour stocker les informations
   $ip = getenv("REMOTE_ADDR");
   $date=time();
   $i=0;
   $ii=0;
   $bool=0;
        if (file_exists($filename)) {
                if ($fichier=fopen($filename,"r")) {
                        while(!feof($fichier)) {
                                $ligne=fgets($fichier,4096);
                                $tab=explode("|",$ligne);
                                if ($tab[1]>0) {
                                        $tab_de_tab[$i][0]=$tab[0];
                                        $tab_de_tab[$i][1]=$tab[1];
                                        $i++;
                                }
                        }
                        fclose($fichier);
                }
        }
        for ($j=0;$j<$i;$j++) {
                if (($date-chop($tab_de_tab[$j][1]))>$time) {
                        //on ne fait rien
                } else {
                        $tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0];
                        $tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]);
                        $ii++;
                }
        }
        for ($j=0;$j<$ii;$j++) {
                if ($tab_de_tab_actualise[$j][0]==$ip) {
                        $bool=1;
                }
        }
        if($bool==0) {
                $tab_de_tab_actualise[$ii][0]=$ip;
                $tab_de_tab_actualise[$ii][1]=$date;
                $ii++;
        }
        if($fichier=fopen($filename,"w")) {
                for($j=0;$j<$ii;$j++) {
                        fputs($fichier,chop($tab_de_tab_actualise[$j][0]));
                        fputs($fichier,"|");
                        fputs($fichier,chop($tab_de_tab_actualise[$j][1]));
                        fputs($fichier,"\n");
                }
                fclose($fichier);
        }
        return $ii; }
function balise_NB_CONNECTES($p) {
    $p->code = "vst_nb_visiteurs_connecte()";
    $p->statut = 'php';
    return $p;
}

Jean-Christophe Villeneuve a écrit :

Jean-Christophe Villeneuve a écrit :

Jean-Christophe Villeneuve a écrit :

Bernard Blazin a écrit :

Bonsoir,

Il faut regarder 3 choses:
1- les droits sur le fichier data.dat : 777
2- Si le safe mode est sur off
3- Si la directive allow_url_fopen est bien activée.

Bernard

merci mais je pige pas tout :
2- safe mode est bien à "off"
3- allow_url_fopen est bien à "on"
mais pas de fichier data.dat de créé

et pourtant, ça semble fonctionner

c'est bon, je l'ai créé à la main et ça roule
merci !

enfin, c'est bon ... pas tout à fait
car j'aimerais qu'il se crée automatiquement
ou alors faire en sorte que ça fonctionne si ce fichier est dans un plugin ...
Une idée ?

J'ai oublié de préciser : le fichier se crée automatiquement en local mais pas en ligne

Jean-Christophe Villeneuve a écrit :

Oh oh, bizarre
je n'ai ce message que lorsque je suis connecté !
Vous ne le verrez donc pas mais le problème reste

Jean-Christophe Villeneuve a écrit :

Bonsoir

Je viens de placer une noisette dans mon site, noisette qui s'inspire très largement du plugin Balises de comptage <http://www.spip-contrib.net/Plugin-pour-des-balises-de&gt;
Si le résultat des balises est correct, j'ai un message d'erreur juste avant avant l'affichage du bloc :

*Warning*: fopen(data.dat) [function.fopen <http://nout.crdp.ac-lyon.fr/escal/function.fopen&gt;\]: failed to open stream: Permission denied in */webdata/academie/escal/plugins/auto/escal/escal_fonctions.php* on line *107
*
Visible en ligne ici <http://nout.crdp.ac-lyon.fr/escal/&gt;

En effet ligne 107, j'ai bien
        if($fichier=fopen($filename,"w")) {

mais la ligne 75 qui contient
                if ($fichier=fopen($filename,"r")) {
ne provoque pas d'erreur

C'est donc le w (pour write je suppose) qui couine ?

Etant ignare en php, je me tourne vers vous.
Une idée de la solution ?

Ci-dessous l'ensemble de la fonction

// balise #NB_CONNECTES d'après Merckel Loic
function vst_nb_visiteurs_connecte() {
   $time=240;
   $filename="data.dat";
   // $time est le temps en seconde à partir duquel on considère que
   // le visiteur n'est plus connecté
   // $filename est le nom du fichier créé pour stocker les informations
   $ip = getenv("REMOTE_ADDR");
   $date=time();
   $i=0;
   $ii=0;
   $bool=0;
        if (file_exists($filename)) {
                if ($fichier=fopen($filename,"r")) {
                        while(!feof($fichier)) {
                                $ligne=fgets($fichier,4096);
                                $tab=explode("|",$ligne);
                                if ($tab[1]>0) {
                                        $tab_de_tab[$i][0]=$tab[0];
                                        $tab_de_tab[$i][1]=$tab[1];
                                        $i++;
                                }
                        }
                        fclose($fichier);
                }
        }
        for ($j=0;$j<$i;$j++) {
                if (($date-chop($tab_de_tab[$j][1]))>$time) {
                        //on ne fait rien
                } else {
                        $tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0];
                        $tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]);
                        $ii++;
                }
        }
        for ($j=0;$j<$ii;$j++) {
                if ($tab_de_tab_actualise[$j][0]==$ip) {
                        $bool=1;
                }
        }
        if($bool==0) {
                $tab_de_tab_actualise[$ii][0]=$ip;
                $tab_de_tab_actualise[$ii][1]=$date;
                $ii++;
        }
        if($fichier=fopen($filename,"w")) {
                for($j=0;$j<$ii;$j++) {
                        fputs($fichier,chop($tab_de_tab_actualise[$j][0]));
                        fputs($fichier,"|");
                        fputs($fichier,chop($tab_de_tab_actualise[$j][1]));
                        fputs($fichier,"\n");
                }
                fclose($fichier);
        }
        return $ii; }
function balise_NB_CONNECTES($p) {
    $p->code = "vst_nb_visiteurs_connecte()";
    $p->statut = 'php';
    return $p;
}

Bonjour,

Les droits attribués au fichier sont intéressants pour son utilisation courante. Ceci dit, quand le fichier n'existe pas, c'est aux droits du répertoire ou il doit être créé qu'il faut s'intéresser. Sur une machine sous linux/unix, comme cela semble être le cas pour ton serveur en ligne, il te faudra avoir le flag "x" ( exécuter ) sur le répertoire parent.
Dans un premier temps, tu peux brutalement passer le tout à 777, mais si tu peux, autant affiner le tout après ( à minima sur le dernier octet ).

Vincent a écrit :

Bonjour,

Les droits attribués au fichier sont intéressants pour son utilisation courante. Ceci dit, quand le fichier n’existe pas, c’est aux droits du répertoire ou il doit être créé qu’il faut s’intéresser. Sur une machine sous linux/unix, comme cela semble être le cas pour ton serveur en ligne, il te faudra avoir le flag « x » ( exécuter ) sur le répertoire parent.
Dans un premier temps, tu peux brutalement passer le tout à 777, mais si tu peux, autant affiner le tout après ( à minima sur le dernier octet ).

Malheureusement, je n’ai pas la main sur le dossier racine de mon site.
Je vais voir avec l’admin du serveur.

Sinon, j’ai aussi essayé d’intégrer le code du plugin « Nombre de visiteurs connectés » mais ça dépasse mes compétences.
Si quelqu’un peut m’aider …

Malheureusement, je n’ai pas la main sur le dossier racine de mon site.
Je vais voir avec l’admin du serveur.

Beuh, le fichier « data.dat » se créé à la racine du site ? J’aurais pensé qu’il se créerait à la racine du plugin …
Damned !

Sinon, j’ai aussi essayé d’intégrer le code du plugin « Nombre de visiteurs connectés » mais ça dépasse mes compétences.
Si quelqu’un peut m’aider …

Ben ce plugin semble aussi simple que redoutablement efficace : il se contente de créer un filtre « visiteurs_connectes_compter ».
Ce filtre qui n’en est pas un compte les fichiers dans le répertoire « tmp/visites/ », ce qui doit correspondre aux session spip, et revoie la valeur trouvée:
function visiteurs_connectes_compter(){
return count(preg_files(_DIR_TMP.‹ visites/ ›,‹ . ›));
}

Du coup, en l’appliquant sur la balise rem ( comme dans la noisette proposée ), on peut afficher le nombre de visiteurs connectés.
L’avantage de passer par la noisette, c’est d’avoir une gestion du cache indépendante :
#CACHE{60}
[

(#REM|sinon{visiteurs_en_ce_moment}|_T{#ARRAY{nb,#REM|visiteurs_connectes_compter}})

]

Voila comment il semble fonctionner. D’ailleurs, un grand merci pour m’avoir fait découvrir ce petit plugin bien sympathique: je pense que je vais repiquer l’idée dans l’un de mes petits projets …

Hum, rectification, ce répertoire ne contient pas les sessions ... A creuser donc :slight_smile:
Ceci dit, le plugin compte bel et bien ces fichiers, il va vraiment falloir que je creuse ca !
Sinon, l'auteur le dit sur la page d'aide : pour faire fonctionner le plugin, il suffit de :
1) l'activer
2) appeller la ou tu veux la noisette : <INCLURE{fond=inc-visiteurs}>

Rien de plus !

Vincent a écrit :

Hum, rectification, ce répertoire ne contient pas les sessions ... A creuser donc :slight_smile:
Ceci dit, le plugin compte bel et bien ces fichiers, il va vraiment falloir que je creuse ca !
Sinon, l'auteur le dit sur la page d'aide : pour faire fonctionner le plugin, il suffit de :
1) l'activer
2) appeller la ou tu veux la noisette : <INCLURE{fond=inc-visiteurs}>

Rien de plus !
_______________________________________________

voui voui mais j'aimerais l'intégrer à mon plugin-squelette pour que ça fonctionne sans activer un autre plugin.
Si tu es intéressé par ça, il y a aussi la lame du couteau suisse qui reprend ce code

voui voui mais j'aimerais l'intégrer à mon plugin-squelette pour que ça fonctionne sans activer un autre plugin.

Hum, ben dans ce cas, il te faudra recopier la fonction :
function visiteurs_connectes_compter(){
return count(preg_files(_DIR_TMP.'visites/','.'));
}
Dans le "mes_fonctions" de ton plugin. Tu pourras ensuite l'appeler selon la même méthode.
Autre possibilité, tu recopie également la noisette et tu l'appelle avec un inclure.

Si tu es intéressé par ça, il y a aussi la lame du couteau suisse qui reprend ce code

Hum, j'y ai pas encore regardé, mais j'ai vu ca sur la page d'aide en effet.
J'irai certainement y jeter un petit coup d'œil !

Vincent a écrit :

voui voui mais j'aimerais l'intégrer à mon plugin-squelette pour que ça fonctionne sans activer un autre plugin.

Hum, ben dans ce cas, il te faudra recopier la fonction :
function visiteurs_connectes_compter(){
return count(preg_files(_DIR_TMP.'visites/','.'));
}
Dans le "mes_fonctions" de ton plugin. Tu pourras ensuite l'appeler selon la même méthode.
Autre possibilité, tu recopie également la noisette et tu l'appelle avec un inclure.

et c'est bien là mon souci.

Dans escal_fonctions.php, j'ai rajouté :

function visiteurs_connectes_compter(){
return count(preg_files(_DIR_TMP.'visites/','.'));
}

Dans ma noisette, j'ai rajouté :

[<p class='visiteurs_connectes'>(#REM|sinon{visiteur(s)_en_ce_moment}|_T{#ARRAY{nb,#REM|visiteurs_connectes_compter}})</p>]

Résultat :

      visiteur(s) en ce moment

et c'est bien là mon souci.

Dans escal_fonctions.php, j'ai rajouté :

function visiteurs_connectes_compter(){
return count(preg_files(_DIR_TMP.'visites/','.'));
}

Dans ma noisette, j'ai rajouté :

[<p class='visiteurs_connectes'>(#REM|sinon{visiteur(s)_en_ce_moment}|_T{#ARRAY{nb,#REM|visiteurs_connectes_compter}})</p>]

Résultat :

     visiteur(s) en ce moment

Hum, en faisant un simple :
[<p class='visiteurs_connectes'>visiteur(s) en ce moment: (#VAL{}|visiteurs_connectes_compter)</p>]
Tu obtiens quoi ?
Pour ma part, ca compte bien les fichiers en question. Ceci dit, même avec deux comptes logués sur le site ( en local, mais depuis deux machines distinctes ), j'ai un seul fichier dans le répertoire...
"visiteur(s) en ce moment: 1"

Vincent a écrit :

et c'est bien là mon souci.

Dans escal_fonctions.php, j'ai rajouté :

function visiteurs_connectes_compter(){
return count(preg_files(_DIR_TMP.'visites/','.'));
}

Dans ma noisette, j'ai rajouté :

[<p class='visiteurs_connectes'>(#REM|sinon{visiteur(s)_en_ce_moment}|_T{#ARRAY{nb,#REM|visiteurs_connectes_compter}})</p>]

Résultat :

     visiteur(s) en ce moment

Hum, en faisant un simple :
[<p class='visiteurs_connectes'>visiteur(s) en ce moment: (#VAL{}|visiteurs_connectes_compter)</p>]
Tu obtiens quoi ?
Pour ma part, ca compte bien les fichiers en question. Ceci dit, même avec deux comptes logués sur le site ( en local, mais depuis deux machines distinctes ), j'ai un seul fichier dans le répertoire...
"visiteur(s) en ce moment: 1"

tip top !
Merci beaucoup !