创建支持GET,POST和命令行参数的函数

时间:2013-12-02 11:04:25

标签: php function

我有一个以下的类文件。当valid_orginfo()函数调用时,它会检查传入数据是否为命令行参数。然后调用insert_contact($b)函数。我将数组作为参数传递(这里是$b)。

我要做的是使我的函数独立于数据(意味着它是GET,POST或命令行参数)。我不想改变我的功能。但要制作一个支持每种类型的传入数据(POST或命令行参数)的通用解决方案。下课正在工作(用$_POST测试),但我对此不满意。

那么我能做什么呢?功能变得独立了? 你建议改善这类事情。
提前致谢。

<?php
class validation
{   
    function valid_orginfo()
    {
        $a = array();
        if(isset($argv)) {
            $b = $argv;
        }else {
            $b = $_POST;
        }
        extract($b);
        if($org_name!="" and $add!="")
        {
            $this->insert_contact($b);
        }
    }

    function insert_contact($b)
    {
        global $mysqli;
        extract($b);

        $query = "INSERT INTO `personal`(`first_name`, `last_name`) VALUES ('$sfname', '$slname')";

        $mysqli->query($query) or die($mysqli->error);
        return $mysqli->insert_id;
    }

}
?>

1 个答案:

答案 0 :(得分:0)

如果从命令行调用它,可以伪造$ _GET和$ _POST:

if (!isset($_SERVER["HTTP_HOST"])) {
    parse_str($argv[1], $_GET);
    parse_str($argv[1], $_POST);
}

并致电:php script.php 'argument1=x&argument2=y'