Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: erwinol le le 29-06-2003 a 00:58:51

Titre: UBB codes
Posté par: erwinol le le 29-06-2003 a 00:58:51

Bonjour à tous !

Je suis entrain de développer un script de forum assez spécial mais je coince sur les codes UBB. Je vous montrerai le résultat une fois mon problème résolu ;-)

Par exemple en postant un message sur le forum le membre peut y mettre des images (max 5 images), il dispose pour cela de 5 champs <input type="file" name="images[]"...> qui lui permettra d'uploader l'image sur le serveur (comme ça je suis sûr que l'image ne sera pas après un certain temps plus qu'un petit carré avec une croix rouge car l'URL n'existe plus).

Le nom de l'image devient sur le serveur du format :
$id_post_dans la table . "_" . $i . "." . $extension, par exemple pour le post n°1243, la 5ème image du post, d'extension ".gif" on aura 1243_5.gif sur le serveur.

Je voudrais donc que quand le membre écrit <image 5> dans son post, qu'il remplace ce tag par l'image ... donc <img src="1243_5.gif">

Je sais que j'ai pas été très clair mais j'espère que bous aurez compris :)
Merci d'avance pour votre aide ... et j'espère pouvoir renvoyer l'appareil dans le futur.

erwinol

Titre: Re:UBB codes
Posté par: Shain le le 29-06-2003 a 16:03:43

J'ai fais ca pour mon gestionnaire d'article Izidoo.com avec un nombre d'images illimités, je vais essayer de te retrouver le code ...

Titre: Re:UBB codes
Posté par: Shain le le 29-06-2003 a 16:08:33

Voila, je t'ai simplifié mon code ... à toi de l'adapter. dis moi si tu as besoin d'explications.

while($r = @mysql_fetch_array($result))
{
$occurence[$r[numero] = "[image".$r[numero]."]";
$remplacement[$r[numero] = '<img src="../images/messages/'.$r[id].$r[ext].'">';
}

//affichage du message
$message = str_replace($occurence, $remplacement, $message);

Titre: Re:UBB codes
Posté par: erwinol le le 29-06-2003 a 16:34:11

Merci bcp pour ton aide !

Si je comprend bien ce que tu fais, tu enregistres le texte dans ta base et tu fais la transformation à chaque affichage. J'aurais préféré une méthode me permettant de fais la tranformation avant de mettre l'enregistrement dans la base, ça me semble plus logique ... ainsi il ne le fera qu'une seule fois.

Je ne parviens vraiment pas à transformer <image 1> par exemple en <img src="images/19_1.gif"> si l'id du post est 19. Mais je me rend compte que je n'aurai l'id qu'après avoir enregistré le post dans la table à l'aide de mysql_insert_id()... c genant ! Et si je cherche l'id le + grand de la table et que 2 posts sont envoyé en même temps ça va pas aller non plus ???

Quelqu'un a une idée ?

Titre: Re:UBB codes
Posté par: Shain le le 29-06-2003 a 17:26:27

Tu n'as pas le choix, tu fais 2 requetes ... la première ou tu enregistre tes infos dans la base, ensuite tu recupère l'id, tu tranforme ton pseudo code avec le morceau de script que je t'ai donné et tu l'enregistre dans ta base en faisant un UPDATE ...

Voici le script adapté à ton pb ...

for ($i = 1; $i <= 5; $i++)
{
$occurence[$i] = "[image".$i."]";
$remplacement[$i] = '<img src="../images/messages/'.$id].'_'.$i.$r[ext].'">';
}

$message = str_replace($occurence, $remplacement, $message);

et tu enregistre ton message.

Titre: Re:UBB codes
Posté par: erwinol le le 29-06-2003 a 18:51:58

Merci infiniment Shain !
C'est cool de voir qu'il y en a d'autres qui comme moi se décarcassent pour les autres ;)


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.