Как сравнить пользовательский ввод с пользовательской таблицей базы данных WordPress - PullRequest
0 голосов
/ 14 ноября 2018

Я создал плагин, который создает таблицу в базе данных, я также вставил некоторые значения в эту таблицу. В таблице есть только два столбца: ID и auth_code, столбец ID - это первичный ключ и автоинкремент, поэтому следует учитывать только столбец auth_code. Создание таблицы и вставка данных работают отлично. Я добавил шорткод, который я хочу использовать, чтобы пользователь мог ввести код (на внешнем интерфейсе) в одном поле, и мой плагин будет сравнивать его с полем auth_code в пользовательской таблице и возвращать TRUE или False. Столбец auth_code имеет значения, которые являются уникальными, поэтому должно быть только одно совпадение или не совпадать. Мой шорткод здесь

<?php

add_shortcode( 'prod_auth', 'product_auth_shortcode' );

function product_auth_shortcode(){

global $wpdb;

$table_name = $wpdb->prefix.'wpa_product_auth';

if(isset($_POST['submit'])){

    $prod_auth = $_POST['auth_code'];

    $check = $wpdb->get_col("SELECT * FROM  $table_name WHERE auht_code = '$prod_auth'");



    if($check->num_rows == 1){
        echo "<script>alert('Auth')</script>";
    }else{
        echo "<script>alert('Not Auth')</script>";
    }

}

?>
<form class="form-inline" method="post">
  <div class="form-group mb-2">

    <input type="text" readonly class="form-control-plaintext" value="Please 
Enter Your Unique Code">
  </div>
  <div class="form-group mx-sm-3 mb-2">
    <label for="UniqueCode" class="sr-only">Enter Your Unique Code</label>
    <input type="text" class="form-control" id="inputPassword2" placeholder="" name="auth_code">
  </div>

  <button type="submit" class="btn btn-primary mb-2">Authenticate</button>
</form>
<?php

}

Я добавил этот шорткод на одну из своих страниц, там показывается форма, но результаты не возвращаются. Любая помощь в этом отношении будет оценена. Спасибо

1 Ответ

0 голосов
/ 14 ноября 2018

В названии столбца в фильтре есть опечатка. Это должно быть auth_code, а не auht_code;

$prepared_statement = $wpdb->prepare(
    "SELECT auth_code FROM {$table_name} WHERE auth_code = %s", $prod_auth );

$values = $wpdb->get_col( $prepared_statement );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...