将post数组传递给函数

时间:2011-12-08 15:41:08

标签: php

如何将一个post数组传递给一个函数然后拉出params,即

所以我发布以下内容。

url=http%3A%2F%2Fwww.facebook.com%2Ftest&userId=680410999&location=Cardiff&lang=en_US&social=facebook

我可以从函数中抓住它吗????

function login($_POST){

//then output the var her.

$_POST['url']; etc

}

这是为了节省我在ajax.php文件中执行以下操作

function login($_POST['url'],$_POST['userId'],$_POST['location'],$_POST['lang']){



    }

任何帮助

4 个答案:

答案 0 :(得分:4)

首先,您应该使用$_GET而不是$_POST。其次,您不需要将函数参数称为$_GET。你可以这样做:

function login($array)
{
   // do stuff with array
}

然后以这种方式调用函数:

login($_GET);

另一个建议是阅读以下引文,即实际参数形式参数之间的差异:

  

正式参数是函数中已知的参数   定义。实际参数(也称为参数)是什么   由来电者传递。

答案 1 :(得分:0)

如果我正确地知道你,你想要一个你调用的函数,并将一个数组(在你的情况下是$_POST$_GET数组)作为参数传递给它。

所以你的功能看起来像这样:

// not sure what you're doing with your login options but here's an example of getting them out of the array and putting them in variables - using the url as an example here...
var url;

function login($loginOptions) {

    // set the url from the array
    url = $loginOptions["url"];

    // do the same for all your other variable...
}

然后你会像这样调用你的函数:

login($_POST); // or $_login($_GET); depending on what you're using

就是这样!

答案 2 :(得分:0)

你得到的其他答案应该为你解决这个问题。

还有一些建议,请记得清除您在代码中使用的所有$_POST$_GET数据。

例如,如果您在数据库查询中使用它,则需要使用mysql_real_escape_string();,如果您回显数据,则使用htmlentities();

答案 3 :(得分:0)

我认为你的意思是将数组解析为一个函数,我将告诉你使用一个函数并将其与SESSION连接,如下所示。你可以使用$ _GET [$ var]来检索变量,但是方法get很难处理,你可以使用方法$ _POST并将它与session结合起来保存数据,我会解释一下如何在每个页面上协作会话,以便您可以轻松检索所需的变量。 这是代码:

<?php
    session_start();
    if(isset ($_POST['postedit']))
    {
         $_SESSION['url'] = $_POST['urlsend'];
         header("location:dua.php");
    }
?>
<html>
    <body>
      <form action="satu.php" method="POST">
            Name : <input type="text" name="urlsend"> <br> <br>
            <input type="submit" name="postedit" value="SEND DATA">
      </form>  
    </body>
</html>

<?php
session_start();
if(isset ($_SESSION['url']))
{
    //if data empty then will be redirected to the previous page
   echo $_SESSION['url'];
}
?>

我使用动态数据创建,即使您可以选择使用此方法或其他方法。我希望你能理解。