3

返信の詳細を保存するためのプラグインを作成しました。しかし、プラグインを使用してフォームを送信すると、エラーが表示され、「謝罪が見つかりませんでしたが、要求したページが見つかりませんでした」と表示される他のページにリダイレクトされます。おそらく検索が役立つでしょう。」というメッセージ。私のコードを確認してください。

<?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())");
 }
}
?>
4

1 に答える 1

1

別のものに置き換えname="name"てください。まったく同じ「バグ」に遭遇しました。確かに、他の名前もその前に一意の文字列に置き換えてください。例: name="frm-name"name="frm-mobile_no"など。

于 2012-06-24T00:53:30.000 に答える