interface news avec html code

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : interface news avec html code

par jojolapine » 29 janv. 2007, 12:53

oui j'aurais finit par donner le même conseil ... :?
J'ai un petit doute sur le l'auteur du script de news... c'est toit tout seul qui l'a fait ?

par Ultim4T0m » 29 janv. 2007, 01:39

Pourquoi des crochets ?

Là où tu affiches le texte, stocké dans la variable $contenu, je pense que tu fais
echo $contenu;
Avec la fonction que tu nous a montré, qui converti le BBCode en html, tu peux faire comme ça :

Fichier bbcode.php -
function bbcode($text) {
    $text = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<"]*?)\[/img\]#sie", "'<img src=\\1' . str_replace(' ', '%20', '\\3') . '>'", $text);
    $text = preg_replace("#\[url\]((ht|f)tp://)([^\r\n\t<"]*?)\[/url\]#sie", "'<a href="\\1' . str_replace(' ', '%20', '\\3') . '" target=blank>\\1\\3</a>'", $text);
    $text = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/", "<a href=$1 target=blank>$2</a>", $text);

    $text = preg_replace("/\[b\](.+?)\[\/b\]/", "<b>$1</b>", $text);
    $text = preg_replace("/\[i\](.+?)\[\/i\]/", "<i>$1</i>", $text);
    $text = preg_replace("/\[u\](.+?)\[\/u\]/", "<u>$1</u>", $text);
    $text = preg_replace("/\[code\](.+?)\[\/code\]/", "<table width=100%><tr><th align=left>Code :</th></tr><tr><td align=left><code>$1</code></td></tr></table>", $text);
    $text = preg_replace("/\[quote\](.+?)\[\/quote\]/", "<table width=100%><tr><th align=left>citation :</th></tr><tr><td align=left>$1</td></tr></table>", $text);
    $text = preg_replace("/\[quote=(.+?)\](.+?)\[\/quote\]/", "<table width=100%><tr><th align=left>$1 :</th></tr><tr><td align=left>$2</td></tr></table>", $text);
    $text = preg_replace("/\[color=(.+?)\](.+?)\[\/color\]/", "<font color=$1>$2</font>", $text);

    return $text;
}

Fichier principal -
include 'bbcode.php'; // On inclue la fonction pour le BBCode

echo bbcode($contenu);

Mais en voyant ca echobbcode[$contenu] je n'ai qu'un conseil... www.phpdebutant.org

par ferlandez » 29 janv. 2007, 01:03

nop sa marche pas :( le script de bbcode je le met ou aujuste ? et le echobbcode[$contenu] je le met dans ma page qui affiche les texte c sa ?

par ferlandez » 29 janv. 2007, 00:46

Jessais et je vous reviens

par Ultim4T0m » 29 janv. 2007, 00:27

J'imagine que c'est la variable $contenu qui peut contenir du BBCode, ce serait donc sur la page qui affiche cette variable. Plutôt qu'un echo $contenu, tu ferais un bbcode($contenu), tout simplement.

(Balises PHP et non CODE pour encadrer du php)

par ferlandez » 29 janv. 2007, 00:08

okay good merci bcp mais comment faire :?

voici mon codage

Code : Tout sélectionner

<? session_start(); /* si la variable de session login n'existe pas cela siginifie que le visiteur n'a pas de session ouverte, il n'est donc pas logué ni autorisé à acceder à l'espace membres */ if(!isset($_SESSION['login'])) { echo 'Vous n\'êtes pas autoris´ à acceder à cette zone'; include('login.htm'); exit; } ?> <<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Rédiger une news</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h3, form { text-align:center; } </style> </head> <body> <h3><a href="liste_news.php">Retour à la liste des news</a></h3> <?php mysql_connect("********", "*****", "******"); mysql_select_db("****"); if (isset($_GET['modifier_news'])) // Si on demande de modifier une news { // On récupère les infos de la correspondante $retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['modifier_news']); $donnees = mysql_fetch_array($retour); // On place le titre et le contenu dans des variables simples $titre = $donnees['titre']; $contenu = $donnees['contenu']; $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification } else // C'est qu'on rédige une nouvelle news { // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news $titre = ''; $contenu = ''; $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification } ?> <form action="liste_news.php" method="post"> <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p> <p>&nbsp;</p> <p>Contenu :<br /> <textarea name="contenu" cols="50" rows="10"> <?php echo $contenu; ?> </textarea> <br /> <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" /> <input type="submit" value="Envoyer" /> </p> </form> </body> </html>

par jojolapine » 27 janv. 2007, 13:35

et bien il suffit d'appliquer ta fonction à la variable contenu...!
ça devrait faire l'affaire ;-)

par ferlandez » 26 janv. 2007, 20:44

voila le code que javais pensé:

Code : Tout sélectionner

function bbcode($text) { $text = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'<img src=\\1' . str_replace(' ', '%20', '\\3') . '>'", $text); $text = preg_replace("#\[url\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/url\]#sie", "'<a href=\"\\1' . str_replace(' ', '%20', '\\3') . '\" target=blank>\\1\\3</a>'", $text); $text = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/", "<a href=$1 target=blank>$2</a>", $text); $text = preg_replace("/\[b\](.+?)\[\/b\]/", "<b>$1</b>", $text); $text = preg_replace("/\[i\](.+?)\[\/i\]/", "<i>$1</i>", $text); $text = preg_replace("/\[u\](.+?)\[\/u\]/", "<u>$1</u>", $text); $text = preg_replace("/\[code\](.+?)\[\/code\]/", "<table width=100%><tr><th align=left>Code :</th></tr><tr><td align=left><code>$1</code></td></tr></table>", $text); $text = preg_replace("/\[quote\](.+?)\[\/quote\]/", "<table width=100%><tr><th align=left>citation :</th></tr><tr><td align=left>$1</td></tr></table>", $text); $text = preg_replace("/\[quote=(.+?)\](.+?)\[\/quote\]/", "<table width=100%><tr><th align=left>$1 :</th></tr><tr><td align=left>$2</td></tr></table>", $text); $text = preg_replace("/\[color=(.+?)\](.+?)\[\/color\]/", "<font color=$1>$2</font>", $text); return $text; }

par jojolapine » 26 janv. 2007, 11:46

je connias le html
Tu m'en vois rassuré ;-)
je veux simplement savoir ou ajouter le code dans le head ou dans le body
Déja as-tu seulement une idée du code en question, comment comptes tu procéder pour remplacer tes balises bbcodes par de balises html?

par ferlandez » 26 janv. 2007, 01:21

je connias le html le blablabla setais une exemple lol je veux simplement savoir ou ajouter le code dans le head ou dans le body ?

par jojolapine » 25 janv. 2007, 11:23

Je suppose que tu as quelques notions d'html non?
Bon tu sais très bien -en tout cas j'espère- que pour afficher une image dans une page html, il faut faire comme cela:
<img src="monimage.jpg" alt="descriptif" />
Et c'est la seul façon de faire!!!!!!
Tu ne trouveras jamais un navigateur qui interpretera

Code : Tout sélectionner

[img]blablabla.gif[/img]
comme une image, c'est à toi de trouver les occurences de ce type de code, et de les changer en code html... mais je croit que ça devient difficile pour un débutant...

par ferlandez » 24 janv. 2007, 21:54

BBcode non jai pas sa comment jajoute sa ?

par zeus » 24 janv. 2007, 21:53

Modération :
ferlandez, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

par jojolapine » 24 janv. 2007, 21:47

déja prend soin d'encadrer tes portions de codes des balises [php][/php] on y verra tous plus clair...
ensuite, as-tu seulement une fonction de traitement du bbcode ?

interface news avec html code

par ferlandez » 24 janv. 2007, 21:21

salut jai finalement reussi a faire mon interface d'daministration mais a tout les fois que j'ajoute une code html comme exemple[img]blablabla.gif[/img] sa laffiche le code et non limage voici mes code:

liste_news:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Liste des news</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h2, th, td
        {
            text-align:center;
        }
        table
        {
            border-collapse:collapse;
            border:2px solid black;
            margin:auto;
        }
        th, td
        {
            border:1px solid black;
        }
        </style>
    </head>
    
    <body>


<h2><a href="rediger_news.php">Ajouter une news</a></h2>

<?php
mysql_connect("***", "******", "******");
mysql_select_db("****");

//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------

if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    // On vérifie si c'est une modification de news ou pas
    if ($_POST['id_news'] == 0)
    {
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
    }
    else
    {
        // C'est une modification, on met juste à jour le titre et le contenu
        mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id=" . $_POST['id_news']);
    }
}


//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------

if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
    // Alors on supprime la news correspondante
    mysql_query('DELETE FROM news WHERE id=' . $_GET['supprimer_news']);
}
?>

<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>

<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>

<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>

<?php
} // Fin de la boucle qui liste les news
?>
</table>

</body>
</html>
redige_news:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Rédiger une news</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h3, form
        {
            text-align:center;
        }
        </style>
    </head>
    
    <body>

<h3><a href="liste_news.php">Retour à la liste des news</a></h3>

<?php
mysql_connect("*****", "******", "***");
mysql_select_db("********");

if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
{
    // On récupère les infos de la correspondante
    $retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['modifier_news']);
    $donnees = mysql_fetch_array($retour);
    
    // On place le titre et le contenu dans des variables simples
    $titre = $donnees['titre'];
    $contenu = $donnees['contenu'];
    $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige une nouvelle news
{
    // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
    $titre = '';
    $contenu = '';
    $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>

<form action="liste_news.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>

<p>
    Contenu :<br />
    <textarea name="contenu" cols="50" rows="10">
    <?php echo $contenu; ?>
    </textarea><br />
    
    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>

</body>
</html>
Merci de maider