Un fichier PHP dans une page HTML

Nouveau WRInaute
Bonjour, Prière de m'informer sur la marche à suivre pour mettre une page PHP dans une autre HTML..
j'ai essayé avec

Code:
<script language=JavaScript src=http://site.com/page.php?name&ad=1&dec=0&av=1></script>

mais ca marchait pas.
La page en php contien des variables.

Merci
 
WRInaute passionné
Il faut que ton serveur ait instruction de passer les pages avec extension .htm ou .html par le parser PHP. Par défaut, ce n'est pas le cas.

Dans ce cas, tu mets dans ton code HTML :
Code:
<?php
include("mapage.php);
?>
 
WRInaute discret
Bonjour,

1) Dans un fichier HTLM, il est possible d'inclure un document en appelant un document (ou instructions) Javascript par la balise que vous décrivez.

2) Il faut que le document appelé soit rédigé en javaScript (JS) avec des instructions de type "write", etc., pour faire apparaître des données dans le document HTLM.

3) Il est possible de construire dynamiquement un document JS avec PHP, asp, cfm, etc. L'appel du fichier est identique (cf. votre ligne).

4) Une construction JS, exécutée côté client, ne verra jamais son contenu indexé par Google.

Bien à vous,

Serge
 
Nouveau WRInaute
voici les changements que j'ai fait :

Code:
document.write('<body bgcolor=#$_GET[bg]><font face=Verdana size=2 color=#$_GET[f]><font face=Verdana size=2><b>"     . $v_City     . "</b></font>\n');
document.write('<font face=Verdana size=1><br>"  . $v_Country  . " [ <a href=../../modules.php?name=Meteo&file=details&accid=$_GET[acid] target=_blank>Détails</a> ]\n');
document.write('<br>\n');
document.write('

<table  border=0 cellpadding=0 cellspacing=0 bordercolor=#111111 width=10%>
  <tr>
    <td width=50%><img src=\"i/". $v_CIcon . ".gif\"></td>
    <td width=50%>   <font face=Verdana size=1>".$v_Text[$v_CIcon]."</font></td>
  </tr>
</table>');
document.write('<font face=vardana><b>Température: </b>" . ConvTemp($v_Temp, $tp) . "<br>\n');
document.write('<font face=Verdana size=1><b>Humidité:</b> "    . $v_Humid    . "%<br>\n');
document.write('<font face=Verdana size=1><b>Baromètre: </b>"     . $v_Baro     . "<br>\n');
document.write('<font face=Verdana size=1><b>Vent: </b>"     . $v_WindD    . " \n');
document.write('<font face=Verdana size=1><b>at</b> "    . $v_WindS    . "mph<br>\n');
document.write('<font face=Verdana size=1><b>Real Feel:</b> "     . $v_Real     . "&deg;<br>\n');
document.write('<font face=Verdana size=1><b>UV:</b> "       . $v_UV       . "<br>\n');
document.write('<font face=Verdana size=1><b>Visibilité:</b> "      . $v_Vis      . "<br>\n');

document.write('</font>\n');
function ConvTemp($number,$tp) {
	$number *= 1;
	if ($tp == "C") {
		$number = $number-32;
		$number = $number * 5;
		$number = $number / 9;
		$number = round ($number);
		return "$number&deg;C";
	}
	else {
		return "$number&deg;F";
	}
}

  fclose($fa);
//}

?>

mais, j'ai des erreurs de javascript dans la page !
 
WRInaute impliqué
salut

je ne sais pas si c'est ce que tu cherches mais j'ai un truc artisanal pour renvoyer un script php sur une page .html

déjà, écris ton script php de manière à ce qu'il renvoie du javascript dans une variable php.

Ex.: $contenu="document.write('<table....ici ton HTML dynamique')";

Le mieux à mon avis c'est de créer une table HTML de dimensions fixes.

ainsi, tu peux passer des variables de 2 manières:

en javascript et en php:
Ex.:
<script.....>
// Largeur du tableau (défaut: 120px)
wanted_width=0
</script>
<script src="poypoy.php?VARIABLE_PHP=X....">

Pense à bien mettre les "".

Ensuite dans ton fichier php sauvegarde la variable php $contenu dans un fichier cache sur ton serveur.

Ex.:
<?
$a=fopen("cache.js","w");
fputs ($a,$contenu);
fclose($a);
?>

Ensuite à la fin de ton fichier php tu fais une redirection:
<?
header ("Location: cache.js");
?>

Et là, miracle....
C'est calé, le résultat de ton fichier php s'affiche dans ta page .html

Si tu veux tu peux voir un exemple de ce que ça donne sur cette page:
-http://lexeek.plevsi.com/avis-de-recherche/1/
et la suivante pour le code javascript expliqué

Pour me remercier tu n'as qu'à me faire un lien sur ton site ;)
 
WRInaute passionné
On récapitule.
Dans une page HTML, il ne doit y avoir que du code HTML.
Dans un script PHP, il ne peut y avoir que du code PHP.
Dans un script Javascript, il ne peut y avoir que du code Javascript.

C'est quand même pas trop compliqué.

MAIS
Avec document.write() qui est une fonction javascript, un script javascript peut écrire du HTML.
avec echo() qui est une fonction PHP, tu vas pouvoir renvoyer au navigateur du code Javascript, qui va à son tour écrire du code HTML.

DONC
exemple à mettre dans le fichier php :
Code:
echo(
	"document.write(
		'<b>Hello World</b>'
		);"
	);

Edit :
Bon, on n'est pas loin du compte avec la solution proposée juste au-dessus.
Sauf que ce n'est pas la peine de créer un fichier cache et de faire une redirection... Il suffit de faire echo($a); à la fin, c'est nettement plus simple :wink:
 
WRInaute discret
Je dirai même plus ! Cette pratique est idéale pour appeler un parser RSS qui crache du JS pour une implémentation dans un Blog ;-)

Bien à tous
 
Nouveau WRInaute
Donc le code suivant
Code:
  print "<body bgcolor=#$_GET[bg]><font face=Verdana size=2 color=#$_GET[f]><font face=Verdana size=2><b>"     . $v_City     . "</b></font>\n";

sera
Code:
print "document.write('<body bgcolor=#$_GET[bg]><font face=Verdana size=2 color=#$_GET[f]><font face=Verdana size=2><b>"     . $v_City     . "</b></font>')";
 
Nouveau WRInaute
j'ai emplacé ce code dans le fichier php

Code:
  print "<body bgcolor=#$_GET[bg]><font face=Verdana size=2 color=#$_GET[f]><font face=Verdana size=2><b>"     . $v_City     . "</b></font>\n";

Par celui là
Code:
print "document.write('<body bgcolor=#$_GET[bg]><font face=Verdana size=2 color=#$_GET[f]><font 
face=Verdana size=2><b>"     . $v_City     . "</b></font>')";

et j'ai appellé la page html qui contient le javascript :

Code:
<script language="JavaScript" src="http://boujdournet.online.fr/boujdour/modules/Meteo/meteo1.php?tp=C&acid=MOXX0022&bg=FFFFFF"></script>

mais toujours rien .. erreur de javascript !
 
WRInaute passionné
Code:
document.write('Agadir Al Massira')document.write('
Morocco [ Détails ] ')document.write('
')document.write('
	Peu nuageux
')document.write('Température: 27°C
')document.write('Humidité: 61%
')document.write('Baromètre: 29.94
')document.write('Vent: W ')document.write('at 12mph
')document.write('Real Feel: 83°
')document.write('UV: 10
')document.write('Visibilité: 4.97
')document.write(' ')
On sépare les instructions par un point-virgule en Javascript... le navigateur ne peut pas se repérer tout seul dans cette soupe de code ;)
 
Nouveau WRInaute
j'ai remplacé print "<br>\n"; par print "document.write('<br>\n')";

j'ai mis le point-virgule !

Prière de m'informer sur le probleme.
 
WRInaute passionné
Je répète :
On sépare les instructions par un point-virgule en Javascript...

Code:
document.write('<br>\n')
tu vois un point virgule là ?
 
WRInaute occasionnel
print "document.write('<br>');\n";

Il faut un ; à la fin de document.write (après la parenthèse) et un autre à la fin de ton print.
 
WRInaute impliqué
Dj_Apx a dit:
Bon, on n'est pas loin du compte avec la solution proposée juste au-dessus.
Sauf que ce n'est pas la peine de créer un fichier cache et de faire une redirection... Il suffit de faire echo($a); à la fin, c'est nettement plus simple :wink:

En effet Dj_Apx
Bien sûr !
Je dis cela car ce genre d'appels s'ils sont extérieurs et nombreux consomment des ressources serveurs et ralentissent le chargement des pages.
Avec un peu d'imagination et un petit "if", on peut tester l'existence d'un fichier cache récent et produit avec les mêmes variables => on l'affiche directement sans passer par la case php-requêtes-bdd et hop! économie.

J'applique ce système pour les partenariats (+ un vrai lien html bien sûr !) et par conséquent chaque chargement de page partenaire provoquait une requête de mon côté: c'est ingérable, à la fin mon site ramait... j'en ai déduit cette solution.
C'est un peu le système rss mais pour ceux qui veulent contrôler l'affichage sur les sites qui ont syndiqué le leur.

Comme ça si je change de logo ou de police par ex., ça se répercute immédiatement partout.

Un seul inconvénient: le code à insérer chez le partenaire est assez long car il dispose de variables paramétrables pour coller au design du site.

Ex.: Pour ce qui me concerne ça donne ça:

<script type="text/javascript">
/* Vous pouvez changer ces valeurs pour les adapter à votre site */
/* Si vous ne modifiez rien, des valeurs par défaut s'appliqueront */
// Largeur du tableau (défaut: 120px)
wanted_width=0
// Police de caractères (défaut: arial)
wanted_font=""
// Taille des caractères en pts (défaut: 9)
wanted_font_size=0
// Couleur du fond (défaut: #FFFFFF)
wanted_color_bg=""
// Couleur de la bordure (défaut: #FFFFFF)
wanted_color_border=""
// Couleur de la bordure intérieure (défaut: #407AB6)
wanted_color_border_in=""
// Couleur du texte du titre (défaut: #407AB6)
wanted_color_text=""
// Couleur de fond du titre (défaut: #407AB6)
wanted_color_title_bg=""
// Couleur des liens (défaut: #FFFFFF)
wanted_color_link=""
// Sans objet
wanted_color_url=""
</script>
<script type="text/javascript" src="http://lexeek.plevsi.com/wanted.php?nb_docs=2">
// La variable nb_docs ci-dessus correspond au nombres d'avis de recherche à afficher.
// Vous pouvez la modifier de 1 à 10.
// La valeur par défaut est de 2.
</script>
<a style="font-weight:bold;font-family:arial;color:#407AB6;font-size:8pt" href="http://lexeek.plevsi.com/" title="Lexeek - Recherche juridique, échange de documents">Lexeek</a>

Je dis rien mais si vous voulez tester sur vos sites.... hum j'ai rien dit :twisted: .........

EDIT: c'est moi ou tu as changé de pseudo, perso ?
alors pour ce lien, c'est ok ? 8O
 
WRInaute impliqué
Voilà l'erreur:

"ligne 2
caractère 281
constante chaîne non terminée"

c'est pour le script résultat en js (et non le script php).

tu devrais mettre des sauts de lignes pour t'y retrouver.


perso a dit:
serieusement, j'ai rien compris, des reponses hors sujets.

puisqu'on y est, si tu ne trouves pas ton bonheur, perso, tu n'as qu'à ouvrir les pages jaunes à la rubrique "développeurs javascript" (si ça existe....).

parfois je ne reçois pas non plus le travail tout fait quand je poste une question. dans ces cas là à ceux qui m'ont répondu je dis "merci pour le coup de main", c'est-à-dire exactement la même chose que quand je reçois une réponse précise.

Surtout que nous t'avons donné la solution exacte à ton problème.
 
WRInaute impliqué
Voilà ton code résultat tel quel:

<script>
document.write('<body bgcolor=#FFFFFF><font face=Verdana size=2 color=#><font face=Verdana size=2><b>Agadir Al Massira</b></font>');document.write('<font face=Verdana size=1><br>Morocco [ <a href=../../modules.php?name=Meteo&file=details&accid=MOXX0022 target=_blank>Détails</a> ]ICI UN SAUT DE LIGNE EN TROP
');document.write('<br>ICI UN SAUT DE LIGNE EN TROP
');document.write('ICI UN SAUT DE LIGNE EN TROP
ICI UN SAUT DE LIGNE EN TROP
<table border=0 cellpadding=0 cellspacing=0 bordercolor=#111111 width=10%>
<tr>
<td width=50%><img src="i/32.gif"></td>
<td width=50%> <font face=Verdana size=1>Ensoleillé</font></td>
</tr>
</table>');document.write('<font face=vardana><b>Température: </b>27°C<br>
');document.write('<font face=Verdana size=1><b>Humidité:</b> 58%<br>
');document.write('<font face=Verdana size=1><b>Baromètre: </b>29.88<br>
');document.write('<font face=Verdana size=1><b>Vent: </b>W
');document.write('<font face=Verdana size=1><b>at</b> 14mph<br>
');document.write('<font face=Verdana size=1><b>Real Feel:</b> 82°<br>
');document.write('<font face=Verdana size=1><b>UV:</b> 7<br>
');document.write('<font face=Verdana size=1><b>Visibilité:</b> 4.97<br>
');document.write('</font>
');
</script>



Je te l'ai commenté avec les erreurs.
Je n'ai pas tagué tous les sauts de ligne en trop, il y en a trop.

Voilà ton code corrigé:

<script>
document.write('<body bgcolor=#FFFFFF><font face=Verdana size=2 color=#><font face=Verdana size=2><b>Agadir Al Massira</b></font>');document.write('<font face=Verdana size=1><br>Morocco [ <a href=../../modules.php?name=Meteo&file=details&accid=MOXX0022 target=_blank>Détails</a> ]');document.write('<br>');document.write('<table border=0 cellpadding=0 cellspacing=0 bordercolor=#111111 width=10%><tr><td width=50%><img src="i/32.gif"></td> <td width=50%> <font face=Verdana size=1>Ensoleillé</font></td></tr></table>');document.write('<font face=vardana><b>Température: </b>27°C<br>');document.write('<font face=Verdana size=1><b>Humidité:</b> 58%<br>');document.write('<font face=Verdana size=1><b>Baromètre: </b>29.88<br>');document.write('<font face=Verdana size=1><b>Vent: </b>W');document.write('<font face=Verdana size=1><b>at</b> 14mph<br>');document.write('<font face=Verdana size=1><b>Real Feel:</b> 82°<br>');document.write('<font face=Verdana size=1><b>UV:</b> 7<br>');document.write('<font face=Verdana size=1><b>Visibilité:</b> 4.97<br>');document.write('</font>');
</script>

Je pense que le problème vient des \n (sauts de ligne) placés à l'intérieur des instructions au lieu d'être placés entre les instructions.

Pour le lien sur ta page c'est quand tu veux
 
Discussions similaires
Haut