Php 将变量从窗体传递到函数
我的个人资料控制器中有这个Php 将变量从窗体传递到函数,php,mysql,Php,Mysql,我的个人资料控制器中有这个 public function search() { $searchString=htmlentities(Request::post('search_field')); $this->View->render('profile/search', array( 'user' => UserModel::searchProfile($searchString) )); } 在我的模型中
public function search()
{
$searchString=htmlentities(Request::post('search_field'));
$this->View->render('profile/search', array(
'user' => UserModel::searchProfile($searchString)
));
}
在我的模型中
public static function searchProfile($searchString)
{
if(empty($searchString)){
Session::add('feedback_negative', Text::get('FEEDBACK_UNKNOWN_ERROR'));
return false;
}
$database = DatabaseFactory::getFactory()->getConnection();
$query = $database->prepare("SELECT * FROM users WHERE user_name LIKE :query");
$query->execute(array(':query' => '%'.$searchString.'%'));
return $query->fetchAll();
}
但重定向系统无法处理此问题(点击“刷新”会显示“是否要再次发送?”)
但是,如果我在search()中发送$searchString
,它会工作(而且URL看起来很酷)
但如果search($searchString)为空($searchString=null,空输入字段),我会得到一个错误:警告:ProfileController::search()缺少参数1
和ofc:注意:未定义变量:searchString
如何将
Request::post('search_field')
放入search()
?不知道这是不是一种方法,但我是这样解决的:
public function search($searchString='')
{
$this->View->render('profile/search', array(
'user' => UserModel::searchProfile(htmlentities($searchString))
));
}
以下是表格:
onsubmit="window.location = '<?php echo Config::get('URL'); ?>profile/search/' + search_field.value; return false;"
onsubmit=“window.location=”profile/search/“+search\u field.value;返回false;”
因此,搜索查询将发送到
有安全风险吗?您可能会用您正在使用的任何框架对此进行标记。您正在使用的是什么框架,它可能正在RESTful中生成URImanner@AbraCadaver我使用的是panique/Great framework(它在github上),找不到它的标签。@MichaelVilleneuve看到前面的答案,我试着在谷歌上搜索RESTful,可能是框架使用了这种设计。