使用从用户输入接收的参数时,如何防止在从数据库中获取数据时进行SQL注入:
if(isset($_GET['cityval']) && $_GET['cityval'] !=''){ $city = $this->request->query('cityval'); $searching .= " and college_city in ($city) "; } else { $searching .= ""; } if(isset($_GET['scholarship']) && $_GET['scholarship'] !=''){ $searching .= " and college_scholarship = '".$_GET['scholarship']."' "; } else { $searching .= ""; }
我的主要查询如下
$search = $this->Search->query("select * from colleges where college_id!='' and status='active' $searching order by $order desc limit $start, 10 ");
burzum.. 5
开始实际使用框架,或者根本不使用框架。您没有使用请求对象,没有使用ORM,而是在框架上或围绕框架工作。从代码中可以很明显地看出,您不必花时间阅读本手册。
wcomnisky的答案有很多不需要的代码,也不是按预期的方式使用框架的。
如果您想创建一些编写良好的代码,那么您真的应该从做官方文档book.cakephp.org的博客教程开始。如果不停止阅读,请按照wcomniskys的建议去做。它可能有效,但是它不是好的代码,也不是使用框架的正确方法,也不是最简单的解决方案。如果您对正确执行操作不感兴趣,可以立即停止阅读。
您尝试做的显然是通过get参数进行搜索。有一个很棒的插件,使它变得非常简单https://github.com/FriendsOfCake/search
使用插件实际上可能就这么简单:
$query = $this->Colleges->find('search', [ 'search' => $this->request->query ]); $this->set('results', $this->Paginator->paginate($query));
搜索参数本身将在模型层中处理,请查看插件文档。该框架将负责清理输入。
上面的内容要求您实际上了解框架的基本知识,并且知道自己的工作。如果出于某种原因对不使用框架提供的内容不感兴趣,那么最好根本不使用它,因为这只会堆积无法维护的代码并导致开销。
开始实际使用框架,或者根本不使用框架。您没有使用请求对象,没有使用ORM,而是在框架上或围绕框架工作。从代码中可以很明显地看出,您不必花时间阅读本手册。
wcomnisky的答案有很多不需要的代码,也不是按预期的方式使用框架的。
如果您想创建一些编写良好的代码,那么您真的应该从做官方文档book.cakephp.org的博客教程开始。如果不停止阅读,请按照wcomniskys的建议去做。它可能有效,但是它不是好的代码,也不是使用框架的正确方法,也不是最简单的解决方案。如果您对正确执行操作不感兴趣,可以立即停止阅读。
您尝试做的显然是通过get参数进行搜索。有一个很棒的插件,使它变得非常简单https://github.com/FriendsOfCake/search
使用插件实际上可能就这么简单:
$query = $this->Colleges->find('search', [ 'search' => $this->request->query ]); $this->set('results', $this->Paginator->paginate($query));
搜索参数本身将在模型层中处理,请查看插件文档。该框架将负责清理输入。
上面的内容要求您实际上了解框架的基本知识,并且知道自己的工作。如果出于某种原因对不使用框架提供的内容不感兴趣,那么最好根本不使用它,因为这只会堆积无法维护的代码并导致开销。