[spip-dev] Gros problème de cache avec la version 1.3 de spip

Bonjour,
j’ai un problème avec spip 1.3
Ce message apparait au bas des pages :

Warning: stat failed for CACHE/.index (errno=2 - No such file or directory) in /vhosts/iziplanet.com/htdocs/inc-public.php3 on line 188

Merci de m’aider

Salut,

Bon, ce n'est pas un gros bug, juste un petit avertissement
intempestif. On va corriger ça rapidement :wink: Si ça ne peut pas
attendre, tu peux aller en ligne 188 du fichier inc-public.php3
et rajouter un caractère "@" devant "filesize" (ça donne donc
"(...) $size = @filesize (...)").

Amicalement

Antoine.

En réponse à IziTop <webmaster@izitop.com>:

Hello,

tu peux aller en ligne 188 du fichier inc-public.php3 et rajouter un
caractère "@" devant "filesize" (ça donne donc "(...) $size =
@filesize (...)").

Je considère que multiplier les '@' dans le code cache les erreurs
potentielles, ce qui nuit aux corrections de bugs, donc il faudrait
plutôt remplacer

if ($use_cache AND $size = filesize($fichier_index)) {

par

if ($use_cache AND file_exists($fichier_index) AND $size = filesize($fichier_index)) {

M'enfin, ce n'est que mon avis de puriste, hein, vous devez être
habitués maintenant ... :wink:

Nicolas.

Non je suis à peu près d'accord (quoique dans certains cas MySQL
soit chiant et oblige à rajouter un @ pour éviter les erreurs
sur les résultats vides), mais là c'était pour donner une solution
rapide à quelqu'un en attendant de faire la correction propre
dans le code (oh l'excuse :-)).

ciao

Antoine.

Nicolas Hoizey wrote:

Nicolas Hoizey wrote:

if ($use_cache AND file_exists($fichier_index) AND $size = filesize($fichier_index)) {

Voilà c'est fait dans la PR1.

a+

Antoine.

if ($use_cache AND file_exists($fichier_index) AND $size = filesize($fichier_index)) {

Voilà c'est fait dans la PR1.

Farpait !!! :slight_smile:

Salut,

J'ai rajouté une affreuse bidouille dans inc_version pour contrer
les problèmes avec register_globals réglé à Off. Il y avait notamment
un truc que j'ignorais pour les uploads de fichier sous PHP4
($HTTP_POST_FILES).

a+

Antoine.

(voici la bidouille)

//
// Dirty hack contre le register_globals à 'Off' (PHP 4.1.x)
// A remplacer par une gestion propre des variables admissibles :wink:
//

function feed_globals($table) {
    if (is_array($GLOBALS[$table])) {
            reset($GLOBALS[$table]);
            while (list($key, $val) = each($GLOBALS[$table])) {
                    $GLOBALS[$key] = $val;
            }
    }
}

feed_globals('HTTP_GET_VARS');
feed_globals('HTTP_POST_VARS');
feed_globals('HTTP_COOKIE_VARS');
feed_globals('HTTP_SERVER_VARS');

//
// Avec register_globals a Off sous PHP4, il faut utiliser
// la nouvelle variable HTTP_POST_FILES pour les fichiers uploades
// (pas valable sous PHP3...)
//

if (is_array($HTTP_POST_FILES)) {
        reset($HTTP_POST_FILES);
        while (list($key, $val) = each($HTTP_POST_FILES)) {
                $GLOBALS[$key] = $val['tmp_name'];
        }
}

feed_globals('HTTP_GET_VARS');
feed_globals('HTTP_POST_VARS');
feed_globals('HTTP_COOKIE_VARS');
feed_globals('HTTP_SERVER_VARS');

Tant qu'à faire, autant utiliser les nouvelles variables si on est en
PHP >= 4.1, cf cet extrait de la note de release
PHP >(http://www.php.net/release_4_1_0.php) :

----------8<--------------------------------------------------------
$_GET contains form variables sent through GET
$_POST contains form variables sent through POST
$_COOKIE contains HTTP cookie variables
$_SERVER contains server variables (e.g., REMOTE_ADDR)
$_ENV contains the environment variables
$_REQUEST a merge of the GET variables, POST variables and Cookie
           variables. In other words - all the information that is
           coming from the user, and that from a security point of
           view, cannot be trusted.
$_SESSION contains HTTP variables registered by the session module
----------8<--------------------------------------------------------

Nicolas.

Oui, mais ça va commencer à faire bcp de cas différents à gérer (puisqu'il
reste toujours PHP3 et 4.0).

Oui, mais ça va commencer à faire bcp de cas différents à gérer
(puisqu'il reste toujours PHP3 et 4.0).

En effet, mais autant les gérer dès maintenant, puisque les autres
disparaîtront un jour ...

De toute façon, je sais bien que ta bidouille est temporaire et
n'enlève aucune faille de sécurité. Il faudra faire de plus amples
vérifications des données entrant dans SPIP.

Nicolas.

Il y a encore deux cas qui posent encore problème avec Register_Globals=off :

- Placer un cookie ne fonctionne plus
- les boutons supplémentaires lors de la demande d'une interface complète ne s'affichent plus

Test fait avec PHP-4.1.1 et la toute dernière version PR1 de SPIP que j'ai téléchargée ce soir vers 1h30

Hmmm... je réponds à moi-même. Aucune réaction! Serais-je le seul à avoir le problème?

> - Placer un cookie ne fonctionne plus

Ce sera corrigé bientôt :wink:

> - les boutons supplémentaires lors de la demande d'une interface
> complète ne s'affichent plus

Idem !

a+

Antoine.