[spip-dev] grosses modifs sur la CVS

Coucou,

j'ai fait énormément de modifs sur la CVS et bien que j'aie testé pas mal,
j'en ai sûrement oublié ; donc allez-y doucement avant de tester en "live".
Surtout que je vais faire une petite pause maintenant :slight_smile:

Les infos sont en bas du fichier TODO.txt
http://www.spip.net/spip-cvs/spip_doc/TODO.txt

-- Fil

Fil a écrit :

j'ai fait énormément de modifs sur la CVS et bien que j'aie testé pas mal,
j'en ai sûrement oublié ; donc allez-y doucement avant de tester en "live".
Surtout que je vais faire une petite pause maintenant :slight_smile:

Les infos sont en bas du fichier TODO.txt
http://www.spip.net/spip-cvs/spip_doc/TODO.txt

Hello,

Voici ce que j'obtient en l'installant:

Warning: Failed opening 'ecrire/inc_invalideur.php3' for inclusion (include_path='.:/usr/share/pear') in /home/schreuer/www/francois.schreuer.org/spip/ecrire/inc_version.php3 on line 365

François

Fil wrote:

Coucou,

j'ai fait énormément de modifs sur la CVS et bien que j'aie testé pas mal,
j'en ai sûrement oublié ; donc allez-y doucement avant de tester en "live".
Surtout que je vais faire une petite pause maintenant :slight_smile:

Les infos sont en bas du fichier TODO.txt
http://www.spip.net/spip-cvs/spip_doc/TODO.txt

-- Fil

J'ai un mot-clé dont le texte comporte un raccourci [voir->article5], et que j'affiche en page sommaire par #TEXTE. Je viens de voir que le raccourci n'est plus interprété (mais je ne sais pas si ça date de ces modifs ou si c'était antérieur), et le lien pointe vers article5 au lieu de article.php3?id_article=5 (j'utilise les url standards).

Cordialement

Yves Grenier

Fil wrote:

Coucou,

j'ai fait énormément de modifs sur la CVS et bien que j'aie testé pas mal,
j'en ai sûrement oublié ; donc allez-y doucement avant de tester en "live".
Surtout que je vais faire une petite pause maintenant :slight_smile:

Les infos sont en bas du fichier TODO.txt
http://www.spip.net/spip-cvs/spip_doc/TODO.txt

-- Fil

Dans une page d'affichage des résultats de recherche, appelée par recherche.php3?recherche=toto, j'ai l'instruction php: echo($recherche); qui n'affiche plus le mot. Cette disparition est récente. Cela fonctionnait hier.

Cordialement

Yves Grenier

Fil wrote:

Coucou,

j'ai fait énormément de modifs sur la CVS et bien que j'aie testé pas mal,
j'en ai sûrement oublié ; donc allez-y doucement avant de tester en "live".
Surtout que je vais faire une petite pause maintenant :slight_smile:

Les infos sont en bas du fichier TODO.txt
http://www.spip.net/spip-cvs/spip_doc/TODO.txt

-- Fil

Bonjour,

Je teste en local le squelette http://www.transactiv-exe.org/adresse.html, qui fonctionne en deux passes, la première propose un formulaire de saisie <form> et la deuxième exploite la saisie et propose le résultat.

Ce qui va mieux sur ce squelette: quand je recharge la page, le mot de passe proposé change bien, ce qui n'était plus le cas ces derniers jours.

Ce qui va moins bien: en cliquant sur le bouton submit, je déclenche la recharge de la page en passe 1, au lieu d'être en passe 2, comme si les arguments passés en POST étaient perdus.

Cordialement

Yves Grenier

J'ai un mot-clé dont le texte comporte un raccourci [voir->article5], et
que j'affiche en page sommaire par #TEXTE. Je viens de voir que le
raccourci n'est plus interprété (mais je ne sais pas si ça date de ces
modifs ou si c'était antérieur), et le lien pointe vers article5 au lieu
de article.php3?id_article=5 (j'utilise les url standards).

Corrigé.

Dans une page d'affichage des résultats de recherche, appelée par
recherche.php3?recherche=toto, j'ai l'instruction php: echo($recherche);
qui n'affiche plus le mot. Cette disparition est récente. Cela
fonctionnait hier.

Ca devrait être corrigé aussi ; mais attention tu devrais faire
        echo htmlspecialchars($recherche)
si tu veux éviter les blagues du genre XSS (une URL contenant
?recherche=<script>truc rigolo en javascript</script> )

Ce qui va moins bien: en cliquant sur le bouton submit, je déclenche la
recharge de la page en passe 1, au lieu d'être en passe 2, comme si les
arguments passés en POST étaient perdus.

Idem, je pense, à vérifier.

Mon erreur était que je faisais l'eval($page) à l'intérieur d'une fonction ;
la page calculée et évaluée n'avait donc pas accès aux globales.

-- Fil

Fil wrote:

Dans une page d'affichage des résultats de recherche, appelée par
recherche.php3?recherche=toto, j'ai l'instruction php:
echo($recherche); qui n'affiche plus le mot. Cette disparition est
récente. Cela fonctionnait hier.

Ca devrait être corrigé aussi ; mais attention tu devrais faire
        echo htmlspecialchars($recherche)
si tu veux éviter les blagues du genre XSS (une URL contenant
?recherche=<script>truc rigolo en javascript</script> )

De mon côté, je fais :
<input name='recherche' type='text' id='formulaire_recherche'
style="width:70%;" value="#RECHERCHE" />

Ça me parait plus propre...

Jacques - www.pyrat.net

Fil wrote:

J'ai un mot-clé dont le texte comporte un raccourci [voir->article5], et que j'affiche en page sommaire par #TEXTE. Je viens de voir que le raccourci n'est plus interprété (mais je ne sais pas si ça date de ces modifs ou si c'était antérieur), et le lien pointe vers article5 au lieu de article.php3?id_article=5 (j'utilise les url standards).
   
Corrigé.

En effet!

Dans une page d'affichage des résultats de recherche, appelée par recherche.php3?recherche=toto, j'ai l'instruction php: echo($recherche); qui n'affiche plus le mot. Cette disparition est récente. Cela fonctionnait hier.
   
Ca devrait être corrigé aussi ; mais attention tu devrais faire
       echo htmlspecialchars($recherche)
si tu veux éviter les blagues du genre XSS (une URL contenant
?recherche=<script>truc rigolo en javascript</script> )

C'est corrigé en effet! Merci du conseil. Je modifie tout de suite mon squelette.

Ce qui va moins bien: en cliquant sur le bouton submit, je déclenche la recharge de la page en passe 1, au lieu d'être en passe 2, comme si les arguments passés en POST étaient perdus.
   
Idem, je pense, à vérifier.

Mon erreur était que je faisais l'eval($page) à l'intérieur d'une fonction ;
la page calculée et évaluée n'avait donc pas accès aux globales.

-- Fil

Ce qui est corrigé: le submit lance bien la passe 2. Par contre l'argument id_forum que je renvoie en "hidden" dans le formulaire n'est pas reçu. La boucle <BOUCLE_forum_principal(FORUMS){id_forum}> qui commence mon squelette ne trouve rien. Je peux remettre la variable dans le paramètre "action" du <form>, par exemple action="adresse.php3?id_forum=ZZZ" au lieu de simplement action="adresse.php3", mais dans la 1.7.2 cela n'était pas nécessaire. Emmanuel m'avait conseillé une modif: "Pour lever l'ambiguité entre les deux origines de pb, tu peux déjà remplacer dans inc-public.php3 la ligne 68:
  $contexte = $GLOBALS['HTTP_GET_VARS'];
par
  $contexte = array_merge($GLOBALS['HTTP_GET_VARS'] , $GLOBALS['HTTP_POST_VARS']);"
mais depuis le inc-public.php3 a changé. Peut-être dans calculer_contexte de inc-calcul.php3?

Cordialement

Yves Grenier

deux origines de pb, tu peux déjà remplacer dans inc-public.php3 la
ligne 68:
$contexte = $GLOBALS['HTTP_GET_VARS'];
par
$contexte = array_merge($GLOBALS['HTTP_GET_VARS'] ,
$GLOBALS['HTTP_POST_VARS']);"
mais depuis le inc-public.php3 a changé. Peut-être dans
calculer_contexte de inc-calcul.php3?

En effet il y a une erreur :

// Etablit le contexte initial a partir des globales
function calculer_contexte() {
        foreach($GLOBALS['HTTP_GET_VARS'] as $var => $val) {
                if (!eregi("^(recalcul|submit|var_.*)$", $var))
                        $contexte[$var] = $val;

Normalement on doit traiter les globales dans inc_version.php3, et on ne
devrait plus du tout s'intéresser à HTTP_GET_VARS par la suite, nulle part
dans le code (HTTP_POST/COOKIE_VARS non plus, d'ailleurs).

En attendant la grosse modif, tu peux ajouter
        foreach($GLOBALS['HTTP_POST_VARS'] as $var => $val) {
                if (!eregi("^(recalcul|submit|var_.*)$", $var))
                        $contexte[$var] = $val;
        }

à ligne juste en-dessous (j'ai testé).

-- Fil

Fil wrote:

En attendant la grosse modif, tu peux ajouter
        foreach($GLOBALS['HTTP_POST_VARS'] as $var => $val) {
                if (!eregi("^(recalcul|submit|var_.*)$", $var))
                        $contexte[$var] = $val;
        }

à ligne juste en-dessous (j'ai testé).

-- Fil

Ca marche!
Yves Grenier

Salut,
je commence mes tests avec la version CVS (de ce midi), premier retour :
- Dans ecrire/config-fonctions.php3 je ne peux pas choisir mon mode GD1 /GD2
pour la generation des vignettes (les images n'apparaissent pas et je ne
peux plus désactiver la generation d'image une fois l'option selectionnée)

- Dans ecrire/config-fonctions.php3 toujours, j'ai un bloc mysterieux au
dessus du proxy (je pense que c'est le versionning, y a pas les labels ...)

La récuperation d'un fichier du repertoire upload plante :
Fatal error: Cannot redeclare creer_repertoire() (previously declared in
E:\adequates\siteweb\spipcvs\spip_image.php3:14) in
E:\adequates\siteweb\spipcvs\inc-cache.php3 on line 137

Sinon, sur le squelette rubrique-dist, j'ai le menu des rubriques qui me
double la rubrique en cours, je dirais que c'est le critere exclus qui n'est
pas geré mais je ne suis pas sur du comportement "normal".

J'ai egalement parfois de grosses lenteurs dans l'espace privé, genre 20
secondes sans que rien ne se passe (UC 0%) puis la page arrive (je teste en
local) ... je ne sais pas trop d'ou ca peut venir, ni ce que je peux faire
pour identifier un peu mieux le probleme, je n'ai pas de trace dans spip.log
pour l'espace privé.

C'est tout ce que j'ai vu pour le moment, sinon, tout a l'air de tourner
nickel sur mon 2000server/MySQL4.0.18/PHP4.3.4
testé avec IE6, Netscape 6.1, Mozilla 1.6 (à part netscape qui est "un peu
moins beau", la nouvelle interface passe tres bien, bravo !!!)

@++

@ Stephane LAURENT <sl@adequates.com> :

Salut,
je commence mes tests avec la version CVS (de ce midi), premier retour :
- Dans ecrire/config-fonctions.php3 je ne peux pas choisir mon mode GD1 /GD2
pour la generation des vignettes (les images n'apparaissent pas et je ne
peux plus désactiver la generation d'image une fois l'option selectionnée)

C'est lié au bug 3 de ta liste, ça devrait donc être corrigé

- Dans ecrire/config-fonctions.php3 toujours, j'ai un bloc mysterieux au
dessus du proxy (je pense que c'est le versionning, y a pas les labels ...)

En effet !

La récuperation d'un fichier du repertoire upload plante :
Fatal error: Cannot redeclare creer_repertoire() (previously declared in
E:\adequates\siteweb\spipcvs\spip_image.php3:14) in
E:\adequates\siteweb\spipcvs\inc-cache.php3 on line 137

Corrigé

Sinon, sur le squelette rubrique-dist, j'ai le menu des rubriques qui me
double la rubrique en cours, je dirais que c'est le critere exclus qui n'est
pas geré mais je ne suis pas sur du comportement "normal".

{exclus} semble fonctionner, chez moi en tous cas.

J'ai egalement parfois de grosses lenteurs dans l'espace privé, genre 20
secondes sans que rien ne se passe (UC 0%) puis la page arrive (je teste en
local) ... je ne sais pas trop d'ou ca peut venir, ni ce que je peux faire
pour identifier un peu mieux le probleme, je n'ai pas de trace dans spip.log
pour l'espace privé.

Une fois par jour, c'est l'"optimisation", un peu pénible. Est-ce que ça se
reproduit souvent ?

-- Fil

> je commence mes tests avec la version CVS (de ce midi), premier retour :
> - Dans ecrire/config-fonctions.php3 je ne peux pas choisir mon mode GD1

/GD2

> pour la generation des vignettes (les images n'apparaissent pas et je ne
> peux plus désactiver la generation d'image une fois l'option

selectionnée)

C'est lié au bug 3 de ta liste, ça devrait donc être corrigé

Nickel, ca marche

> - Dans ecrire/config-fonctions.php3 toujours, j'ai un bloc mysterieux au
> dessus du proxy (je pense que c'est le versionning, y a pas les labels

...)

En effet !

Réparé aussi (avec un diff et tout et tout ? je m'en vais tester ca
d'urgence !)

> La récuperation d'un fichier du repertoire upload plante :
> Fatal error: Cannot redeclare creer_repertoire() (previously declared in
> E:\adequates\siteweb\spipcvs\spip_image.php3:14) in
> E:\adequates\siteweb\spipcvs\inc-cache.php3 on line 137

Corrigé

OK

> Sinon, sur le squelette rubrique-dist, j'ai le menu des rubriques qui me
> double la rubrique en cours, je dirais que c'est le critere exclus qui

n'est

> pas geré mais je ne suis pas sur du comportement "normal".

{exclus} semble fonctionner, chez moi en tous cas.

Ben ca remarche ... je vous jure, j'avais rien bu, et y avait bien ma
rubrique en double dans le menu à gauche !
En tous cas, c'est bon maintenant.

> J'ai egalement parfois de grosses lenteurs dans l'espace privé, genre 20
> secondes sans que rien ne se passe (UC 0%) puis la page arrive (je teste

en

> local) ... je ne sais pas trop d'ou ca peut venir, ni ce que je peux

faire

> pour identifier un peu mieux le probleme, je n'ai pas de trace dans

spip.log

> pour l'espace privé.

Une fois par jour, c'est l'"optimisation", un peu pénible. Est-ce que ça

se

reproduit souvent ?

Possible que ca soit ca, j'ai fait 5 ou 6 installations, donc je l'ai eu
plusieurs fois, mais ca n'est pas lié à une page de toutes facons.
Ca peut venir egalement de l'envoi de mail qui serait alors un probleme de
config chez moi (le compte se bloqie lors d'un accès pop).

Elle fait quoi l'"optimisation" au juste ?

@++

Salut,
je sais que la gestion du cache pose probleme avec les rewritesrules mais
independament de l'endroit ou cette fonction doit etre appelée, certains
points m'interpelent :
la fonction generer_nom_fichier_cache est appelée 2 fois : 1 fois sans
contexte, une fois avec contexte ET $fond, mais $fond est également passé
dans le contexte.
Ca fait penser à une fonction qui voudrait faire 2 choses differentes ...
en general, il vaut mieux dans ce genre de cas avoir 2 fonctions et
regrouper le tronc commun dans une 3eme fonction, appelée par les 2
premieres ou s'arranger pour avoir le meme type d'appel (ici, ca serait
supprimmer $fond de l'appel et le faire passer systematiquement dans le
contexte).
Ca, c'est du detail, mais bon, tant qu'on a les mains dedans ....

Beaucoup plus genant à mon avis :
// Cas des POST sur une meme adresse : ne pas melanger (desuet?)

if (!empty($HTTP_POST_VARS)) $fichier_cache .= '.'.@getmypid();

$fichier_cache .= '.'.substr($md_cache, 1, 8);

La, je ne suis pas sur de bien comprendre, mais en gros, si il y a des
variables en POST, on essaye de faire un cache non réutilisé, c'est bien ca
?

Le probleme, c'est que getmypid n'est pas unique.

Si le but est de faire un cache (pour rentrer dans le fonctionnement normal)
qui ne doit jamais etre repris, la methode ne me semble pas très sure et il
se pourrait qu'un cache ressorte (le numero de processus etant réattribué)
la ou il ne devrait pas.

Quel est le probleme à utiliser le meme systeme que pour les variables du
contexte, du genre (non testé) :

foreach ($HTTP_POST_VARS as $var=>$val) $chaine_post.='&'.$var.'='.$val;

$md_post = md5($chaine_post);

$fichier_cache .= '.'.substr($md_post, 1, 8);

(quoi que je ne sois pas sur que ce sous ensemble du MD5 non garantisse bien
la correspondance avec le contenu du POST ...)

J'ai raté un episode et je suis à coté de la plaque ou est-ce que ce que je
raconte n'est totalement idiot ?

@++