Bonjour, je viens de finir le tutoriel concernant le BBCode en PHP. J'ai le formulaire séparer de la zone d'affichage, pour envoyer les données qui sont stoquer dans la base, le fichier "ajout.php" est dans un dossier admin.
Et j'ai recopier le code pour la transformation du BBcode en html, sauf que quand j'affiche les donnée de la base, ça ne marche pas..

5 réponses


tottosche
Réponse acceptée

Ok petit problème de syntaxe: '[b](.*?)[\/b]' => ' $1' (il manque la fermeture de paretenthèse en faite) Ensuite dis moi si tu as encore des problème parce que j'ai pas été plus loin

Vérifie deja si le code est bien dans ta base de donnée lorsque tu l'ajoute,
si oui, serait il possible que tu nous montre ton code de la page d'affichage?
Si non serait possible de voir le code pour ta page d'insertion dans la bdd + ton form?

Guilhem
Auteur

Le code dans la BDD:

<strong>TEST</strong>

Donc oui ça le prend en compte.
(il est afficher <strong></strong> mais dans la base c'est bien ""

Le Code d'ajout, y'a rien qui change c'est comme pour poster une news (tuto news) c'est pratiquement le même code, le gars poste son contenu avec les balises, et c'est sauvegarder dans la base.

Le form:

<p class="double">
    <label for="contenu_art">Article :</label><br />
        <textarea name="contenu_art" rows="10" cols="50" <?php if ((isset($_POST'contenu_art'])) && ($_POST'contenu_art'] == "")) { ?> class="Input_erreur" <?php } ?>
onfocus="this.className='';"></textarea>
</p>
Guilhem
Auteur

Oups j'ai oublier l'affichage. [code]<?php $conv = array(
'[b](.?[\/b]' => ' $1', '[i](.*?[\/i]' => '$1', '[u](.*?[\/u]' => '<u>$1</u>', '[img](.*?[\/img]' => ' ', '[url=([^]]*)](.\)[\/url]' => ' $2', ); ?>

Les 5 derniers Articles :

<?php mysql_connect("localhost","racknarock"," *****");
mysql_select_db("racknarock_general");
$sql="SELECT * FROM articles_s ORDER BY id_article DESC LIMIT 0,5";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'
'.mysql_error()); while($data=mysql_fetch_assoc($req)){ echo "{$data["nom_article"]}"; $data["contenu_art"] = htmlentities($data["contenu_art"],ENT_NOQUOTES,'UTF-8'); foreach($conv as $k=>$v){ $data["contenu_art"] = preg_replace('/'.$k.'/',$v,$data["contenu_art"]); } echo "

".substr($data["contenu_art"] = nl2br($data["contenu_art"]), 0, 1200)."
"; echo "

Lire la suite...
"; echo "
__________________________________
"; } ?>[/code] EDIT: J'ai vu quelque chose dans les sujets, a peu prêt le même problème que moi. Quand je fais le code ci-dessus, j'ai des erreurs: [code]Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 16 in /home/racknarock/public_html/index.php on line 51 [/code]

Guilhem
Auteur

Merci, c'était tout bête ;).