2015-05-12 4 views
0

у меня есть это в моем профиле контроллераPass переменной от формы функционировать

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(); 
} 

Но система перенаправления не работает с этим (ударяя обновления вызывает " вы хотели бы отправить еще раз? »)

Но, если я пришлю $searchString в поиске(), он работает (и URL-адрес выглядит круто).

Но если поиск ($ SearchString) пусто ($ SearchString = нуль, пустое поле ввода) Я получаю сообщение об ошибке: Warning: Missing argument 1 for ProfileController::search() и OFC: Notice: Undefined variable: searchString

Как получить Request::post('search_field') в search()?

+0

Вы можете пометить его любым фреймворком, который вы используете. – AbraCadaver

+0

Какие рамки вы используете, вероятно, генерирует URI в методе RESTful. –

+0

@AbraCadaver. Я использую panique/огромную структуру (ее на github), не мог финировать тег для нее. – Adam

ответ

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

Любые риски для безопасности?

Смежные вопросы