【问题标题】:Prevent access controller methods directly from URL in Codeigniter直接从 Codeigniter 中的 URL 阻止访问控制器方法
【发布时间】:2016-08-22 01:11:31
【问题描述】:

由于某些原因,我不想从examples.com/controller/method 之类的网址访问。我想强制 Codeigniter 改用routes.php。我不想使用privateprotect_method。 请帮忙!我正在使用 Codeigniter 3

【问题讨论】:

  • 建议您告诉我们您为什么要这样做 - 将更容易帮助找到解决方案。

标签: php codeigniter codeigniter-3


【解决方案1】:

我在 Codeigniter 4 中找到了解决方案,只需转到路由并将自动路由设置为 false

 $routes->setAutoRoute(false);

【讨论】:

    【解决方案2】:

    在 codeigniter 中,您在控制器中编写的方法将在作为其 mvc 结构的 url 中访问。 如果您想避免在 url 中看到控制器中的某个函数,只需将该函数设为私有/受保护或在函数名称中添加一个 _。

    private func_name
    

    public _func_name
    

    protected func_name
    

    您的函数中的任何选项都不允许访问您在 url 中的函数。 如果你想让你的控制器函数被其他子类访问,你需要根据需要将函数设为 public 或 protected 并避免它被 url 访问,只需在前面加上下划线 _

    【讨论】:

    • 感谢您的回答,但我说“我不想使用 private、protected 或 _method。”因为我的目标是强制使用 routes.php、private、protected 或 _method 不允许我们通过 routes.php 路由。有什么解决办法吗?
    • @duyvu1311 你找到解决方案了吗。我也在找。现在我的问题是我在路由上没有 manson 控制器我仍然可以通过 url 访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多