Есть ли способ захватить переменные get или post с помощью php?

#php #javascript #ajax

#php #javascript #ajax

Вопрос:

Я хочу, чтобы мой php-скрипт захватывал переменные get или post. То есть независимо от того, изменил ли я свой метод на get или post, php-скрипт должен иметь возможность захватывать переменные в одной и той же переменной php. Как мне этого добиться?

HTML-код

 <script type="text/javascript">
    $(function(){
        $("input[type=submit]").click(function(){
            //alert($(this).parents("form").serialize());
            $.ajax({  
                type: "get",
                url: 'file.php',
                data: $(this).parents("form").serialize(),  
                complete: function(data){  

                } ,
                success:function(data) { 
                    alert(data);
                }   
        });
        return false;
        })
    })
</script>
 

file.php Код

 <?php

$name = $_POST["file"]?$_POST["file"]:$_GET["file"];
echo   $_POST["file"];
?>
 

Приведенный выше код не захватывает переменные post.Как мне захватить переменные post?

Комментарии:

1. Почему вы не печатаете $name ?

Ответ №1:

Используйте $_REQUEST суперглобальный:

 $name = $_REQUEST['file'];
 

Ответ №2:

если вы хотите отфильтровать то, что делается с помощью a POST или что делается с помощью a GET , используйте это:

 //for the POST method:
if($_SERVER['REQUEST_METHOD'] === 'POST') {
   //here get the variables:
   $yourVar = $_POST['yourVar'];
}

//for the GET method:
if($_SERVER['REQUEST_METHOD'] === 'GET') {
   //here get the variables:
   $yourVar = $_GET['yourVar'];
}
 

в противном случае используйте _REQUEST:

 $yourVar = $_REQUEST['yourVar'];
 

Ответ №3:

Я всегда использовал функцию, которую я написал:

 function getGP($varname) {
    if (isset($_POST[$varname])) {
        return $_POST[$varname];
    } else {
        return $_GET[$varname];
    }
}
 

Тогда просто:

 $name = getGP('file');
 

Комментарии:

1. Что ж, хотя это удобно, это не самая умная вещь.

2. Эту функцию можно улучшить с помощью тернарного оператора, например функции getGP($var) { return isset($_POST[$var])? $_POST[$var] : $_GET[$var]; }

Ответ №4:

$_REQUEST захватывает обе $_GET $_POST переменные и: http://php.net/manual/en/reserved.variables.request.php

Ответ №5:

Ответ №6:

использование $_REQUEST

http://php.net/manual/en/reserved.variables.request.php