Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1620 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Script générant du JS => accès à $_GET de la page appelante ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script générant du JS => accès à $_GET de la page appelante ?

n°2129668
sophievm
Posté le 05-03-2012 à 16:08:05  profilanswer
 

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

mood
Publicité
Posté le 05-03-2012 à 16:08:05  profilanswer
 

n°2129680
olivthill
Posté le 05-03-2012 à 17:21:19  profilanswer
 

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)  
    {
         //  Extracts and returns the parameter value from the URL for the specified parameter.
         //  If the parameter does not occur is the URL, the default value is returned.
         //  This function is not Case-sensitive.
         var sURLUpper = sURL.toUpperCase() + "&";
         Param = Param.toUpperCase();
         if (!Default) Default="";
     
         var Pos = sURLUpper.indexOf (Param + "=" );
         if (Pos==-1) return Default;
         Pos = Pos + Param.length + 1;
         return sURL.substring (Pos, sURLUpper.indexOf("&", Pos));
    }


 
Edit : Ou avec :

function GetParam(name)
{
  var start=location.search.indexOf("?"+name+"=" );
  if (start<0) start=location.search.indexOf("&"+name+"=" );
  if (start<0) return '';
  start += name.length+2;
  var end=location.search.indexOf("&",start)-1;
  if (end<0) end=location.search.length;
  var result=location.search.substring(start,end);
  var result='';
  for(var i=start;i<=end;i++) {
    var c=location.search.charAt(i);
    result=result+(c=='+'?' ':c);
  }
  return unescape(result);
}


Message édité par olivthill le 05-03-2012 à 17:24:00
n°2129697
sophievm
Posté le 05-03-2012 à 19:13:32  profilanswer
 

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 ?

Message cité 1 fois
Message édité par sophievm le 05-03-2012 à 19:18:54
n°2129735
gatsu35
Blablaté par Harko
Posté le 06-03-2012 à 00:22:57  profilanswer
 

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.


---------------
Blablaté par Harko
n°2129737
sophievm
Posté le 06-03-2012 à 00:53:49  profilanswer
 

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 :-(

n°2129761
olivthill
Posté le 06-03-2012 à 10:35:23  profilanswer
 

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).
 

n°2129784
sophievm
Posté le 06-03-2012 à 12:27:18  profilanswer
 

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

n°2129795
Riokmij
Blink and you're dead
Posté le 06-03-2012 à 13:39:58  profilanswer
 

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 :
  1. var pid = ... // tu récupères ton paramètre via window.location
  2. var s = document.createElement("script" )
  3. s.src = "js/confirm.php?pid=" + pid
  4. document.documentElement.appendChild(s)

n°2129864
gatsu35
Blablaté par Harko
Posté le 06-03-2012 à 17:42:41  profilanswer
 

Code :
  1. <script type="text/javascript" src="js/confirm.php?pid="<?php echo $_GET['pid']?>"></script>


 
sophievm, tu vois la simplicité de ce morceau de code, donc oui tu es une débutante.


---------------
Blablaté par Harko
n°2129881
sophievm
Posté le 06-03-2012 à 19:16:05  profilanswer
 

@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 ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Script générant du JS => accès à $_GET de la page appelante ?

 

Sujets relatifs
[Perl] Script de transfert FTPProjet perso sous w7
[html] Page de chargement/méthodecharger une page html avec id/passwrd
Ordre de chargement des éléments d'une page webAccès refusé d'une base de données copiée d'un PC vers PC !
[Oracle] Droit accès InstanceAdaptation auto. Page Web / Résolution
Script Perl 
Plus de sujets relatifs à : Script générant du JS => accès à $_GET de la page appelante ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR