Aller au contenu

Sujets conseillés

Posté

Bonjour,

Je n'arrive pas à supprimer les quotes dans mes images générée avec imagettftext... :angry:

Je met un coup de stripslashes sur mes variables mais il m'en remet une couche je ne sais pas trop où.

	$L1=stripslashes($ligne1);
$L2=stripslashes($ligne2);
$L3=stripslashes($ligne3);

[...]

imagettftext($image, $taille, 0, $xL1, $yL1, $gris, $font, $L1);
imagettftext($image, $taille, 0, $xL2, $yL2, $bleu_clair, $font, $L2);
imagettftext($image, $taille, 0, $xL3, $yL3, $bleu, $font, $L3);

Au final, ça donne ça :

secteur_6.png

Si quelqu'un pouvais m'indiquer comment m'en débarasser ; pour l'instant j'ai fait une fonction qui supprime les quotes mais c'est pas terrible niveau lecture de l'image. :nono:

J'ai même essayé de passer les quotes en UTF-8 mais ça change rien au problème. :evil:

Posté

As-tu affiché les variables $L1, $L2 après le stripslashes ?

Parce que si elles ont des doubles backslashes, il en reste un ;)

Posté

Bon, le souci est réglé, j'ai fait ceci :

	$L1=stripslashes(stripslashes($ligne1));
$L2=stripslashes(stripslashes($ligne2));
$L3=stripslashes(stripslashes($ligne3));

Il y avait donc bien 2 backslashes...

Je pensais que stripslashes nettoyait correctement la chaine de caractère, ce double stripslashes() fait un peu bricolage.

Enfin, je vais pas chipoter, tout s'affiche comme je veut. :)

Merci Dan. ;)

region_8.png

Posté

En fait, si tu as 2 slashes qui s'affichent, c'est probablement parce que tu as une fonction qui ajoutes 2 slashes.

Ou plus probablement parce que tu ajoutes des slashes à une chaine qui en a déjà.

Comment ?

En fonction de la configuration du serveur, les variables passées d'une page à une autre peuvent se voir attribuées des slahes d'office. C'est probablement quelque chose du genre, auquel tu as affaire.

Nico.

Posté (modifié)

Déjà, il me semble que les magic_quotes doivent être à 'on'.

Pour le fonctionnement de mon script, c'est très simple :

1) Réception des données du formulaire

$ligne=$_POST['ligne'];

2) Appel de la fonction

 image($ligne);

3) Traitement de $ligne par la fonction image() :

function image($ligne){
  # Suppression des quotes
  stripslashes(stripslashes($ligne));
  # Calcul de la taille
  $taille= imagettfbbox(18, 0, $font, $ligne);
  # Création de l'image
  [...]
  # Ecriture dans l'image
  imagettftext($image, 18, 0, $x, $y, $gris, $font, $ligne);
  # Enregistrement de l'image
  imagepng($image, $nom);
}

Ce serait donc à l'appel de la fonction que le deuxième slash est inséré automatiquement ?

Et je viens de voir :

stripslashes  retourne une chaîne dont les anti-slash on été supprimés. \'  devient '  , etc. Les doubles anti-slash sont réduits à un seul anti-slash.

Ce qui explique le slash résiduel. :)

Modifié par AllForEver

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...