Wordpress Plugin Form Submission

I created a plugin to save answers. But whenever I submit the form using the plugin, it shows an error and is redirected to another page that displays "Not Found" Sorry, but the page you requested was not found. Perhaps a search will help. ". Please check my code.

<?PHP
/*
Plugin Name: Register Me
Plugin URI: http://demo.net
Description: Plugin is shows a simple Registration form
Author: Sumod Nair
Version: 1.0
Author URI: http://demo.net
*/
add_action('init', 'reg_install');
function reg_install()
{
    global $wpdb;
    $table = $wpdb->prefix."reg_details";
    $structure = "CREATE TABLE $table (
        id INT(9) NOT NULL AUTO_INCREMENT,
        name VARCHAR(80) NOT NULL,
        place VARCHAR(20) NOT NULL,
        email VARCHAR(20) NOT NULL,
        mobno VARCHAR(20) NOT NULL,
        about_me VARCHAR(500) NOT NULL,
        date_apply datetime,
        UNIQUE KEY id (id)
    );";
    $wpdb->query($structure);
}

add_shortcode('register', 'process_post');

function process_post(){
//include("reg_form.php");
?>
<form id="frmRegistration" name="frmRegistration" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" method="POST">
<table style="align:center; width:500px; margin: 0 0 0 0;"> 
<tr>
<td>Name </td>
<td><input type="text" name="name" id="name" maxlength="50" ><b><font color="red">*</font></b></td>
</tr>
<tr>
<td>Place </td>
<td><input type="text" name="place" id="place" maxlength="50" ><b><font color="red">*</font></b></td>
</tr>
<tr>
<td>Email </td>
<td><input type="text" name="email" id="email" maxlength="50" ><b><font color="red">*</font></b></td>
</tr>
<tr>
<td>Mobile No</td>
<td><input type="text" name="mobile_no" id="mobile_no" maxlength="50"><b><font color="red">*</font></b></td>
</tr>
<tr>
<td>About Yourself</td>
<td><textarea rows="4" cols="50" name="about" id="about" >

</textarea> <b><font color="red">*</font></b></td>
</tr>
<tr>
<td><input type="submit" name="btnSubmit" id="btnSubmit" value="Submit Details" style="color:blue;"></td>
 <td align="right"><b><font color="red">*</font></b> fileds are mandatory</td></tr>
</table>
</form>

<?PHP
   global $wpdb;
    $table = $wpdb->prefix."reg_details";
 if(isset($_POST['btnSubmit'])) {
   // process $_POST data here
   $name = $_POST['name'];
   $place = $_POST['place'];
   $email = $_POST['email'];

   $mobile_no = $_POST['mobile_no'];
   $about_yourself = $_POST['about'];
   echo $name." " .$place." " .$email ." " .$mobile_no." " .$about_yourself;
  $wpdb->query("INSERT INTO $table(name, place,email,mobno,about_me,date_apply)
        VALUES('$name', '$place',' $email', '$mobile_no', '$about_yourself',now())");
 }
}
?>
+3
source share
1 answer

Replace name="name"with something else, I ran into exactly the same “error”. Also, replace the other names with some unique string in front of it. For instance. name="frm-name", name="frm-mobile_no"etc.

+1
source