Script générant du JS => accès à $_GET de la page appelante ? - PHP - Programmation
Marsh Posté le 05-03-2012 à 17:21:19
Que contient le fichier "confirm.php" ?
Si ça contient du code PHP, alors ça ne va pas, car ce n'est pas cohérent avec la balise <script language="JavaScript" ... et car le PHP tourne sur le serveur, alors que le javascript tourne sur le poste client.
Si ça contient du code Javascript, alors ça va, car c'est cohérent avec la balise <script language="JavaScript" ...
Du côté du serveur, en PHP, les paramètres Get sont disponibles dans $_GET
Du côté du client, en Javascript, les paramètres Get peuvent être obtenus en découpant l'URL.
Par exemple avec la fonction :
function getParamValue (sURL, Param, Default) |
Edit : Ou avec :
function GetParam(name) |
Marsh Posté le 05-03-2012 à 19:13:32
confirm.php contient du PHP qui imprime du JS, des traitements de données et des lignes echo "document.write('blablabla');\n";
Je maîtrise assez bien la différence entre PHP et JS en fait... :-)
Et ce dont j'ai besoin, c'est bien d'avoir dans les données PHP le contenu de l'URL de la page qui inclut le JS. Donc pas dans $_GET puisque pas possible d'avoir directement l'appel à confirm.php?pid=xxx
Des idées ?
Marsh Posté le 06-03-2012 à 00:22:57
Ben tu passes ce Pid dans l'appel à ton script.
Ce que je ne comprend pas c'est ton besoin de générer du JS depuis PHP.
Tu aurais codé un webservice avec ensuite fait un petit bout de code ajax ça aurait été bien plus propre.
Marsh Posté le 06-03-2012 à 00:53:49
Je n'ai pas accès à l'appel du script.
Mon besoin c'est comme si je mettais du PHP dans WordPress.
Et j'parle pas ajax :-(
Marsh Posté le 06-03-2012 à 10:35:23
sophievm a écrit : confirm.php contient du PHP ... |
Alors, ça ne peut pas marcher.
Donc, stop, on ne va pas plus loin, ça ne sert à rien.
Le src est résolu sur le poste client, pas sur le serveur.
C'est la confusion habituelle des débutants.
Il y a une partie serveur, et une partie client. Elles sont différentes.
On ne peut pas faire tourner du PHP sur le poste client (sauf exception, par exemple, si ce poste client est aussi un serveur, ce qui arrive parfois en développement, mais ce qui est exceptionnel).
Et inversement, on ne peut pas faire tourner de javascript sur le poste serveur (sauf exception).
Marsh Posté le 06-03-2012 à 12:27:18
Du haut de son expertise, @olivthill an conclu que j'étais une débutante... [soupir]
Donc j'explique : quand on a une page HTML sur laquelle on ne peut pas exécuter de PHP (par exemple si on utilise un CMS correctement sécurisé) il y a une possibilité : on inclut un script JS, qui en fait est du PHP, qui fait les traitements dont on a besoin sur le serveur, et qui à coup de echo "document.write('blabla');\n"; écrit ce qu'on veut. Miracle !
Mais peut-être que le problème particulier que j'ai n'a pas de solution, en tout cas visiblement ma manip est trop difficile à comprendre pour le "vétéran" que tu es ;-)
Merci de n'avoir pas essayé de m'aider
Marsh Posté le 06-03-2012 à 13:39:58
Mon idée : créer dynamiquement un tag <script>.
En gros, le principe : tu as un petit bout de javascript qui va récupérer les paramètres qui t'intéressent dans l'url, et tu utilises ensuite cette info pour créer le tag <script> qui ira chercher ton confirm.php, en ajoutant les paramètres.
Comme je ne suis pas sûr d'être très clair :
Code :
|
Marsh Posté le 06-03-2012 à 19:16:05
@Riokmij Tu as compris ce que je veux faire, toi au moins ! Je vais tester ton code mais il y a de bonne chances pour que ça fonctionne :-)
@Gatsu35 T'as déjà essayé ce "bout de code" dans une page WP, juste comme ça pour qu'on rigole ?
Marsh Posté le 05-03-2012 à 16:08:05
Salut tout le monde,
J'ai une page blabalbla.html?pid=xxx qui contient le code
<script language="JavaScript" src="js/confirm.php"></script>
Et dans confirm.php j'ai besoin d'accéder à la valeur de $pid. Est-ce que j'ai un moyen de le faire ? En plus la config de mon serveur m'empêche de faire des tests :-( Je n'arrive pas à lister les valeurs dans $_ENV et même dans $GLOBALS...
Merci pour vos lumières !
@+, Sophie