Bug dans openflyers avec PHP 4.3.7 =sprintf
Envoyé par: batchris ()
Date: vendredi 18 juin 2004 18:58:21

Bonsoir,

Avec la version 4.3.7 de PHP, un bug vient d'apparaître dans OpenFlyers

=printf("...",..) : printf renvoi bien la chaîne préformatée, mais le = renvoi aussi le nombre de caractère affiche par printf ...

En fait depuis la 4.3.7, printf renvoi le nombre de caractères alors qu'avant c'était un void.

printf est utilisé à plusieurs reprises dans le code d'openflyers : affichage du calendrier et dans le formulaire de réservation.

Donc pour corriger, il faut remplacer =printf par =sprintf ou supprimé le = et laisser le printf.
Personnellement je préconise le =sprintf qui est plus correct et garanti une compatibilité futur.

Voici les deux fichiers concernés : classes/form.class.php et includes/navigation.php
Avec un simple éditeur remplacé toutes les occurences de =printf par =sprintf et le tour est joué dans les deux fichiers cités ci-dessus.


Cordialement,
Chris.


Options: RépondreCiter
Re: Bug dans openflyers avec PHP 4.3.7 =sprintf
Envoyé par: claratte ()
Date: samedi 19 juin 2004 13:51:11

Bonjour,

Merci pour l'info. Elle est particulièrement intéressante car elle est liée au développement de php. Comme déjà dit dans ce forum, nous tachons d'être scrupuleux quand au respect des recommandations dans l'utilisation de php.

Pour info, dans la future version 1.2 d'OF, ce bug a déjà disparu car nous avons décidé de supprimer les <?= pour les remplacer par des <?php echo(.

En fait, il s'agit d'une conséquence d'une autre décision : remplacer les <? par des <?php qui, du coup, interdisent l'utilisation du =. Pour faciliter le respect de cette consigne nous mettons sur off dans php.ini le paramètre short_open_tag.

Néanmoins, je remplace également les printf par des sprintf. Ils provenaient tous de parties que j'avais codé. (désolé ;-)



Envoyer mon message (19-06-04 15:58)

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter


Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.
This forum powered by Phorum.