0

更新:没有任何 php 文件正在运行。有没有办法解决这个问题?

我有一个包含电子邮件详细信息的页面:

    <form method="POST" sourceindex="44" action="semail.php" name="form1" onSubmit="return validate_form ( );">
        <p>
          <label>Your name:<br>
            <input sourceindex="47" name="mail_name" class="text_field" type="text">
          </label>
        </p>
        <p>
          <label>Your e-mail:<br>
            <input sourceindex="51" name="mail_email" 
class="text_field" type="text">
          </label>
        </p>
        <p>
          <label>Message:<br>
            <textarea sourceindex="55" name="mail_msg" cols="45" 
rows="5" class="text_area"></textarea>
          </label>
        </p>
        <input name="B1" type="submit" class="form_button" value="" />
      </form>

这是 php 代码(这都在 semail.php 中):

     <?php
$mail_to ="someEmail@hotmail.com";
$mail_subject = "Message From a Customer";
$mail_body ="Name of the Coustomer: ".$_POST['mail_name']."\n";
$mail_body .= "E-Mail Of the Coustomer: ".$_POST['mail_email']."\n";
$mail_body .= "The Message: ".$_POST['mail_msg']."\n";
if(mail($mail_to, $mail_subject, $mail_body))
echo "Thanks for your Message";
else 
echo "Failed to send the e-mail"
 ?>

每当我单击发送 semail.php 页面时都会显示此错误:未指定输入文件 有人可以帮我找出问题所在吗?

4

1 回答 1

1

要首先检查和验证 PHP 是否正在运行并且可用于当前的 Web 托管公司,请创建一个名为check_server.php并插入以下代码的文件:

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);

?>

如果成功,您将看到您的服务器信息和配置。它还将显示mail.

关于您的表单代码:

我的回答可能会或可能不会解决可能的托管公司问题,但是您的代码中有一些错误会导致不成功。

请阅读以下内容:

在使用以下表格时,成功发送和接收消息。

<form method="POST" sourceindex="44" action="semail.php" name="form1">
<p>
<label>Your name:<br>
<input sourceindex="47" name="mail_name" class="text_field" type="text">
</label>
</p>
<p>
<label>Your e-mail:<br>
<input sourceindex="51" name="mail_email" 
class="text_field" type="text">
</label>
</p>
<p>
<label>Message:<br>
<textarea sourceindex="55" name="mail_msg" cols="45" 
rows="5" class="text_area"></textarea>
</label>
</p>
<input name="B1" type="submit" class="form_button" value="Submit" />
</form>

注意:我确实需要指出您的 PHP 邮件处理程序不包含一些必需的元素。

例如,From:处理程序中不存在的元素/变量。

$mail_email= $_POST['mail_email'];

标题也不存在。Mail 需要 4 个变量来发送/接收电子邮件。

例如你有if(mail($mail_to, $mail_subject, $mail_body))

应该读为if(mail($mail_to, $mail_subject, $mail_body, $headers))

省略标头会导致邮件因缺少Email from而被标记为垃圾邮件,并显示为unknown sender

结合上面的表格,我包括一个 PHP 邮件处理程序的工作副本:

<?php
$mail_to ="someEmail@hotmail.com";
$mail_email= $_POST['mail_email'];
$mail_subject = "Message From a Customer";

$mail_body ="Name of the Customer: ".$_POST['mail_name']."\n";
$mail_body .= "E-Mail Of the Coustomer: ".$_POST['mail_email']."\n";
$mail_body .= "The Message: ".$_POST['mail_msg']."\n";

$headers = "From: $mail_email \r\n";
$headers .= "Reply-To: $mail_email \r\n";

if(mail($mail_to, $mail_subject, $mail_body, $headers))

echo "Thanks for your Message";
else 
echo "Failed to send the e-mail";
?>
于 2013-09-15T13:59:40.357 回答