これは私が書いている関数で、他の情報とともに入力をデータベースに投稿することになっています。現時点では、プラグインをアクティブにするとWSoDが生成されます。機能が削除されると、意図したとおりに残りのプラグイン関数が削除されます。
これが入力です。
<input type="text" maxlength="4" name="' . $quanid . '" value="" class="input" />
<button class="submit" type="submit" value="Submit">Submit</button>
$ quanidはCSVファイルから来ています。
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$quanid = $data[2];
add_action('login_head','ref_access');
function ref_access(){
global $error;
if (is_user_logged_in())
$newdb = new wpdb( 'user', 'pass', 'db', 'localhost' );
global $newdb;
$hf_username = wp_get_current_user();
$inputValue = $_POST[$quanid];
$wpdb->insert(
$table,
array(
'ItemID' => $quanid
'Price' => $inputValue
'user' => $hf_username
),
);
{
}else {
$error = "Error: You must be logged in to submit prices";
return ;
}
}
少なくとも、コードのフォーマットや構文に問題があります。
function ref_access(){
global $error;
if (is_user_logged_in()) // <-- problem here...
$newdb = new wpdb( 'user', 'pass', 'db', 'localhost' );
global $newdb;
$hf_username = wp_get_current_user();
$inputValue = $_POST[$quanid];
$wpdb->insert(
$table,
array(
'ItemID' => $quanid
'Price' => $inputValue
'user' => $hf_username
),
);
{ // <-- problem here...
}else {
$error = "Error: You must be logged in to submit prices";
return ;
}
}
正しくフォーマットされています:
function ref_access(){
global $error;
if ( is_user_logged_in() ) {
global $newdb;
//you are not using $newdb anywhere in this functions
$newdb = new wpdb( 'user', 'pass', 'db', 'localhost' );
$hf_username = wp_get_current_user();
$inputValue = $_POST[$quanid];
//you need to delcare global $wpdb here if you plan to use $wpdb instead of $newdb
$wpdb->insert(
$table, //there is no $table variable within this function
array(
'ItemID' => $quanid
'Price' => $inputValue
'user' => $hf_username
)
);
} else {
$error = "Error: You must be logged in to submit prices";
return;
}
}
$table
が別の関数で定義されているというあなたのコメントに関しては、次に、値$table
を関数呼び出しref_action('my_table_name')
に渡す必要があります。
例:
function ref_access($table = '') {
//function code
}
//Usage
ref_access('my_table_name');