我正在制作一个Wordpress主题,里面有一个Jquery动画联系表单。我已经让js工作了(一个div在点击时显示/隐藏,其中包含表格)。这是一个静态HTML / PHP example(单击“联系人”按钮)。你说的问题是什么?问题是实际的表格没有发送。我有php文件'contact engine.php',它将表单发送到我的模板目录中名为'php'的文件夹中。在HTML中我得到了:
<form method="post" action="<?php bloginfo('template_directory'); ?>/php/contactengine.php">
<label for="Name">Name:</label>
<input type="text" name="Name" id="Name" />
<label for="Email">Email:</label>
<input type="text" name="Email" id="Email" />
<label id="bericht" for="Message">Message:</label><br />
<textarea name="Message" rows="10" cols="20" id="Message"></textarea>
<input type="submit" name="submit" value="Submit" class="submit-button" />
</form>
经过一番摆弄后,我把问题缩小到了php文件的实际链接。 Wordpress不会将输入发送到php文件,也没有任何操作。在一些谷歌会议后,我发现大多数人都使用插件,我不喜欢。另外,似乎Wordpress不允许你编写自己的php片段来在主题中实现。我还发现了一些建议我应该将php片段放在每个模板附带的functions.php文件中,但我不知道如何链接到functions.php中的特定php片段。谁知道如何解决这个问题?提前谢谢!
P.S。 php脚本如下所示:
<?php
$EmailFrom = "contactformulier@stefanhagen.nl";
$EmailTo = "info@stefanhagen.nl";
$Subject = "Contactformulier StefanHagen.nl";
$Name = Trim(stripslashes($_POST['Name']));
$Tel = Trim(stripslashes($_POST['Tel']));
$Email = Trim(stripslashes($_POST['Email']));
$Message = Trim(stripslashes($_POST['Message']));
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
// $Body .= "Tel: ";
// $Body .= $Tel;
// $Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=../index.html\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>
答案 0 :(得分:1)
我知道当您在WordPress中提交表单时,您的代码将无法正常工作,因为WordPress会过滤掉所有的帖子变量。当您使用自己的脚本时,不应该发生。那么你的contactengine.php脚本是怎么样的呢?你在其中使用了包含WordPress吗?如果是这样,你会处理WordPress脚本。
我在您的网站上看到的是 &LT; ?php bloginfo('template_directory'); ?&GT; 没有出现。它也更好用 &LT; ?php echo get_template_directory_uri(); ?&GT;
如果人们使用插件,我也会这样做。易于更改后端的表单,但这可能是一个负面因素,因为客户可以更改它。