Codeigniter URI路由和安全性 - php

在codeigniter或restful结构中,页面可以通过URI路由到

例如,如果我想查看id:1的项目列表,那么我只需要创建一个类似这样的路径:

domain.com/item/view/1

并在控制器中

function view() {
   $id = $this->uri->segment(3);
   //database get data and return view...
} 

这应该是实现静态结构的标准方法。但是,在会员系统中,并且商品ID取决于用户时,如何保护链接?

这样,其他用户就无法通过蛮力尝试使用其他ID并读取其他成员项目。

一种方法是只比较每个函数中的user_id和item_id。但是,如果系统很大,则意味着我需要在每个函数中进行比较,这需要大量的编码和检查。

有没有更聪明的方法来减少开销/编码?

谢谢

参考方案

domain.com/item/view/1中,始终代表base_url/controller/Method

因此,如果创建控制器(item),则创建函数(view)。

class Item extends CI_Controller
{
    public function  __construct()
    {
        parent::__construct();

    }

    public function view($id)
    {
        //so in $id it will assign the 3rd value to it.
        $new_id = $id;
        echo $new_id;
    }

CodeIgniter ODBC问题 - php

好吧,我已经构建了一个用于MSSQL的应用程序,最初以这种方式运行它,我购买了一台新计算机,出于某种奇怪的原因,它不允许我通过MSSQL连接。因此,我设置了ODBC。它连接良好,但似乎讨厌活动记录。我将不得不重写所有查询吗?还是我想念的东西。我收到这样的错误。A Database Error Occurred Error Number: 37000 [Mic…

在Codeigniter中以数组形式获取查询结果 - php

我有一个查询,如何获取结果作为数组? php大神给出的解决方案 像这样:$rs = $this->db->query(...); $array = $rs->result_array(); https://www.codeigniter.com/user_guide/database/results.html

有没有一种方法可以使ajax请求始终按顺序进行? - php

我目前正在做的是使用jQuery在每个按键上执行ajax请求。因此,如果我的用户键入d-o-n-k-e-y,它将为每个字母发送一个请求。但是,由于它们采用不同的路径到达网络上的服务器,因此如果输入d-o-n-k-e-y的速度太快,它们就不会总是按顺序到达。他们可能会以D-n-o-k-y-e的身份到达,并做出相应的反应。有没有一种好的方法来确保所有请求都按顺序…

CodeIgniter:“无法重新声明类” - php

诚然,我的OOPHP有点不稳定,但是我看不出这是怎么回事。在我的一个控制器中,我包括一个utils工作表,该表与该控制器一样,扩展了基本的CI_Controller类。这将引发致命错误:Fatal error: Cannot redeclare class Utils in {file path}\utils.php on line 88 控制器:class…

Codeigniter |将Base64图像保存到文件 - php

我创建了一个自定义产品配置器,该配置器将canvas元素另存为base64编码的图像。当我在浏览器中将图像作为图像src回显时,它可以正常工作。所以像这样的作品:$base64Image = $_POST['dataUrl']; echo '<img src="'.$base64Image.'…