Categories > TinyButStrong general (FR) >

Fatal Error pour 1 caractère

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: TiTi
Date: 2009-11-26
Time: 16:19

Fatal Error pour 1 caractère

Hello,

En oubliant le caractère " dans un de mes templates, j'obtenais l'erreur suivante :
=> Fatal error: Maximum execution time of 30 seconds exceeded in /***/api/tbs/tbs_class_php5.php on line 2954

J'utilisais la version 3.4.0 lorsque ce soucis est apparu.
Je ne sais pas si il est normal que TBS engendre une erreur fatale, quoiqu'il en soit c'était ma faute à la base.
Je reporte cette erreur si cela arrive à quelqu'un ;)
Voici la ligne du template qui posait problème :

<td><input type="text" name="telfixe" id="telfixe" value="[var._POST.telfixe;noerr]" class="champtext" tabindex="8 /></td>

-> Mon erreur = oubli du guillement de fermeture pour le 'tabindex'
.... ^^
By: Skrol29
Date: 2009-11-27
Time: 18:36

Re: Fatal Error pour 1 caractère

Salut Titi,

Ce n'est carrément pas normal.
Je ne vois pas pourquoi TBS aurait besoin de ce guillemet double.
Est-ce que tut peux m'envoyer un bout de script qui reproduit le bug ?
By: TiTi
Date: 2009-11-30
Time: 10:12

Re: Fatal Error pour 1 caractère

ok à priori je dirais plutôt que ca vient du plugin HTML en fait.

J'ai mis en place une demo avec le minimum nécessaire pour reproduire l'erreur :

http://dl.free.fr/vL8tydd5w

A noter que l'erreure fatale se produit aussi avec la dernière version sortie de TBS.
By: Skrol29
Date: 2009-11-30
Time: 16:44

Re: Fatal Error pour 1 caractère

Salut Titi,

Merci pour ta démo !
Le bug vient de la fonction f_Xml_FindTag() de TBS.

Je vais bientôt proposer un correctif qui corrige le problème de façon à ne pas perdre d'info, si possible, lorsqu'une balise est mal formée.

Dans un premier temps, voici comment corriger le bug. dans le code source de TBS (version 3.4 ou 3.5, pour PHP 4 ou PHP 5), il faut remplacer :
    if ($TagOk) {
        $Loc =& new clsTbsLocator;
        if ($WithPrm) {
            $PosEnd = 0;
            clsTinyButStrong::f_Loc_PrmRead($Txt,$PosX,true,'\'"','<','>',$Loc,$PosEnd);
        } else {
            $PosEnd = strpos($Txt,'>',$PosX);
            if ($PosEnd===false) {
                $TagOk = false;
            }
        }
    }


Par
    if ($TagOk) {
        $Loc = new clsTbsLocator;
        if ($WithPrm) {
            $PosEnd = 0;
            clsTinyButStrong::f_Loc_PrmRead($Txt,$PosX,true,'\'"','<','>',$Loc,$PosEnd,$WithPos);
        } else {
            $PosEnd = strpos($Txt,'>',$PosX);
        }
        if ($PosEnd===false) $TagOk = false;
    }

Encore merci pour ton aide.
By: Skrol29
Date: 2009-12-08
Time: 12:01

Re: Fatal Error pour 1 caractère

salut Titi,

Ce bug est corrigé dans la nouvelle version TBS 3.5.1 qui vient de sortir.

Merci encore à toi.
By: TiTi
Date: 2009-12-08
Time: 12:07

Re: Fatal Error pour 1 caractère

\o/