php - Codeigniter - 限制从 URL 调用直接访问 Controller 功能

标签 php codeigniter codeigniter-2

我想知道是否有任何方法可以通过 URL 限制对 Controller 功能的访问。但我想通过网站上的链接给他们打电话。例如,如果我的网站中有一个指向 Controller 功能的链接:

<a href='test/function'>Call me</a>

但是当我将上述 URL 放入浏览器地址栏中时,我不希望调用 Controller 函数。谁能帮忙解决这个问题吗?

最佳答案

这是不可能的。 Apache 以及 CodeIgniter 允许外部世界访问您的 PHP 脚本,无论是通过手动输入的浏览器 URL 还是通过访问的超链接。这两种方案都以完全相同的方式连接到您的 Web 应用程序,但它们只是到达目的地的方式不同

您可以使用以下方法仅允许访问您的 CodeIgniter 脚本(即阻止公共(public)用户访问 Controller ):

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

正如马库斯所指出的,你可以使用类似的东西:

if (!$_SERVER['HTTP_REFERER']) $this->redirect('/home');

但它通常非常不一致。

关于php - Codeigniter - 限制从 URL 调用直接访问 Controller 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414768/

相关文章:

mysql - Tank auth(CodeIgniter 库)中的 users 和 user_profiles 表有什么区别?

php - codeigniter邮件功能

java - 如何在 PHP 中集成用于 Aadhaar 号码验证的 Aadhaar Card Authentication Api?

php - MySQL 根据两个现有表计算创建一个表

php - 个人用户的显示表

php - 发送 HTML 电子邮件会导调用子邮件显示 HTML 源代码(Codeigniter 电子邮件类)

php - php array_unique 的奇怪行为

php - 为什么 mysqli::multi_query 在一定数量的行后停止?

php - 如何在 Codeigniter 上创建 URL 和阅读?

php - 将函数转换为 codeigniter