我创建了一个插件,该插件在数据库中创建了一个表,我也在该表中插入了一些值。该表只有两列,分别是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
}
我已将此简码添加到我的页面之一,该表单显示在此处,但未返回任何结果。在这方面的任何帮助将不胜感激。谢谢
答案 0 :(得分:1)
过滤器中列的名称中有错字。应该是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 );