我在个人资料控制器中有这个
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
它可以正常工作(并且网址看起来很酷)。
但是如果搜索($ searchString)为空($ searchString = null,空输入字段),我会收到错误:Warning: Missing argument 1 for ProfileController::search()
和ofc:Notice: Undefined variable: searchString
如何将Request::post('search_field')
转入search()
?
答案 0 :(得分:0)
不知道这是否可行,但我解决了这个问题:
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;"
因此搜索查询将发送到http://example.com/profile/search/query
有任何安全风险吗?