OVH Cloud OVH Cloud

Recuperer une variable de JavaScript vers du PHP

7 réponses
Avatar
Manu
Bonsoir a tous,

Je préferre vous expliquer mon problème par du code:

<?
$javascript = "<script language=\"Javascript\">var
SITE==top.document.referrer;</script>";
echo $javascript;

/* a partir de là, comment récupérer la variable "SITE" dans du PHP */

if (SITE != "www:monsite:com/xxx.php" {
/*traitement de la condition*/
exit;
}

Merci d'avance,
Manu

7 réponses

Avatar
Bruno Desthuilliers
Manu wrote:
Bonsoir a tous,

Je préferre vous expliquer mon problème par du code:

<?
$javascript = "<script language="Javascript">var
SITE==top.document.referrer;</script>";
echo $javascript;

/* a partir de là, comment récupérer la variable "SITE" dans du PHP */

if (SITE != "www:monsite:com/xxx.php" {
/*traitement de la condition*/
exit;
}




Tu semble oublier un point essentiel :
- PHP est exécuté sur le serveur, *avant* que la page générée ne soit
servie au client
- Javascript s'exécute (éventuellement... il ne faudrait jamais dépendre
du fait que le client supporte javascript) sur le client, *après* que
celui-ci ai récupéré la page.

Communiquer de PHP vers Javascript n'est pas forcément compliqué, il
suffit de générer du Javascript depuis PHP - ce que tu fais.

Par contre, il n'y a aucun moyen de passer directement des valeurs de
javascript vers PHP.

Les seules solutions sont a priori soit de stocker la valeur dans un
cookie, soit de la passer en variable GET (ie :
http://mapage.net?variable=valeur).

Dans les deux cas, cela implique de recharger la page (telle que dans le
premier cas, en redirigeant vers l'url modifiée dans le second), et dans
la page PHP de traiter le cas...

Autant dire que c'est un peu usine à gaz, et pas forcément la meilleure
solution. Es-tu sûr qu'il n'existe pas déjà ce que tu cherches en PHP ?
(I mean : sans passer par Javascript) ? Sinon, n'y a t'il pas une autre
façon d'organiser ton site pour éviter ça ?

HTH
Bruno

Avatar
kMoog
/* a partir de là, comment récupérer la variable "SITE" dans du PHP
*/


En passant par les cookies :
Le javascript enregistre la valeur dans un cookie et PHP lit ensuite cette
valeur.

Avatar
Thibaut Allender
"Manu" wrote in message
news:3f7734c5$0$20648$
Bonsoir a tous,

Je préferre vous expliquer mon problème par du code:

<?
$javascript = "<script language="Javascript">var
SITE==top.document.referrer;</script>";
echo $javascript;

/* a partir de là, comment récupérer la variable "SITE" dans du PHP
*/


if (SITE != "www:monsite:com/xxx.php" {
/*traitement de la condition*/
exit;
}


tu rajoutes ca :
document.location.href='monscript_qui_va_traiter_le_referer.php?site='+SITE;

et tu as du coup une belle variable $_GET['site'] dans
monscript_qui_va_traiter_le_referer.php

mais il vaut mieux adopter les solutions evoquees dans ton post precedent
a+

--
+ thibaut allender // web design + php dev + digital photo
+ http://www.capsule.org

Avatar
Savut
Cette solution implique que tu dois reload la page une 2e fois, car le
javascript s'execute sur le client, quand PHP a fini de traiter la page et
envoye au client. Il faut donc que PHP la retraite de nouveau avec le
cookie.

"kMoog" a écrit dans le message de
news:3f7811c9$0$27579$
/* a partir de là, comment récupérer la variable "SITE" dans du PHP
*/


En passant par les cookies :
Le javascript enregistre la valeur dans un cookie et PHP lit ensuite cette
valeur.



Avatar
dod
Salut,

Le truc consiste donc a regénérer la page de base avec des paramètres
envoyés par PHP
ex :dans une balise adéquate ......
action='page.html?variable1=valeur&variable2=valeur2&bouton=envoyer ......

ensuite sur la page tu crées un bouton <input name=bouton value=envoyer
....>

dans la page tu mets un boucle conditionnelle qui vérifie la valeur du
bouton; si elle existe, on continue le processus sinon, on quitte la boucle
et on exécute un autre traitement.
la page pourra donc contenir un input avec une valeur passée par php
<input name='test' valeur='<?php echo $variable1 ; ?>' >

javascript est capable de reprendre les valeurs dans des éléments de la page
html
<Script language=Javascript>
function Ctrl_site() {
var test= document.windows.test.value ;
if (test==www.monsite.xxx) {
.... traitement }
}
</script>

j'espère que cela peut servir

- didier -

"Manu" a écrit dans le message de
news:3f7734c5$0$20648$
Bonsoir a tous,

Je préferre vous expliquer mon problème par du code:

<?
$javascript = "<script language="Javascript">var
SITE==top.document.referrer;</script>";
echo $javascript;

/* a partir de là, comment récupérer la variable "SITE" dans du PHP
*/


if (SITE != "www:monsite:com/xxx.php" {
/*traitement de la condition*/
exit;
}

Merci d'avance,
Manu


Avatar
G Roydor
Vous pouvez soit :
passer vos variables dans l'URL => $_GET (ex : http://.......?SITE=machin

soit :
passr par Form dont les champs sont masqués => $_POST

GR

Manu a écrit:
Bonsoir a tous,

Je préferre vous expliquer mon problème par du code:

<?
$javascript = "<script language="Javascript">var
SITE==top.document.referrer;</script>";
echo $javascript;

/* a partir de là, comment récupérer la variable "SITE" dans du PHP */

if (SITE != "www:monsite:com/xxx.php" {
/*traitement de la condition*/
exit;
}

Merci d'avance,
Manu


Avatar
Stephane
Bonsoir a tous,

Je préferre vous expliquer mon problème par du code:

<?
$javascript = "<script language="Javascript">var
SITE==top.document.referrer;</script>";
echo $javascript;
/* a partir de là, comment récupérer la variable "SITE" dans du PHP */
if (SITE != "www:monsite:com/xxx.php" {
/*traitement de la condition*/
exit;
}

Merci d'avance,
Manu


Tout depend ce que tu as besoin de connaitre, par exemple si c'est le
referer des pages de ton site voici une soluce sans JS:

dans tes pages tu cree une variable avec $PHP_SELF:
exemple: $referer=$PHP_SELF;
que tu transporte soit
- avec les sessions,
- dans un formulaire: <input type="hidden" name="referer" value="<?
print $PHP_SELF; ?>">
- dans un lien: < a href="url?$referer=<? print $PHP_SELF ?>">lien</a>

ensuite cette variable une fois passe a la page suivante te donne le
referer de la page appelante ;o)

voici pour les pistes envisageable

--

Stephane