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,可能是框架使用了这种设计。