How to validate my form

时间:2018-07-02 作者:Bright

我正在尝试构建一个插件,在该插件中,我希望管理员能够将数据发送到数据库,并允许用户在前端查看数据,但我仍然无法将数据发送到数据库

我正在尝试验证此代码,以确保它不会被注入。这是我的代码

<?php
    if (!empty($_POST)) {
        global $wpdb;
        $table = wp_save;
        $data = array(
            \'name\' => $_POST[\'yourname\'],
            \'chord\'    => $_POST[\'number\']
        );
        $format = array(
            \'%s\',
            \'%s\'
        );
        $success=$wpdb->insert( $table, $data, 
$format );
        if($success){
            echo \'data has been save\' ; 
        }
    } else {
        ?>
        <form method="post">
            <input type="text" name="yourname">
             <textarea name="number"></textarea>
             <input type="submit">
         </form>
        <?php 
    }  
?>

2 个回复
SO网友:Jacob Peattie

$table = wp_save;
这是设置$table 到PHPconstant wp_save. 如果非要我猜的话,我会说你实际上没有一个常量,只是想把表名设置为wp_save. 为此,需要将表名放在引号之间,以便String:

$table = \'wp_save\';
然而,考虑到WordPress用户可以更改wp_ 在数据库中,您应该使用$wpdb->prefix 要使用用户设置的正确前缀,请执行以下操作:

$table = $wpdb->prefix . \'save\';
在深入研究构建插件之前,我建议先复习一下PHP的基础知识,以便了解不同类型的值(如字符串和常量)之间的差异。最终,您将在后端执行的所有操作都是PHP,并且基本原理不会因为是WordPress而有所不同。

SO网友:Кристиян Кацаров
<?php
if (!empty($_POST)) {
    global $wpdb;
    $table   = $wpdb->prefix . \'wp_save\'; //wp_save or save only?
    $data    = array(
        \'name\' => $_POST[\'yourname\'],
        \'chord\' => $_POST[\'number\']
    );
    $format  = array(
        \'%s\',
        \'%s\'
    );
    $success = $wpdb->insert($table, $data, $format);
    if ($success) {
        echo \'data has been save\';
    }
} else {
?>
        <form method="post">
            <input type="text" name="yourname">
             <textarea name="number"></textarea>
             <input type="submit">
         </form>
        <?php
}
?>

Hope this helps

结束

相关推荐

Form Object Gravity Forms

重力形式。我尝试在渲染表单字段之前对其进行操作add_filter(\"gform_pre_render\", \"my_function\", 10, 5); function my_function($form){ ... $form[\"fields\"][0][\"content\"] = \'This is a html-block\' } 这样,我可以传递html块的内容,假设html是表单上的第一个字段。如何通过id? 假设上面的html块