【发布时间】:2018-11-10 07:28:50
【问题描述】:
我对 WordPress 和 SQL 还很陌生。我有一个联系表单,我希望将数据提交到我的 WordPress 数据库,但前提是之前没有输入已输入的数据。
这是我到目前为止所拥有的,它在提交表单时将数据发送到我的数据库。
if(isset($_POST['contact_us'])) {
$invalidContact = "<h5 class='invalidBooking'> Nope try again</h5>";
$successContact = "<h5 class='invalidBooking'> Message Sent!</h5>";
$table_name='contact_table';
global $wpdb;
$contact_name = esc_attr($_POST['contact_name']);
$contact_email = sanitize_email($_POST['contact_email']);
$subject = esc_attr($_POST['subject']);
$message = esc_attr($_POST['message']);
$error= array();
if (empty($contact_name)) {
$error['name_invalid']= "Name required";
}
if (empty($contact_email)){
$error['email_invaild']= "Email required";
}
// Im guessing some code here to check if row exists in database
if (count($error) >= 1) {
echo $invalid;
}
if (count($error) == 0) {
$data_array=array(
'Contact_Name'=>$contact_name,
'Contact_Email'=> $contact_email,
'Contact_Subject'=> $subject,
'Contact_Message'=> $message,
);
$rowResult=$wpdb->insert($table_name, $data_array,$format=NULL);
echo $successContact;
}
}
【问题讨论】:
-
下面的答案可能是你想要的,但更重要的是,如果之前输入的数据之前没有输入过,那么基于你想要找到的答案。通过检查电子邮件?联系人姓名 ?或发布主题? ...例如,如果通过电子邮件检查,您的意思是您只希望他们只提交 1 次表格,他们不能在不同的日子使用相同的电子邮件为不同的目的提交其他表格?
-
是吗?我不确定我现在是否想要。因此,只要所有字段与他们之前输入的内容不匹配,用户就可以多次提交表单。就像用户第一次提交表单一样,如果他们尝试再次提交所有相同的信息,它将无法正常工作,但如果他们使其中一个字段不同,那就没问题了。
-
好的,如果是这样,那么使用下面答案中的代码,然后将所有列放入
WHERE