我使用codeigniter编写了一个代码,以按主题标题获取数据。我的代码是。
控制器
public function viewTopic($category, $title){
$data['topic'] = $this->Setting->get_dataNew('*', 'community_topics', 'WHERE title="'.str_replace('-', ' ', urldecode($title)).'"');
}
链接就是这样的。
/community/questions/ما-هو-المجتمع-؟
问题是,当我在标题中添加特殊字符(如-或())时,查询不起作用,有没有办法解决它?
答案 0 :(得分:1)
由于您正在使用-来删除空格,除非您为其使用了不同的符号,否则codeigniter会过滤所有特殊字符以防止sql注入攻击,但是,您可以添加名为urlSlug的列并存储子弹中的确切值,因此当您下次查询时,它将是
public function viewTopic($category, $title){
$data['topic'] = $this->Setting->get_dataNew('*', 'community_topics', 'WHERE urlSlug="'.$title.'"');
}
我们在阿拉伯版本的网站上使用了相同的名称,并且运行良好,
也不要忘记,您需要将允许的字符列表添加到
$config['permitted_uri_chars']=''
以避免将来出现任何错误。