【发布时间】:2013-08-20 19:09:51
【问题描述】:
由于 Wordpress 表单似乎不想在他们的论坛上向我发送帐户密码以寻求帮助,我想我会从这里开始。
我为我的网站创建了一个表单,以便有人可以与我们联系。
但是当这个人点击“发送”按钮时,它会将他们带到一个 404 页面,地址为:
网站地址 - /working/mail.php
我知道 Wordpress 支持 .php 文件,并且我的名称正确,但不确定我是否遗漏了什么
<div id="FGSform">
<form action="mail.php" method="post" name="contactFGS" id="contactFGS">
<ul>
<li>
<label for="first-name">First Name</label>
<br>
<input type="text" id="firstname" name="firstname" required aria-required="true">
</li>
<br>
<li>
<label for="last-name">Last Name</label><br>
<input type="text" id="lastname" name="lastname" required aria-required="true">
</li>
<br>
<li>
<label for="email">Email</label>
<br>
<input type="email" id="email" name="email" required aria-required="true">
</li>
<br>
<li>
<label for="contact-reason" id="reason" name="reason">Reason for Contact</label>
<select required id="reason" name="reason">
<option value="3">Employment</option>
<option value="1">Print Services</option>
<option value="2">Design Services</option>
<option value="4">Questions</option>
<option value="5">Other</option>
</select>
</li>
<br>
<li>
<label for="comments">Comments</label>
<br>
<textarea name="comments" id="comments" cols="40" rows="10" required></textarea>
</li>
<br>
<li>
<input type="radio" id="newsletter" name="newsletter">
<label for="signmeup">Sign me up for newsletter, updates and other information about FGS</label>
</li>
<br>
<li>
<input type="submit" value="Send">
</li>
这是我的 .php 文件:
<?php
/* Email Variables */
$emailSubject = 'mail!';
$webMaster = 'kmurray.1@frgraphicsolutions.com';
/* Data Variables */
$name = $_POST['name'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$email = $_POST['email'];
$body = <<<EOD
<br><hr><br>
Name: $name <br>
Last Name: $lastname <br>
Email: $email <br>
Comments: $comments <br>
EOD;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body,
$headers);
/* Results rendered as HTML */
$theResults = <<<EOD
<html>
<head>
<title>sent message</title>
<meta http-equiv="refresh" content="3;URL=http://frgraphicsolutions.com/working/?page_id=8">
<style type="text/css">
<!--
body {
background-color: #444;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 20px;
font-style: normal;
line-height: normal;
font-weight: normal;
color: #fec001;
text-decoration: none;
padding-top: 200px;
margin-left: 150px;
width: 800px;
}
-->
</style>
</head>
<div align="center">Thank you!</div>
</div>
</body>
</html>
EOD;
echo "$theResults";
?>
我以前从未创建过表单,但 Wordpress 插件的设计很糟糕和/或使表单过于复杂,让我无法控制我想要的内容。
非常感谢任何帮助。
【问题讨论】:
-
如果您将 mail.php 文件的内容替换为 1 行“Hello World”PHP 文件,您还会得到 404 吗?如果是,这是您上传文件的位置/方式的问题。如果不是,那是 mail.php 中的 HTTP 响应标头代码有问题。
-
检查您的
mail.php文件是否确实存在,因为这是表单处理程序正在寻找的。如果它与您的表单不在同一个文件夹中,则可能会产生 404 错误。此外,某些服务器对mail.php和Mail.php的处理方式不同。尝试使用<form action="/working/mail.php"作为您的表单操作 -
尝试将您的整个代码(Form/PHP)放在一个文件中,然后将此作为您的操作
<form action=""并告诉我您是否得到任何结果。 -
@user2701059 您的代码可以运行并签出。您显然没有正确命名表单处理程序的操作,或者
mail.php文件不存在和/或您没有上传它。这是我的看法。 -
将您的表单操作设置为此然后
<form action="/working/wp-content/themes/NEW/mail.php",您现在应该可以收到邮件了。