我正在编写一个插件,除其他外,它应该将表单中的信息插入到数据库中。但是,当我将一些数据放入表单时,没有任何内容插入到数据库中。这是我的代码:
function ol_process_shortcode(){
return '<form method="post"><p><label for="name">Jméno:</label><input type="text" name="ol-name" id="name" /></p><p><label for="email">Email:</label><input type="text" name="ol-email" id="email" /></p><p><input type="submit" name="ol-odeslat" value="Odeslat" /></p></form>';
if ( isset( $_POST['ol-odeslat'] ) ) {
$name = sanitize_text_field( $_POST["ol-name"] );
$email = sanitize_email( $_POST["ol-email"] );
require_once('../../../wp-config.php');
global $wpdb;
$table_name = $wpdb->prefix . "xxx";
$wpdb->insert( $table_name, array( "Name" => $_POST["ol-name"], "Email" => $_POST["ol-email"] ) );
}
}
我做错了什么?它也正确验证了吗?我不确定“姓名”和“电子邮件”应该在最后一行引用什么。
答案 0 :(得分:0)
回归需要持续。如果你先拥有它,那么之后的代码永远不会被执行。
function ol_process_shortcode(){
if ( isset( $_POST['ol-odeslat'] ) ) {
$name = sanitize_text_field( $_POST["ol-name"] );
$email = sanitize_email( $_POST["ol-email"] );
global $wpdb;
$table_name = $wpdb->prefix . "xxx";
$wpdb->insert( $table_name, array( "Name" => $_POST["ol-name"], "Email" => $_POST["ol-email"] ) );
}
return '<form method="post"><p><label for="name">Jméno:</label><input type="text" name="ol-name" id="name" /></p><p><label for="email">Email:</label><input type="text" name="ol-email" id="email" /></p><p><input type="submit" name="ol-odeslat" value="Odeslat" /></p></form>';
}
...还删除了包含wp-config.php,因为它已经被Wordpress加载了。