Question image

Répondre
yhaab
le 30/03/2011 à 12:00
yhaab
Salut,

j'ai utilisé le script de news présent sur le site:

http://www.lephpfacile.com/howto/2-comment-faire-un-script-de-news-en-php

Tout marche bien, mais j'ai juste une petite question, on peut pas utilsé de HTML ni de BBCode avec... Moi, j'aimerai que les personnes puissent mettre par exemple <img src"lien de limage"/> et que l'image s'affiche... Ou en BB-Code aussi c'est bon, mais juste pour pouvoir mettre des codes dedans, j'ai aucune idée de comment faire sa.

Merci.

Voilà mon code:

insert_news_photos.php
==>
<?php
// on teste si le formulaire a été validé
if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db('test', $base);

// on teste la déclaration de nos variables
if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['news'])) {
$erreur = 'Au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO news_photos VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['news']).'")';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base de données
mysql_close();

// on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
header('Location: ../photos.php');
// on termine le script courant
exit();
}
}
}
?>
<html>
<head>
<title>Insertion d'une nouvelle news</title>
</head>

<body>

<!-- on fait pointer le formulaire vers la page traitant les données -->
<form action="insert_news_photos.php" method="post">
<table>
<tr><td>
<span class="gras">Auteur :</span>
</td><td>
<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
</td></tr><tr><td>
<span class="gras">Titre :</span>
</td><td>
<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
</td></tr><tr><td>
<span class="gras">News :</span>
</td><td>
<textarea name="news" cols="50" rows="10"><?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?></textarea>
</td></tr><tr><td><td align="right">
<input type="submit" name="go" value="Poster la news">
</td></tr></table>
</form>
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>

news_photos.php
==>
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db('test', $base);

// lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
$sql = 'SELECT auteur, titre, date, texte_news FROM news_photos ORDER BY date DESC;';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on compte le nombre de news stockées dans la base de données
$nb_news = mysql_num_rows($req);

if ($nb_news == 0) {
echo 'Aucune news photos.';
}
else {
// si on a au moins une news, on l'affiche
while ($data = mysql_fetch_array($req)) {

// on décompose la date
sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);

// on affiche les résultats
echo '<tr><td class="page_cadre_titre" align="left"><strong>' , htmlentities(trim($data['titre'])) , '</stong> - <font class="font_p">Postée le ' , $jour , '/' , $mois , '/' , $an , ' à ' , $heure , ':' , $min , ':' , $sec , ' par ' , htmlentities(trim($data['auteur'])) , '</font></td></tr>';
echo '<td style=" padding: 5px;"><div class="font_p"><div align="justify"><table width="100%"><tbody><tr><td><font class="font_p">' , nl2br(htmlentities(trim($data['texte_news']))) , '</font></td></tr></tbody></table></div></div></td>';
}
}
// on libère l'espace mémoire alloué à cette requête
mysql_free_result ($req);

// on ferme la connexion à la base de données
mysql_close ();
?>


La page index.php j'inclus juste ma page news_photos.php... Donc, pas nécessaire que je mette le code.

Le BB-Code qui est sur le forum ici, c'est bon, mais il me faut juste alors pour pouvoir posté des images.

Merci.
yhaab
le 30/03/2011 à 12:02
yhaab
Oublié aussi de dire que j'aimerai faire pareil avec les vidéos youtube.
Donc, on met un code, et le lien de la vidéo youtube s'affiche sur le site, comme quand on met l'option "Intégrer" depuis youtube.

Merci.
moogli
le 30/03/2011 à 17:25
moogli
salut,

a tu essayer de faire un système de bbcode simple ?
par exemple avec de balise [image]lien[/image] ou [youtube]lien vidéo[/youtube] ?

si oui montre nous
ensuite le htmlentities va forcément virer les balise html il sert à ça :)
donc il faut faire la transformation des balises bbcode après le htmlentities ;)


@+
Il en faut peu pour être heureux !!!!!
yhaab
le 30/03/2011 à 18:55
yhaab
Non, j'ai pas fait et je sais pas comment faire. Sinon, je l'aurai déjà fait. :)

Et j'ai pas compris par ce que tu veux dire par le htmlentities.
moogli
le 31/03/2011 à 15:14
moogli
aller un peu de recherche
http://www.siteduzero.com/tutoriel-3-9953-poster.html#ss_part_2 par exemple.

ensuite a tu regardé la doc de htmlentities ?

pour ce qui de l'affichage (pour l'exemple on va dire t'a une fonction qui s'appelle bbcode, elle prend en paramètre une chaine et retourne une chaine) =>
<?php
$chaineFinale = bbcode(htmlentities($texteAafficher));
// ou alors avec htmlspecialchars
$chaineFinale = bbcode(htmlspecialchars($texteAafficher));
?>


A toi de créer ton système de bbcode à partir de l'exemple.
d'autre exemple sont bien sur disponible sur google (par exemple) ;)

@+
Il en faut peu pour être heureux !!!!!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours