RealET
Septembre 14, 2009, 2:55
1
Bonjour,
J'essaye de faire ceci :
[(#EVAL {extraire_tag_from_url("http://www.uneurlsurinternet/","/.*(<form.*>)(.*)(<\/form>).*/U","$1 <div>$2</div>$3")})]
Et le code généré vu par var_mode debug est :
// #EVAL
22 interdire_scripts((extraire_tag_from_url("http://www.uneurlsurinternet/","/.*(<form.*>).*/U ")) .
23
24 // 1 signes
25 '
26 ');
Alors que
[(#EVAL {extraire_tag_from_url("http://www.uneurlsurinternet/","/.*(<form.*>.*/U","$1<div>$2</div>$3") })]
compile correctement :
/ #EVAL
22 interdire_scripts((extraire_tag_from_url("http://www.uneurlsurinternet/","/.*(<form.*>.*/U","$1<div>$2</div>$3") )) .
23
24 // 1 signes
25 '
26 ');
RealET
Septembre 14, 2009, 3:02
2
* RealET tapuscrivait, le 14/09/2009 16:55:
Bonjour,
J'essaye de faire ceci :
[(#EVAL {extraire_tag_from_url("http://www.uneurlsurinternet/","/\.\*\(<form\.\*>\)\(\.\*\)\(<\\/form>\)\.\*/U","$1<div>$2</div>$3"\ )})]
Oups, j'avais oublié de simplifier le code ici aussi :
[(#EVAL {extraire_tag_from_url("http://www.uneurlsurinternet/","/\.\*\(<form\.\*>\)\.\*/U","$1<div>$2</div>$3"\ )})]
Et le code généré vu par var_mode debug est :
// #EVAL
22 interdire_scripts((extraire_tag_from_url("http://www.uneurlsurinternet/","/\.\.\*\(<form\.\*>\)\.\*/U"\ )) ..
23
24 // 1 signes
25 '
26 ');
Alors que
[(#EVAL {extraire_tag_from_url("http://www.uneurlsurinternet/","/\.\*\(<form\.\*>\.\.\*/U","$1<div>$2</div>$3"\)\ })]
compile correctement :
/ #EVAL
22 interdire_scripts((extraire_tag_from_url("http://www.uneurlsurinternet/","/\.\.\*\(<form\.\*>\.\*/U","$1<div>$2</div>$3"\)\ )) ..
23
24 // 1 signes
25 '
26 ');
Donc, la seule différence entre le code qui foire et l'autre, c'est :
(<form.*>)
et
(<form.*>
RealET
Septembre 14, 2009, 3:13
3
* RealET tapuscrivait, le 14/09/2009 17:02:
* RealET tapuscrivait, le 14/09/2009 16:55:
Bonjour,
J'essaye de faire ceci :
[(#EVAL {extraire_tag_from_url("http://www.uneurlsurinternet/","/\.\*\(<form\.\*>\)\(\.\*\)\(<\\/form>\)\.\*/U","$1<div>$2</div>$3"\ )})]
J'ai contourné en me créant une balise :
function balise_RECUPERER_PAGE_PORTION($p) {
if (sizeof($p->param)>0) {
$url = interprete_argument_balise(1,$p);
$pattern = interprete_argument_balise(2,$p);
$replace = interprete_argument_balise(3,$p);
$p->code = "extraire_tag_from_url($url,$pattern,$replace)";
}
$p->interdire_scripts = false;
return $p;
}
Appelée par :
[(#RECUPERER_PAGE_PORTION {"http://url ","/.*(<form.*>)(.*)(<\/form>).*/U","$1<div>$2</div>$3"})]
et [(#VAL {url}|extraire_tag_from_url{param2, param3})] ?
denisb1
(denisb)
Septembre 14, 2009, 3:48
5
RealET a écrit :
[(#RECUPERER_PAGE_PORTION {"http://url ","/.*(<form.*>)(.*)(<\/form>).*/U","$1<div>$2</div>$3"})]
[hs]
je rajouterais bien un s pour du multi-lignes
et un i pour avoir aussi les <FORM :
/.*(<form.*>)(.*)(<\/form>).*/iUs
(si j'ai bien compris le but de la manoeuvre...)
cerdic
Septembre 14, 2009, 4:42
6
Peut être en ajoutant un template tinybutstrong au milieu, ça serait encore plus compliqué ...
sinon tu peux aussi faire (comme en SPIP 1.0 a des nuances pres)
[(#VAL {url}|extraire_tag_from_url{"/.*(<form.*>)(.*)(<\/form>).*/U","$1<div>$2</div>$3"})]
non ? ou c'est moi qui ait pas l'esprit assez torturé ?
Cédric
RealET
Septembre 14, 2009, 5:26
7
* cedric.morin@yterium.com tapuscrivait, le 14/09/2009 18:42:
* RealET tapuscrivait, le 14/09/2009 17:02:
* RealET tapuscrivait, le 14/09/2009 16:55:
Bonjour,
J'essaye de faire ceci :
[(#EVAL {extraire_tag_from_url("http://www.uneurlsurinternet/","/\.\*\(<form\.\*>\)\(\.\*\)\(<\\/form>\)\.\*/U","$1<div>$2</div>$3"\ )})]
J'ai contourné en me créant une balise :
....
Appelée par :
[(#RECUPERER_PAGE_PORTION {"http://url ","/.*(<form.*>)(.*)(<\/form>).*/U","$1<div>$2</div>$3"})]
Peut être en ajoutant un template tinybutstrong au milieu, ça serait encore plus compliqué ...
sinon tu peux aussi faire (comme en SPIP 1.0 a des nuances pres)
[(#VAL {url}|extraire_tag_from_url{"/.*(<form.*>)(.*)(<\/form>).*/U","$1<div>$2</div>$3"})]
non ? ou c'est moi qui ait pas l'esprit assez torturé ?
Joker
Bon, je vais la refaire au sujet du bug.
C'est bien de contourner le bug, mais ça ne le supprime pas.
J'ai tenté de faire [(#EVAL {fonction("param1","param2")})]
Et param2 n'est non seulement pas pris en compte, mais en plus provoque une erreur PHP si param1 comporte une parenthèse fermante.
Pour moi, c'est un bug.
Mais c'est sans doute au-delà des possibilités du compilateur de SPIP.
denisb1
(denisb)
Septembre 14, 2009, 8:33
8
RealET a écrit :
Mais c'est sans doute au-delà des possibilités du compilateur de SPIP.
bon.
alors si
[(#EVAL {date("Y-m-d (H:i:s)", "1234567890")})]
provoque bien une erreur à la compilation
il n'en va pas de même pour
[(#EVAL {"date('Y-m-d (H:i:s)', '1234567890')"})]
qui fonctionne farpaitement.
et du coup,
[(#EVAL {"extraire_tag_from_url('http://www.uneurlsurinternet/‹ , ›/.*(<form\.\*>\)\.\*/U','$1<div>$2</div>$3'\ )"})]
compile tout aussi farpaitement en :
// #EVAL
interdire_scripts(eval('return '.
// 94 signes
'extraire_tag_from_url(\'http://www.uneurlsurinternet/\\',\\'/\.\*\(<form\.\*>\)\.\*/U\\',\\'$1<div>$2</div>$3\\'\ )'.';'))
rhâââââ la la !
ces kotalakon...