2017-02-17 19 views
0

Я новичок в этом вопросе. Я пытаюсь создать форму поиска, которая позволяет искать базу данных через http api и отображать результат на веб-сайте. Вызов требует авторизации:Сделайте форму поиска для поиска с http api

$headers = array ('headers' => array( 
        'Authorization' =>  'bearer' . $token , 
        'Content-type' =>  'application/json', 
        'Accept'  =>  'application/json')); 

Моя форма поиска выглядит следующим образом:

<form method="GET" accept="application/json" action="https://example.xx/api/v1/products?page=1&size=5&direction=asc&search=value"> 
    <input type="text" name="search" size="40" maxlength="256" value="" placeholder="testsearch"> 
    <input type="submit" name="search_button" value="Search"> 
</form> 

Когда я ввести что-то в поле ввода и нажмите кнопку отправки, браузер отображает:

{"error":"unauthorized","error_description":"Full authentication is required to access this resource"} 

И в поле адреса браузера я вижу:

https://example.xx/api/v1/products?search=testvalue&search_button=Search 

Очевидно, что авторизация игнорируется, и URL-адрес показывает, что я покинул свой сайт.

Должен ли я сделать эту работу с действием = "somephp.php"? Как я могу разрешить вызов из формы и отобразить ответ на веб-сайте? Подсказки очень оценены. теор

ответ

0

Благодаря немецкой WordPress форуме, я нашел ответ - вид:

<form method="post" id="api-result-searchform" action=""> 
    <input type="text" class="search" placeholder="<?php echo esc_attr_x('Author?', 'placeholder') ?>" value="" name="searchauthor" id="s" title="api-search" /> 
    <input class="button"type="submit" name="search_button" value="Search"> 
</form> 

И призыв:

<?php 
    $searchterm = $_POST['searchauthor']; 
    $url = 'https://example.de/api/v1/product?search=ti=' . $searchterm; 
    $response = wp_remote_get($url, $headers); 
    //etc. 

Это хорошо работает.