OVH Cloud OVH Cloud

PHP et Javascript

9 réponses
Avatar
phpounch
Bonjour,

J'essaye ceci:
<body>
<script language="JavaScript" src="js/scripts.js.php"></script>
...
</body>

et dans le script "scripts.js.php" j'ai ceci
<?php
quelques lignes de code
?>
<script>
...
// mes fonctions jscript
</script>

Le probleme est que je n'arrive pas à ce que les fonctions jscript soient
accessibles! J'ai essayé plein de manières différentes mais sans résultat.

Quelqu'un a une idée?
Merci
Dams

9 réponses

Avatar
Paul Delannoy
phpounch a écrit:
Bonjour,

J'essaye ceci:
<body>
<script language="JavaScript" src="js/scripts.js.php"></script>
...
</body>

et dans le script "scripts.js.php" j'ai ceci
<?php
quelques lignes de code
?>
<script>
...
// mes fonctions jscript
</script>

Le probleme est que je n'arrive pas à ce que les fonctions jscript soient
accessibles! J'ai essayé plein de manières différentes mais sans résultat.

Quelqu'un a une idée?


La réponse est dans la question : la paire de balises (sic)
<script></script> *DOIT* être à l'intérieur de <body></body> ou de
<head></head> ce qui ne doit pas être le cas de ta page générée...

Avatar
Sam
"Paul Delannoy" a écrit
La réponse est dans la question : la paire de balises (sic)
<script></script> *DOIT* être à l'intérieur de <body></body> ou de
<head></head> ce qui ne doit pas être le cas de ta page générée...


ba, dans son exemple il l'a placé entre <body> et </body>...
Le probleme est donc le suivant : Ton fichier js ne doit contenir QUE du
javascript. Pas d'html, donc pas de <script></script>...
De la même façon, tes traitements php devront renvoyer du JavaScript. Bon
courage pour les quote ;-)

@ vérifier, ce que renvoi le fichier "js/scripts.js.php" quand tu l'appelles
directement.

Avatar
Ced
salut

je ne comprends pas bien comment tu peux faire exécuter du php dans du
javascript si ce n'est en le faisant réécrire par javascript...qui
s'exécute, et je demande l'aide des newsgroupers, après le php???

Que veux tu faire en fait?

A +

"phpounch" a écrit dans le message de news:
40a38a08$0$27672$
Bonjour,

J'essaye ceci:
<body>
<script language="JavaScript" src="js/scripts.js.php"></script>
...
</body>

et dans le script "scripts.js.php" j'ai ceci
<?php
quelques lignes de code
?>
<script>
...
// mes fonctions jscript
</script>

Le probleme est que je n'arrive pas à ce que les fonctions jscript soient
accessibles! J'ai essayé plein de manières différentes mais sans résultat.

Quelqu'un a une idée?
Merci
Dams


Avatar
Akades
phpounch wrote:

Bonjour,



Bonjour,

Oui, et pour cause c'est le navigateur qui reconnait l'extension JS et
traite le fichier comme du JavaScript. Es-tu sûr de devoir employer cette
méthode pour interagir entre le côté client et le côté serveur ? Tu devrais
plutot écrire des JS classiques, et si besoin est, ajouter du code JS à la
volée dans le JS appelé.

Pour ma part j'utilise une variable session nommée Javascript, que
j'alimente selon le traitement. Puis j'inscris son contenu en bas de page
après le traitement du code PHP.

Ex:

<body>
... du code HTML
<?
$js="";
if(!$tout_va_bien) {
$js="alert("Quelque s'est mal passé")";
}
$_SESSION["javascript"].=$js;

?>
... du code HTML
<script language="JavaScript">
<?
echo $_SESSION["javascript"];
?>
</script>
</body>

On peut aussi le faire avec un fichier mais c'est plus lent a priori.

@++

David

Avatar
G Roydor
php => sur serveur
javascript => sur client
mais pas les deux
GR

phpounch a écrit:
Bonjour,

J'essaye ceci:
<body>
<script language="JavaScript" src="js/scripts.js.php"></script>
...
</body>

et dans le script "scripts.js.php" j'ai ceci
<?php
quelques lignes de code
?>
<script>
...
// mes fonctions jscript
</script>

Le probleme est que je n'arrive pas à ce que les fonctions jscript soient
accessibles! J'ai essayé plein de manières différentes mais sans résultat.

Quelqu'un a une idée?
Merci
Dams


Avatar
Antoun
Je viens de faire le test, le serveur n'interprète pas le PHP dans une
page appellée par <script src=...>

la seule façon de t'en sortir c'est
<script>
<?php require() ; ?>
</script>

ce qui t'impose de renommer ta page en .php, à moins de bidouiller les
directives Apache ou de feinter avec des SSI...
Avatar
phpounch
Sam wrote:

... Bon
courage pour les quote ;-)


Jusque là, je n'ai eu aucune erreur apparente pour les quotes ... enfin
rien n'a encore vraiment fonctionné :op

@ vérifier, ce que renvoi le fichier "js/scripts.js.php" quand tu l'appelles
directement.


*NORMALEMENT* il devrait retourner le contenu du fichier php ...
en fait, le truc c'est d'ecrire comme premiere ligne de code, une
condition qui vérifie qu'on n'a pas essayé d'appeler le fichier pour
l'ouvrir directement par le navigateur. J'ai donc qqch comme ça:

<?php

if (eregi("nom_fichier.ext", $PHP_SELF))
header("Location: somewhere");

/* Le reste */
?>

Ca doit fonctionner, certains sites le font mais comment? J'essaye de
comprendre.

Voilà.
Thx

Avatar
phpounch
Ok ok mais j'avais deja vu cette technique pour eviter qu'on ne vienne
chipoter dans mes fichiers js ... enfin c'est surtout car j'ai une url
qui est affichée avec les params à entrer et ça je n'aime pas.

Donc si qqn a une solution concrete et qui fonctionne pour "cacher" des
fichiers (js, css, ...) grace à php, je suis preneur.

Merci ;-)

G Roydor wrote:
php => sur serveur
javascript => sur client
mais pas les deux
GR


Avatar
Leonick
"phpounch" a écrit dans le message de
news:40ab128b$0$10207$
Ok ok mais j'avais deja vu cette technique pour eviter qu'on ne vienne
chipoter dans mes fichiers js ... enfin c'est surtout car j'ai une url
qui est affichée avec les params à entrer et ça je n'aime pas.

Donc si qqn a une solution concrete et qui fonctionne pour "cacher" des
fichiers (js, css, ...) grace à php, je suis preneur.

Merci ;-)

En fait, on ne peut pas "cacher" les fichier JS et CSS.

Comme tu appelles le fichier avec la balise <javascript>, il faut que dans ton
JS, il n'y ait ques des ordre javascript, une fois PHP exécuté.
C'est ce que je fais sur mon site, de manière à avoir des menus javascript qui
dépendent du niveau d'accessibilité.
Donc dans mon menu.php, appelé par :
<SCRIPT language=JavaScript src="menus.php" type=text/javascript></SCRIPT>
j'ai des
document.write('... dans la partie normale et dans celle PHP
<?
...
echo "document.write('
...
?>

Leonick
http://bike-in-ventoux.champignytriathlon.org les photos et le récit de 1000 km
en vélo autour du Mont Ventoux