【问题标题】:escaping forbidden character in anchor codeigniter转义锚代码点火器中的禁止字符
【发布时间】:2014-04-15 13:32:21
【问题描述】:

我有一个模态链接

echo anchor('welcome/test/?$userid', 'Full View', 'class="ajax"');

当我的模态打开时,我会检索它

$id= $_GET;

原因是当您单击“完整视图”链接时,模式会打开并显示从我的数据库中获取的不同内容,具体取决于 id。 Codeigniter 不会让我通过 $userid 因为 $ 是一个禁止字符。有没有在不启用 $ 的情况下绕过这个障碍

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

在配置中添加 $ 会打开我的应用程序以进行 sql 注入,对吗?

所以基本上我希望实现的是从我的视图中传递 ID 我的模态窗口(这也是一个视图)

【问题讨论】:

    标签: php codeigniter urlhelper


    【解决方案1】:

    将路由添加到 routes.php 配置文件中

        $route['welcome/test/(:num)'] = "{your_controller}/{your_function}/$1";
    

    这将允许您像

    一样拥有链接
    welcome/test/$user_id 
    

    它会以 $user_id 作为参数调用你的函数。确保在函数签名中指定参数。

    注意:不要在 URL 中加上“$”,将 $user_id 替换为实际的 id 号。 我真的建议阅读有关路由的 CI 文档,您确实需要对它有一个很好的理解才能正确使用 CI。 http://ellislab.com/codeigniter/user-guide/general/routing.html

    【讨论】:

    • 您好,谢谢,但是如果我创建一个新项目,它将有一个新的 id,我无法将它们全部硬编码,或者当您说:注意:不要在其中输入“$” URL,将 $user_id 替换为实际的 id 号
    • 您正在尝试调用“welcome/test/?user$id”,所以我认为当您尝试建立该链接时,$userid 中应该有一个值。为了传递实际值(用户 ID),您应该使用双引号,它将 $userid 替换为其实际值。 “欢迎/测试/$userid”。这会将实际的 id 传递给欢迎控制器的测试函数,它应该看起来像 function test($userid){...}
    • 您是英雄!非常感谢!
    【解决方案2】:

    试试这个:

    echo anchor('test/anchor/?userid='. $user_id, 'Full View', 'class="ajax"');
    

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 2012-08-06
      • 1970-01-01
      • 2012-02-09
      • 2011-06-04
      相关资源
      最近更新 更多