Appeler du PHP dans une page HTML

WRInaute accro
Help !!!

J'en ai ras les bottes ! j'essaye de faire quelque chose qui me parait archi simple et je plante :?

voilà le problème : J'ai un forum... en PHP... j'ai préparé des pages... en PHP... qui affichent les derniers messages des différentes rubriques du forum... jusque là, tout va bien :wink:

Mais le problème commence quand je veux intégrer ces news sur d'autres pages en HTML
J'ai essayé de les placer dans une iframe... ça marche... sauf que le paramètre "height" n'est pas vraiment paramétrable...
Je m'explique, la hauteur de mon iframe peut varier en fonction des titres affichés par mon fichier news.php... je voudrais que la taille de cette fenêtre s'ajuste automatiquent selon la hauteur des news à afficher... mais la commande height=100% ne fonctionne pas :cry:

Quelqu'un aurait-il une idée ?... sachant que je ne dois pas changeren php la page qui recevra cette incude... et que je préfère éviter les ssi
 
WRInaute accro
Peut-être sortir le résultat sous forme d'une image et appeler une image php. Mais je pense que tu veux que les textes soient indexés.
Si quelqu'un à une solution je suis preneur aussi.
 
WRInaute passionné
Pour ton iframe, je sais pas, j'y touche pas :D
Mais par contre tu peux faire ça en Javascript :

Code:
<script type="text/javascript" src="ton_fichier.php"></script>

Et dans ton fichier PHP, il faudra générer du code Javascript pour écrire dans le fichier html (des document.write(), donc).

Du genre (exemple bateau) :

Code:
<?php
$var = 'Hello world !';
?>
document.write('<?php echo $var; ?>');

Mais bon, ça n'aidera pas Google à référencer les discussions (l'iframe non plus)

Fred
 
WRInaute accro
Quel cirque !!! j'ai cherché des tas de solutions possibles avec javascript... dans les forums... il y en a qui propose des trucs et les discussions n'en finissent pas parce qu'il y a toujours quelque chose qui cloche :?

à tout hasard... voilà le code de mes news :

<TABLE border=1 cellPadding=2 cellSpacing=0 width=120 bordercolor="#000000"><tr><td align=center bgcolor=#0000ff>
<b><font size=2 color=#ffffff>Actu Musique</font></td></tr><tr><td bgcolor=#f2f2f2>
<font size=2></b>
<?
//* $fid should be the forum number of the forum you wish to pull posts from*//
$fid = "5";
mysql_connect("localhost", "base", "password");
mysql_select_db("base");

$result = mysql_query("SELECT * FROM xmb_threads WHERE fid = '$fid' ORDER BY xmb_threads.lastpost DESC LIMIT 0,5");

while($row = mysql_fetch_array($result)) {
$row[subject] = stripslashes($row[subject]);
$row[subject] = substr ($row[subject], 0, 50);
$mem = explode("|", $row[lastpost]);
echo "<a href=\"http://www.americas-fr.com/forum/viewthread.php?tid=$row[tid]\" target=\"_top\">$row[subject]</a>...";

echo "<BR>";
}
?>
</font>
</td></tr></table>


où et comment je génère du javascript là dedans ? 8O
 
WRInaute passionné
tu laisse le code php mais tout ce que tu envoie au navigateur doit êre dans des document.write('ton texte');
 
WRInaute accro
tu remplaces tes echo par un truc de ce genre :

Code:
    echo "function affnews()	{\n";
    ECHO "document.write('<a href=\"http://www.americas-fr.com/forum/viewthread.php?tid=".$row[tid]."\" target=\"_top\">".$row[subject]."</a>');";
    echo "}\n";
et dans ta page html tu appelles la function javascript affnews
 
WRInaute accro
marche pas... le fichier news m'affiche le code function affnews() { document.write('Soirée Astor Piazzolla à Paris');} et la page html m'indique une erreur javascript :?
 
WRInaute accro
Americas a dit:
marche pas... le fichier news m'affiche le code function affnews() { document.write('Soirée Astor Piazzolla à Paris');} et la page html m'indique une erreur javascript :?

J'ai pas précisé mais la premiere ligne de mon code doit se trouver avant ta boucle while et la dernière ligne apres la boucle while, de façon à ce que la boucle génère les document.write relatifs à tes 5 derniers posts.

C'est peut-etre cela le problème. Tu as quoi dans ton code php ?

Et sur ta page html tu dois avoir cela :
<script type="text/javascript" language="javascript" src="tapagenews.php"></script>
<script type="text/javascript" language="javascript"><!--
affnews();
// -->
</script>

Mais j'ai pas testé moi-même ce code, j'en utilise un similaire alors celui-ci devrait marcher aussi.
 
WRInaute accro
c'est ce que j'avais fait...
Le code php est ce que j'ai posté plus haut... il n'y a rien de plus que ces quelques lignes pour afficher mes dernières news
 
WRInaute accro
ça c'était l'ancien code, mais celui avec les modifications pour écrire du javascript il ressemble à quoi ?
 
WRInaute passionné
Tout doit être affiché via document.write, hein...

Code:
document.write('<TABLE border="1" cellPadding="2" cellSpacing="0" width="120" bordercolor="#000000">\n<tr>\n<td align="center" bgcolor="#0000ff">\n');
document.write('<font size="2" color="#ffffff">Actu Musique</font></td>\n</tr>\n<tr>\n<td bgcolor="#f2f2f2">\n');
document.write('<font size="2">');
<?php
//* $fid should be the forum number of the forum you wish to pull posts from*//
$fid = "5";
mysql_connect("localhost", "base", "password");
mysql_select_db("base");

$result = mysql_query("SELECT * FROM xmb_threads WHERE fid = '$fid' ORDER BY xmb_threads.lastpost DESC LIMIT 0,5");

while($row = mysql_fetch_array($result)) {
$row['subject'] = stripslashes($row['subject']);
$row['subject'] = substr ($row['subject'], 0, 50);
$mem = explode("|", $row['lastpost']);
?>
document.write('<a href="http://www.americas-fr.com/forum/viewthread.php?tid=<?php echo $row['tid']; ?>" target="_top"><?php echo $row['subject']; ?></a>\n');
<?php
}
?>
document.write('</font>\n');
document.write('</td></tr></table>\n');

Dis donc... tu comptes passer aux CSS, un jour ? :D La balise font est dépréciée depuis des lustres. ;) Et en plus ça fait un code tout moche.

(bon, le code ci-dessus n'est pas garanti à 100%, hein, j'ai pu oublier un guillemet ou un point-virgule...)

Fred
 
WRInaute accro
pourquoi tout écrire en document.write ?
Si il fait une table en html sur sa page d'accueil et qu'il appelle la fonction javascript à l'intérieur d'une cellule, ça devrait le faire, non ?
 
WRInaute passionné
indigene a dit:
pourquoi tout écrire en document.write ?
Si il fait une table en html sur sa page d'accueil et qu'il appelle la fonction javascript à l'intérieur d'une cellule, ça devrait le faire, non ?

Ah ben oui, bien sûr. C'est juste que tout ce qu'il met dans son fichier php doit être écrit avec des document.write(). Après à lui de voir ce qu'il veut mettre en dur et dans le fichier.

Bon, par contre, si on considère les déjà célèbres 15% d'internautes qui ont désactivé le JS, ils verront la table, mais elle sera vide, pour eux. En affichant la table aussi en Javascript, ils ne verront rien, c'est peut-être mieux.

Fred
 
WRInaute accro
Mais ça risque de casser la mise en page. Alors que si la table s'affiche toujours dans toutes les conditions qu'il ait désactivé ou non javascript ne changera rien à la mise en page.
 
WRInaute impliqué
Solution optimale:

faire de ta page html une page php (changement que tu camoufleras avec du rewriting),
et apres: include

est-ce clair ?
 
WRInaute passionné
berberber a dit:
Solution optimale:

faire de ta page html une page php (changement que tu camoufleras avec du rewriting),
et apres: include

est-ce clair ?

Ah ben oui, là y'a pas photo.. Mais apparemment il dit qu'il ne peut pas.

Fred
 
WRInaute impliqué
ah bon, j'avais pas compris, désolé pour la réponse bête,

mais coté référencement, elle est aux normes, au moins
 
WRInaute passionné
Pourquoi ne pas laisser une page en php.
Ce forum est en php non
un coup l'url rewrite et il est en html
Sinon voir si le serveur parse du html
 
WRInaute accro
webcrea a dit:
Pourquoi ne pas utiliser l'iframe (pris en compte par google) avec un ascenceur ?

J'ai 3 navigateurs et aucun ne prend en compte les iframes de la même façon.

Je suis comme george abitbol, j'y touche pas !

Et un ascenceur au milieur de la page c'est pas vraiment esthétique. La meilleure solution semble vraiment etre la page en php
 
WRInaute accro
J'ai fait un essai... ça m'affiche toujours des erreurs de script... bref... je jetterai un coup d'oeil demain... là, je ne vois plus très clair :roll:

En tout cas merci Fred pour le code... quand j'arriverais à le coller correctement je te ferai signe... mais en ce moment j'ai l'air d'une brele avec ce truc qui semble si con :roll:

Et pour ceux qui me parle de renommer la page en php... j'ai déjà dit qu'il n'en était pas question... premièrement parce que je ne veux pas toucher à une aussi belle stucture apréciée par Google :lol: ... et deuxièmement parce que je voudrais pouvoir implémenter la rubrique de news sur d'autres sites qu'ils soient en php ou en html.

Quant à Free... n'en parlons même pas... vu la lenteur, je n'ose même pas ouvrir un compte chez eux pour héberger toutes les photos que je dois encore placer sur mon site :lol:
 
WRInaute passionné
Americas a dit:
En tout cas merci Fred pour le code... quand j'arriverais à le coller correctement je te ferai signe... mais en ce moment j'ai l'air d'une brele avec ce truc qui semble si con :roll:

Fais voir le code du fichier PHP inclus. Ou alors donne l'url.

Fred
 
WRInaute impliqué
Moi j'ai un truc du genre :

Code:
<script language="javascript" type="text/javascript">
<!--
  document.write('<script language="php" src="monprog.php?'parm=abcdefg +'">');
  document.write('</script>');
//-->
</script>

qui marche tres bien dans une page html :D , meme sur FREE :wink:
 
WRInaute accro
Le code n'a pas changé... c'est toujours le même... ça m'emmerde tellement ce truc que je me suis dit que j'avais d'autres choses à faire plus pressantes...

pour l'instant... j'utilise une iframe sur h++p://www.americas-fr.com/musique/musique.html

Code:
<TABLE border=1 cellPadding=2 cellSpacing=0 width=120 bordercolor="#000000"><tr><td align=center bgcolor=#0000ff> 
<font size=2 color=#ffffff>Actu Musique</font></td></tr><tr><td bgcolor=#f2f2f2> 
<font size=2> 
<? 
//* $fid should be the forum number of the forum you wish to pull posts from*// 
$fid = "5"; 
mysql_connect("localhost", "base", "password"); 
mysql_select_db("base"); 

$result = mysql_query("SELECT * FROM xmb_threads WHERE fid = '$fid' ORDER BY xmb_threads.lastpost DESC LIMIT 0,5"); 

while($row = mysql_fetch_array($result)) { 
$row[subject] = stripslashes($row[subject]); 
$row[subject] = substr ($row[subject], 0, 50); 
$mem = explode("|", $row[lastpost]); 
echo "<a href=\"http://www.americas-fr.com/forum/viewthread.php?tid=$row[tid]\" target=\"_top\">$row[subject]</a>..."; 

echo "
"; 
} 
?> 
</font> 
</td></tr></table>
C'est le code qui s'affiche quand j'appelle le fichier latest.php dans l'iframe

Code:
<iframe align=top width=120 height=210 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no src='http://www.americas-fr.com/forum/latest.php'></iframe>
J'ai du fixer height à 210 car la variable 100 % me tronque le bas de la frame :?

merde... je ne voulais pas qu'elle s'affiche ici cette bestiole !!!

Code:
[iframe align=top width=120 height=210 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no src='http://www.americas-fr.com/forum/latest.php'][/iframe]
 
WRInaute accro
Quand la route est ensanglantée il faut savoir prendre le petit chemin boueux

Si tu es obligé de donner une taille fixe à ta frame et que ton texte à l'intérieur de ta frame risque d'être coupé, il suffit de faire défiler ton texte à l'intérieur de la frame

-http://www.indigene.free.fr/Copieindex.html

L' iframe du milieu à la place du l'image pourrait te convenir peut-être.

C'est cool ce truc, je vais l'utiliser :D


PS : j'ai pas testé sous IE mais sous mozilla ça fonctionne impec
 
WRInaute accro
Et il y a même des sites qui collent mon bandeau sur leurs pages :lol: et avec un joli lien direct en dessous :mrgreen:
http://www.vivance.ch/poemes/

Merci Americas pour ton script :D

WRI devrait faire une iframe aussi, qu'on puisse tous mettre sur nos sites l'iframe des derniers sujets sur le forum de WRI :idea:
 
WRInaute accro
mahefarivony a dit:
le feed rss est plus élégant

:cry: :cry: :cry:
Je viens de voir comme Ie a rendu mon iframe :cry: :cry: :cry:
Elle est HORIBLE avec IE
Tout est décallé
Il y a du blanc autour
Le calque chevauche le titre
Le calque est décallé à gauche.

Mais pourquoi les gens utilisent encore cette daube ?

Comment faire pour que ça marche aussi sous IE ?

Il faut tout refaire en double après détection du navigateur ? On en est revenu à l'époque de la guerre entre IE et Netscape ?
Mais c'est quoi ce box ? :evil:

Dites-moi que c'est seulement mon IE qui est vérolé et que ça marche chez vous. :?
 
WRInaute accro
Ben il faut faire quelque chose et rapidement. Je suis dans la m.....
Ceux qui ont collé ça sur leur site ne doivent pas utiliser IE
C'est bien le forum "aide au webmaster" ici ?

Je résultat correct est celui-ci :
hardcopie.jpg


Comment lui faire comprendre à IE qu'il faut qu'il affiche ça ?

HELP !!!
 
WRInaute accro
cherchez plus j'ai trouvé.
Au passage j'ai compris l'utilité des marginwidth=0 marginheight=0 hspace=0 vspace=0 mais c'était pas encore suffisant.
 
WRInaute passionné
Bonjour,

Americas a dit:
indigene a dit:
On en est revenu à l'époque de la guerre entre IE et Netscape ?

effectivement ! IE : 95% les autres 5 % je n'ose même pas mentionner le pourcentage de mozilla :lol: :lol: :lol:

Oui, malheureusement quand on sait comment IE respecte les spécifications du W3C (alors que des représentants de Microsoft ont toujoujours fait partie du consortium...)

Mais quand on achète un PC, dans la majorité des cas, on l'achète avec Windows et IE. Et la plupart des internautes ne savent même pas qu'il existe d'autres possibilités.
Et pourtant, Mozilla ne cesse d'évoluer alors que IE n'a plus changé depuis 2001 (à part les corrections des failles de sécurité !) et n'aura pas de nouvelle version avant 2006 !
Plus grave encore, cette version ne sera plus disponible séparément mais uniquement avec la future version de Windows... :evil:

Amicalement,
Monique
 
WRInaute accro
Pour Unix ou Linux... sans doute... mais si tu cherches un équivalent à IE sous windows... tu vas avoir du mal à trouver l'équivalent.

On a beau critiquer Microsoft... mais c'est lui qui nous équipe pratiquement tous... alors autant s'adapter au navigateur utilisé par le plus grand nombre.

Et je serais même tenté de dire... heureusement que la guerre entre IE et netscape soit finie... car il y a quelques temps, j'en avais un peu ras la casquette de vérifier que mon travail convienne aux 2 navigateurs :lol:
 
Nouveau WRInaute
je te conseil de mettre un fichier txt avec toutes tes news dedan
mais tu peut mettre un fichier php comme tu veut
modifi fichier.format

<IFRAME marginWidth=2 marginHeight=0 src="fichier.format" frameBorder=0 width=199 scrolling=yes height=216 name="I1" target="_blank" style="border: 1px dotted #45799C" align="right">
</IFRAME>

merci !
 
Discussions similaires
Haut