0

我正在尝试在我正在处理的网站上设置联系表格,其代码如下所示:

<form action="contact.php" method="POST">
           <ul>
        <li>
            <label for="name">Name:</label><br>
            <input type="text" name="name" />
            </li>
            <br>
            <li>
            <label for="email">E-mail:</label><br>
            <input type="email" name="email" />
            </li>
            <br>
            <li>
            <div id="label">Enquiry:</div>
            <select name="interest"><br>
            <option value="Wedding">Wedding</option>
            <option value="Engagement/Couple">Engagement or Couple</option>
            <option value="Portrait">Portrait</option>
            <option value="Family">Family</option>
            <option value="Children">Children</option>
            </select>
            </li>
            <br> 
            <li>
            <label for="message">Message:</label><br>
            <textarea name="message" cols="40" rows="6"></textarea>
            </li>
            <br>
            <li>
            <button class="submit" type="submit" value="Submit">Submit Form</button>
            </li>
       </ul>
</form>

最初我只是将表单操作作为 mailto:myemail@example.com 但我显然更希望用户只提交表单并发送电子邮件,而不是仅仅打开他们的电子邮件应用程序。我正在尝试构建一个 PHP 脚本来执行此操作,但还没有运气,可能是因为这是我第一次看 PHP,更不用说尝试编写它了。

我查看了许多不同的示例并深入研究了 PHP 手册以寻求帮助,但无论我写什么都会导致相同的结果,按下表单上的提交按钮并且在我的收件箱中什么也没有收到。所以我开始了一种故障查找过程来尝试帮助确定问题。我会从非常基本的 PHP 脚本开始,然后尝试在每个脚本中添加更多内容,看看哪里出错了。

我首先将表单操作更改为 php 测试脚本,如下所示:

<?php
phpinfo() ;
?>

这工作正常,并按原样显示了 php 信息页面。太好了,所以我知道我的主机支持 php 并安装了它。那么这不是问题所在。其次,我将表单操作更改为以下代码:

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?> 
</body>
</html>

它再次按预期工作,显示 Hello World 段落。在此之后,我尝试了我能想到的最基本的 php 邮件脚本,它看起来像这样:

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
mail('myemail@example.com', 'Contact Form', 'This is a test');
?>
</body>
</html>

当我按下表单上的提交按钮时,所有这一切都成功了,在浏览器的地址栏中显示了一个空白页面,其中包含我的 php 脚本的 url,并且我没有收到任何电子邮件。不在我的收件箱或垃圾文件夹中,无处可去。由于这是一个如此简单的脚本,我一开始就有两道思路。1是我只是在做一些非常基本的错误,考虑到我对php的了解非常有限,这很有可能。2是发生了更复杂的事情,也许我的主机的php设置不适合我正在尝试做的事情?我不知道。

对于这个问题冗长,我深表歉意,我只是想展示我到目前为止所做的事情,希望它能在你们能给我的任何帮助下对你们有所帮助。非常感谢您对我的问题的任何帮助,谢谢。

4

4 回答 4

1

要考虑的一件事是您的电子邮件可能被您的电子邮件提供商阻止。我有一个使用 Heart Internet 的主机,我尝试从 Heart 托管的网站向我的 AoL 帐户发送一封电子邮件,但该电子邮件根本不显示。但是任何发往 Gmail 的电子邮件都可以。这是因为 AoL 已阻止来自 Heart 的所有电子邮件,因为网站会产生垃圾邮件。

我将在下面输入一些应该可以工作的 PHP 代码:

// Input your desired location instead of email address
$to = 'email address';
$subject = 'Test email';

$message = '<html><body>';
    $message .= '<h1>This is an email.</h1>';
    $message .= '<p>I hope you like it.</p>';
$message .= '</body></html>';

$headers = 'MIME-Version: 1.0\r\n';
$headers .= 'Content-Type: text/html; charset=ISO-8859-1\r\n';

mail($to,$subject,$message,$headers);
于 2013-11-12T21:55:55.763 回答
1

或者你是从 localhost 运行的。
或者您的 php.ini 文件中的 SMTP 设置未正确配置

于 2013-11-12T22:00:14.140 回答
0

我的主机阻止了我正在使用的包裹的邮件服务器。我应该检查的东西,但在我的沮丧中我忽略了它。感谢您没有用愚蠢的答案回答我的愚蠢问题。很抱歉让你读了这么多,但一个新鲜的头脑和一双眼睛总是能创造奇迹!

于 2013-11-12T23:08:02.810 回答
-2

检查表格顶部,写<form action="contact.php" method="POST">的是平均表格值发布到contact.php文件,其中写入邮件函数以发送带有表格数据的电子邮件。请出示代码contact.php

于 2013-11-12T21:47:07.357 回答