Можно ли при помощи JS выцеплять параметры POST запросов?

12
IL
На сайте с 20.04.2007
Offline
435
#11

Скрипт .js (который <script src=""... вызывается GET-запросом, в нём POST-переменные доступны не будут.

Параметры POST доступны на самой странице, их можно использовать либо:

- вставить внутри отдельного тэга script


<script>
var qqfrom = '<?=$_REQUEST['utm_source'];?>';

При этом, переменная должна устанавливаться выше по коду, чем обращение к script.js (иначе переменная не будет инициализирована при обработке script.js), либо в Script.js должен быть обработчик на событие ($(document).ready(..) или onload или.. в общем, событие, которое отработает после загрузки документа)

- или (изврат ещё тот, но технически возможен) передавать переменные GET-строкой в параметре src для script.js

<script src="..script.js?var1=<?=urlencode($_REQUEST['var1'])?>"

При этом script.js пропускать через PHP-обработчик, в котором разбирать $_GET параметр.

Ну и до кучи не забыть экранировать (если utm_source будет кавычку одинарную содержать - с ошибкой вывалится js)

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#12

Все заработало, только почему то формируется ссылка такая:

Вводим: http://link.ru/?utm_lend=lend&utm_source=company

и получаем:

http://site.ru/?lend&sid1=company/?utm_lend=lend&utm_source=company

а должна быть такая:

http://site.ru/?lend&sid1=company

"Vulcan-Bit - лучшая партнерка в сети" (http://vulcan-bit.com?invite=artem_kozirev) KMA.BIZ - Партнерка с крутым конвертом и отчислениями в долларах. Лить! (http://kma.biz)
B1
На сайте с 13.12.2012
Offline
28
#13

$_REQUEST исправить на $_POST

Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#14

bashkir102, поменял, стало:

http://site.ru/?&sid1=/?utm_lend=lend&utm_source=company

B1
На сайте с 13.12.2012
Offline
28
#15

js скрипт скорее всего у вас работает не так как надо.

---------- Добавлено 21.11.2013 в 00:50 ----------

и проверти получаемые POST данные


<script type="text/javascript">
var qqfrom = '<? echo(@$_POST['utm_source']);?>';
var qqsite = '<? echo(@$_POST['utm_campaign']);?>';
var qqtizer= '<? echo(@$_POST['utm_medium']);?>';

alert(qqfrom + "\n" + qqsite + "\n" + qqtizer);
</script>
Rock'n'rolla
На сайте с 14.09.2009
Offline
146
#16
alert(qqfrom + "\n" + qqsite + "\n" + qqtizer);

Пустой алерт выдает.

А если на $_GET поменять - то все работает, только блин добавляет в конце вот это

/?utm_lend=lend&utm_source=company

Вообще при любом раскладе в конце ссылки добавляется вот это

/?utm_lend=lend&utm_source=company

B1
На сайте с 13.12.2012
Offline
28
#17
Пустой алерт выдает.

искать причину почему POST пустой...

IL
На сайте с 20.04.2007
Offline
435
#18
alert(qqfrom + "\n" + qqsite + "\n" + qqtizer);

Этот кусок кода в каком файле?

R
На сайте с 13.04.2009
Offline
159
#19

На крайний случай можно в куки записать(php)-считать(js).

masterfunk
На сайте с 05.11.2007
Offline
104
#20

если на сайте стоит google аналитикс, данные из метки пишутся сразу в document.cookie, потом каждый utm можно от туда вырезать через indexOf

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий