JeuWeb - Crée ton jeu par navigateur
Bbcode [IMG] + transformation des URL texte - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Bbcode [IMG] + transformation des URL texte (/showthread.php?tid=5176)



Bbcode [IMG] + transformation des URL texte - Catar4x - 17-01-2011

Bonjour à tous,
Je ne suis pas très doué en regex alors je bidouille les codes sur le net pour avoir quelque chose de convenable mais j'ai du mal avec le mélange du bbcode dedans.

Voici mon problème :

[ img ]http://monimage.png[/img] transforme en <img src='http://monimage.png' />
Puis la détection d'url va transformer le tout en : <img src='<a href='http://monimage.png'' />

Le code actuel est :

$chaine = preg_replace('/\[img\](.+?)\[\/img\]/', '<img src="$1" alt="" title="" />', $chaine);
/* Détecter URL et les transformer en lien */
$chaine = eregi_replace("(http|mailto|news|ftp|https)://(([-éa-z0-9\/\.\?_=#@:~])*)",
"<a href=\"\\1://\\2\">\\1://\\2</a>", $chaine);

Donc il faudrait détecter <img src=' et ne pas afficher l'url mais comment faire ?

Merci ! Smile


RE: Bbcode [IMG] + transformation des URL texte - Myrina - 17-01-2011

et traiter les url avant de traiter les bbcode IMG?


RE: Bbcode [IMG] + transformation des URL texte - Jojodu42 - 17-01-2011

On dirais que ton code se transforme en commentaire...


RE: Bbcode [IMG] + transformation des URL texte - niahoo - 18-01-2011

normal il a mis une coloration pour php.


RE: Bbcode [IMG] + transformation des URL texte - NicoMSEvent - 18-01-2011

Pour répondre a ta question, si tu as un ' (apostrophe) avant l'adresse (avant http|ftp|...), tu peux ignorer l'adresse a modifier. En regex, tu peux lui indiquer ça. Je crois que ça va résoudre ton problème. Je ne te fournis pas la solution, mais une piste, a toi de chercher (trop occupé pour le moment pour le faire :p )


RE: Bbcode [IMG] + transformation des URL texte - Jeckel - 18-01-2011

(17-01-2011, 08:12 PM)Catar4x a écrit : Le code actuel est :

$chaine = preg_replace('/\[img\](.+?)\[\/img\]/', '<img src="$1" alt="" title="" />', $chaine);
/* Détecter URL et les transformer en lien */
$chaine = eregi_replace("(http|mailto|news|ftp|https)://(([-éa-z0-9\/\.\?_=#@:~])*)",
"<a href=\"\\1://\\2\">\\1://\\2</a>", $chaine);

Je ne sais pas d'où vient ta chaine de caractère d'origine, mais si c'est saisie par un utilisateur attention, c'est une très grosse faille de sécurité... en effet, dans la chaine, l'utilisateur peut alors mettre n'importe quoi qui sera envoyé tel quel aux autres utilisateurs

par exemple :

[img]mon/image.png" /><script>window.open('mon site porno')</script><img src="mon image[/img]

Il faut toujours filtrer les saisies utilisateur pour ne bien récupéré qu'une URL d'image et pas du code pourri dedans...
(Règle numéro 1 de la sécurité : Never Trust User Data / Ne jamais faire confiance aux données saisies par un utilisateur)