微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用PHP GET变量限制人员

在其中一个面试问题中我得到了以下问题

“How you can restrict your developers in your custom build framework
to use $_GET variable.”

我们有自己的自定义构建框架,但在我们的框架中,我们不能限制人们使用$_GET或$_POST代替$this-> request-> get或$this-> request-> post.

我们有访问此变量的方法,但人们大多数时候使用$_GET或$_POST而不是我们的方法.

你能帮我解答一下吗?

谢谢

解决方法:

PHP.ini中,从variables_order选项中删除G和P字符.

或者,如果你想让他们永远恨你,你可以复制超全局的内容,然后将它设置为一个类的实例,当你尝试与它交互时抛出异常:

class supaglobal implements arrayaccess
{
    public function _construct(){}

    function offsetExists($offset) {
        throw new Exception("Don't use GET, bro");
    }
    function offsetSet($property, $value){
        throw new Exception("Don't use GET, bro");
    }
    function offsetUnset($property) {
        throw new Exception("Don't use GET, bro");
    }
    function offsetGet($property){
        throw new Exception("Don't use GET, bro");
    }
}

$approvedget = $_GET;
$_GET = new supaglobal();
$abcd = $_GET["abcd"]; // throws exception
$abcd = $approvedget["abcd"]; // A - OK

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐