fichier joint d'un message dans une page news

Eléphanteau du PHP | 16 Messages

09 nov. 2012, 13:48

Bonjour,

vous êtes mon dernier espoir, j'ai posté ce problème sur 5 sites différents personne n'a réussi à répondre.(svp ne prenait pas peur :))

Je vais essayer d'être le plus clair possible.

Je suis entrain de créer un site web, que j'ai relié à un forum phpbb, jusque la pas de soucis.
Les membres postent des fichiers joint dans leur messages du forum. (les fichiers joints sont hébergé sur mon site dans le dossier /forum/files/).
Leur images (fichiers joints) s'affichent bien dans leurs messages sur le forum.

les problèmes:
J'ai crée sur la page d'accueil de mon site une catégorie "news" qui affiche les 3 derniers messages d'un sujet. Les 3 messages sont bien lisible aucun problème. Ce qui ne va pas en revanche c'est les fichiers joints qui ne s'affichent pas ou alors que par leur noms. voici ce qu'affiche les news de la page accueil:
"voici le logo en question vous en pensez quoi ?[attachment=0:30tiqsnx]Logo2.jpg[/attachment:30tiqsnx]...".

Ce que j'aimerais:
réussir à afficher l'image correctement dans la page d'accueil section news.

2 choses.

1/. Les images que les membres postent dans leurs messages (sur le forum) sont donc hébergé par moi comme je vous l'ai dit dans le dossier /forum/files/. mais sous un nom du genre "2_3bc2eed4fa3f1d0cbf54045228302b70" est ce que ça vient de la ? (je ne pense pas car elles s'affichent correctement dans le forum donc elles sont bien appelées).

2/.Cela doit venir de mon code que je vous post:

Code : Tout sélectionner

<?php $sql = 'SELECT post_text, post_subject, poster_id FROM ' . POSTS_TABLE . ' where forum_id = 5 ORDER BY post_time DESC LIMIT 3'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $bbcode_bitfield = base64_decode($row['bbcode_bitfield']); $bbcode = new bbcode(base64_encode($bbcode_bitfield)); // Parse the message and subject $message = censor_text($row['post_text']); // Second parse bbcode here if ($row['bbcode_bitfield']) { $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']); } $message = bbcode_nl2br($message); $message = smiley_text($message); echo 'Message posté dans<a href="http://animal-suspect.com/forum/viewtopic.php?f=5&t=2"> Sa derniere bétise</a>' . $row['topic_id'] . '</a>:<br />'; echo substr($message, 0, 500) . '...<br /><br />'; } ?>
celui-ci m'affiche: "voici le logo en question vous en pensez quoi ?[attachment=0:30tiqsnx]Logo2.jpg[/attachment:30tiqsnx]...".


ou celui-ci:

Code : Tout sélectionner

<?php $sql = "SELECT t.topic_title, t.forum_id, t.topic_time, p.post_id, p.bbcode_bitfield, p.bbcode_uid, p.post_text FROM phpbb_posts p JOIN phpbb_topics t ON t.topic_id = p.topic_id WHERE t.forum_id=5 ORDER BY post_time DESC LIMIT 0 , 5"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $attachments = array(); if($row['post_attachment']) { $sql = 'SELECT * FROM ' . ATTACHMENTS_TABLE . ' WHERE post_msg_id=' . $row['post_id'] . ' AND in_message = 0 ORDER BY filetime DESC, post_msg_id ASC'; $result2 = $db->sql_query($sql); while($row2 = $db->sql_fetchrow($result2)) { $attachments[] = $row2; } } $bbcode_bitfield = base64_decode($row['bbcode_bitfield']); $bbcode = new bbcode(base64_encode($bbcode_bitfield)); // Parse the message and subject $message = censor_text($row['post_text']); // Second parse bbcode here if ($row['bbcode_bitfield']) { $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']); } $message = bbcode_nl2br($message); $message = smiley_text($message); echo 'Message posté dans<a href="http://animal-suspect.com/forum/viewtopic.php?f=5&t=2"> Sa derniere bétise</a>' . $row['topic_id'] . '</a>:<br />'; echo substr($message, 0, 500) . '...<br /><br />'; }?>
celui-ci m'affiche: "voici le logo en question vous en pensez quoi ?Logo2.jpg...".

Comment correctement afficher ou appeler mes images ?
Cela fait plus d'une semaine que je suis dessus de 9h du mat à 3h du mat depuis 7 jours j'ai vu énormément de pages pour des explications mais ce n'est pas ce que je cherche.
Autant vous dire que je m'arrache les cheveux plus d'énorme migraine ... sérieusement je pense qu'a ça c'est horrible.

Need votre aide svp.

Merci beaucoup!

ViPHP
ViPHP | 2577 Messages

09 nov. 2012, 15:09

C'est du coté des développeurs de ton forum que tu devrais te tourner.

Il faut prendre modèle sur l'affichage des post dans le forum. Essayes de mettre error_reporting(E_ALL); avant ton traitement pour voir s'il ne manque pas des initialisations de variables pour le traitement des bbcode.

Eléphanteau du PHP | 16 Messages

09 nov. 2012, 15:50

Merci de m'avoir répondu!

Je me suis déjas tourné vers les développeurs du forum mais 5 messages 0 réponses.

tu es la première personne a me répondre sur les 5 forums 10 messages ^^.

j'ai mis le code ici

Code : Tout sélectionner

<?php error_reporting(E_ALL); $sql = 'SELECT post_text, post_subject, poster_id FROM ' . POSTS_TABLE . ' where forum_id = 5 ORDER BY post_time DESC LIMIT 3'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $bbcode_bitfield = base64_decode($row['bbcode_bitfield']); $bbcode = new bbcode(base64_encode($bbcode_bitfield)); // Parse the message and subject $message = censor_text($row['post_text']); // Second parse bbcode here if ($row['bbcode_bitfield']) { $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']); } $message = bbcode_nl2br($message); $message = smiley_text($message); echo 'Message posté dans<a href="http://animal-suspect.com/forum/viewtopic.php?f=5&t=2"> Sa derniere bétise</a>' . $row['topic_id'] . '</a>:<br />'; echo substr($message, 0, 500) . '...<br /><br />'; } ?>

depuis quand j'affiche mes news ça dit:


[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 160: Undefined index: bbcode_bitfield
[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 168: Undefined index: bbcode_bitfield
[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 176: Undefined index: topic_id
Message posté dans Sa derniere bétise:
test dossier test[attachment=0:30tiqsnx]Logo2.jpg[/attachment:30tiqsnx]...


[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 160: Undefined index: bbcode_bitfield
[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 168: Undefined index: bbcode_bitfield
[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 176: Undefined index: topic_id
Message posté dans Sa derniere bétise:
encore et tjrs[attachment=0:34f8zths]animal suspect 001.jpg[/attachment:34f8zths]...


[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 160: Undefined index: bbcode_bitfield
[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 168: Undefined index: bbcode_bitfield
[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 176: Undefined index: topic_id
Message posté dans Sa derniere bétise:
tjrs du test[attachment=0:160kxbqb]animalsuspectlogin.jpg[/attachment:160kxbqb]...

pour les 3 messages (les 3 ont des fichiers joints)



et si je le met dans le 2eme code ici:

Code : Tout sélectionner

<?php error_reporting(E_ALL); $sql = "SELECT t.topic_title, t.forum_id, t.topic_time, p.post_id, p.bbcode_bitfield, p.bbcode_uid, p.post_text FROM phpbb_posts p JOIN phpbb_topics t ON t.topic_id = p.topic_id WHERE t.forum_id=5 ORDER BY post_time DESC LIMIT 0 , 5"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $attachments = array(); if($row['post_attachment']) { $sql = 'SELECT * FROM ' . ATTACHMENTS_TABLE . ' WHERE post_msg_id=' . $row['post_id'] . ' AND in_message = 0 ORDER BY filetime DESC, post_msg_id ASC'; $result2 = $db->sql_query($sql); while($row2 = $db->sql_fetchrow($result2)) { $attachments[] = $row2; } } $bbcode_bitfield = base64_decode($row['bbcode_bitfield']); $bbcode = new bbcode(base64_encode($bbcode_bitfield)); // Parse the message and subject $message = censor_text($row['post_text']); // Second parse bbcode here if ($row['bbcode_bitfield']) { $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']); } $message = bbcode_nl2br($message); $message = smiley_text($message); echo 'Message posté dans<a href="http://animal-suspect.com/forum/viewtopic.php?f=5&t=2"> Sa derniere bétise</a>' . $row['topic_id'] . '</a>:<br />'; echo substr($message, 0, 500) . '...<br /><br />'; } ?>
j'obtien moins d'erreur mais quand même:

[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 169: Undefined index: post_attachment
[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 197: Undefined index: topic_id
Message posté dans Sa derniere bétise:
test dossier test
Logo2.jpg
...

[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 169: Undefined index: post_attachment
[phpBB Debug] PHP Notice: in file /homepages/26/d439821843/htdocs/index.php on line 197: Undefined index: topic_id
Message posté dans Sa derniere bétise:
encore et tjrs
animal suspect 001.jpg
...


ps: je sais pas si ça a avoir mais vous utilisé exactement le même système d envoie de pièces jointes on dirais au cas ou ça peut aider.

Merci encore pour votre aide

Cdt

ViPHP
ViPHP | 2577 Messages

09 nov. 2012, 16:58

Pour les index qui n'existe pas, il faudrait ajouter les colonnes dans le select : (topic_id, bbcode_uid, bbcode_bitfield, post_attachment)
(en fait voir les lignes correspondantes et lorsque ca vient de $row, c'est un manque du select)

Le fait que ces variables ne sont pas initialisées entraînent des erreurs, mais pas sur que ce soit suffisant.

Eléphanteau du PHP | 16 Messages

09 nov. 2012, 17:33

re,

Exact j'ai rajouté p.post_attachment et t.topic_id depuis plus d'erreurs mais les images s'affichent toujours comme ça:

Message posté dans Sa derniere bétise2: test dossier test
Logo2.jpg

... Message posté dans Sa derniere bétise2: encore et tjrs
animal suspect 001.jpg

... Message posté dans Sa derniere bétise2: tjrs du test
animalsuspectlogin.jpg

une idée de comment les appeler ?

Merci encore pour votre soutient :)

Eléphanteau du PHP | 16 Messages

10 nov. 2012, 16:58

voici ce que j'ai fait
       <?php
	       error_reporting(E_ALL);

$sql = 'SELECT post_text,post_attachment, topic_id, post_subject, bbcode_bitfield, post_id, bbcode_uid, poster_id FROM ' . POSTS_TABLE .  ' where forum_id = 5 ORDER BY post_time DESC LIMIT 3';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
$options = 7;
$text_news = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $options); 

{
   $bbcode_bitfield = base64_decode($row['bbcode_bitfield']);
   
   $bbcode = new bbcode(base64_encode($bbcode_bitfield));
   
   // Parse the message and subject
   $message = censor_text($row['post_text']);

   // Second parse bbcode here
   if ($row['bbcode_bitfield'])
   {
      $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
   }

   $message = bbcode_nl2br($message);
   $message = smiley_text($message);
   
   echo 'Message posté dans<a href="http://animal-suspect.com/forum/viewtopic.php?f=5&t=2"> Sa derniere bétise</a>' . $row['topic_id'] . '</a>:<br />';
   echo substr($message, 0, 500) . '...<br /><br />';
}
?>


mais toujours rien ne s'affiche je ne comprend pas d'ou vient l"erreur, suis pas fortish en plus en php : /

Eléphanteau du PHP | 16 Messages

11 nov. 2012, 00:25

re,

Je viens de farfouiller encore à fond le web et le site des développeurs de mon forum et je suis tomber sur un topic que j'avais dèjas vu mais j'ai voulu essayé le code contenu dedans qui est celui-ci:
http://code.empreintesduweb.com/2659.html.

Il me convient aussi mais ça n'affiche toujours pas les images qui sont toujours sous leur noms "animalsuspectlogin.jpg" voici le lien au cas ou http://animal-suspect.com/.

Il est donc impossible d'afficher les images uploadées par les membres contenues dans ce fichier forum/files ? (les fichiers sont codé et apparemment d’après ce qu'on m'a dit La correspondance nom_fichiers/nom_encodé est stocké dans la table phpbb_attachments. ca ne m'avance pas énormément car comme je l'ai dit dans un autre post je suis débutant dans tous ça et j'ai essayé énormément de choses rien n'y fait.

J'ai cherché dans plein d'endroit impossible de trouver une réponse :/.

Si quelqu'un peut m'help svp c'est mon dernier soucis avant que je puisse reprendre la construction de mon site.

Merci bcp à tous

frf2
Invité n'ayant pas de compte PHPfrance

11 nov. 2012, 03:45

Il faudrait montrer ton code html surtout la ou tu intègres les images!

Il faut que tu rajoutes le chemin et la balise <img> pour pouvoir afficher tes images ;)

voilà la partie du code qui se trouve dans le forum:
<div class="inline-attachment">
    <dt class="attach-image">
       <img src="./download/file.php?id=16" alt="animalsuspectlogin.jpg" onclick="viewableArea(this);">
    </dt>
</div>
et la partie de ta page animal-suspect.com :
<div class="inline-attachment">animalsuspectlogin.jpg</div>
Donc ton problème vient du chemin car tu es a la racine du server et que les images sont stocker dans ./forum/download/, voilà se que tu devrais avoir pour que l'image s'affiche comme il faut:
<div class="inline-attachment">
    <dt class="attach-image"> //pas obliger mais sa feras plus structurer
       <img src="./forum/download/file.php?id=16" alt="animalsuspectlogin.jpg" onclick="viewableArea(this);"> //ici regarde le chemin et biensur il faudra que modifier l'id par ta variable pour que les image soit cohérent...
    </dt>
</div>

Eléphanteau du PHP | 16 Messages

11 nov. 2012, 13:40

bonjour frfr2 et tou le monde :)

Je pense que tu n'a pas compris mon soucis.

Je souhaite appeler les images des derniers message contenu dans mon forum, pour quelles apparaissent sur ma pages d’accueil catégorie news.

Ne t'en fait pas pour mon code html qui va changer du tout au tout, ce que tu vois à présent sur la page n'est rien d'autre que pour du test.

De plus il me semble que tu appelles une image en particulier <img src="./download/file.php?id=16" alt="animalsuspectlogin.jpg" onclick="viewableArea(this);">.

Or quand les message vont changer j'ai besoin que les images se décale dans l'ordre des post_time et que la dernière apparaisse.

voici mon nouveau code : http://code.empreintesduweb.com/2664.html

voici le lien de mon site pour que vous voyez à quoi ça ressemble quand mon texte est appelé http://animal-suspect.com

si tu as une autre idée n'hésite pas ou si j'ai mal compris ton code aussi fait le moi savoir :)

En tout cas merci pour ton aide c'est gentil.

Cdt

Eléphanteau du PHP | 16 Messages

11 nov. 2012, 15:09

Je viens de regarder d'un peu plus prés et par rapport à ce que tu me dis j'en déduit que mon code php manque d'appel et du coup ca me donne ce code la.
Car si je le modifie à la main dans la page index effectivement l'image viens mais je veux que ce soit le php qui appelle l'image sinon je vais devoir faire çà a chaque nouveau message du sujet xD va falloir j'embauche un type qui le fasse limite lol.
Mais je pense qu'on est sur une piste la :)

Petit nouveau ! | 9 Messages

11 nov. 2012, 16:50

Bonjour,

Pour l'exemple que j'ai cité ci-dessus, c'étais pour te montrer un exemple avec cette image en particulier et enfaite il te faut juste modifié l'id par ta variable bbcode d'après se que j'ai vue dans ton code...

donc un truc du style:
$dir ='./forum/download/';
while ( $row = $db->sql_fetchrow($result) )
{
[.....]
echo '<img src="'.$dir.'file.php?id='.$variable.'"/>'; //biensur se n'es qu'un exemple, il te faudra utiliser les variables prédéfini de phpbb pour être tranquille.
   [.....]
N'ayant pas phpbb, difficile de tester mais peu être qu'un simple string_replace serais mieux...
Modifié en dernier par frf2 le 11 nov. 2012, 19:53, modifié 1 fois.

Eléphanteau du PHP | 16 Messages

11 nov. 2012, 17:05

Re frf2

Merci pour ton aide.
Par contre je dois mettre ce code ou svp ?

Je suis pas vraiment doué en php
Et pour les variable prédéfini de phpbb je les prend ou ? ^^

Dsl de t’embêter mais je pense que tu es sur la bonne voie donc je veux pas te lacher lol :)

Mais je ne sais pas ou mettre ton code

Cdt