在HTML文件中放置PHP代码的位置(对于联系人表单)


Where to put PHP code in an HTML File (For a Contact Form)?

我有一个html文件(即index.html)。我有html代码为我的联系形式(即姓名,电子邮件等。字段)。如果可能的话,在不将index.html转换为index.php文件的情况下,将PHP代码放在哪里?

如果您希望php代码被解释而不是被显示,那么以某种方式响应该文件请求的http服务器必须知道它意味着开始解释代码。通常使用文件扩展名.php来完成。

您当然可以配置您的http服务器,以便在请求.html文件时执行相同的操作。但这将是一个非常糟糕的方法。不要这样做。

所以把你的文件重命名为index.php,然后继续。它是最简单、透明和健壮的。

如果你关心你的URL看起来如何,然后看看"重写"answers"漂亮的URL",它允许使用像http://my.server/indexhttp://my.server/这样的URL。在http服务器内部进行重写时,要注意在不更改用户浏览器中可见的URL的情况下将这些请求内部映射到index.php文件。

然而,有一件事我想在这里提到,因为我经常看到初学者陷入这个问题:如果你的php代码只包含一个张贴表单的处理,所以可能验证和存储,那么绝对没有理由把它放在同一个文件作为html标记!相反,不要!处理完成后,将浏览器转发到另一个视图,使用单独的文件进行处理。只有当您需要将动态值插入到html标记中时,才有必要将php嵌入到标记中。这正是php最初创建的目的,您应该通过将静态html文件转换为php文件(.php名称扩展名)来实现这一点。

其实没那么难。

1)在您的打开表单标记<form action="contact-proc.php" method="post" name="contact" id="contact">中,确保您有一个操作(收集数据并发送电子邮件的处理页面)。

html页面示例

<form action="contact-proc.php" method="post" name="contact" id="contact">
<table border="0" align="center" cellpadding="5" cellspacing="0">
  <tr>
    <td colspan="2" height="5px"></td>
  </tr>
  <tr>
    <td><div align="right"><strong><font color="#FF0000">*</font>Name:</strong></div></td>
    <td><input name="name" type="text" size="35" /></td>
  </tr>
  <tr>
    <td><div align="right"><strong><font color="#FF0000">*</font>E-Mail Address:</strong></div></td>
    <td><input name="email" type="text" size="35" /></td>
  </tr>
  <tr>
    <td><div align="right"><strong><font color="#FF0000">*</font>Message:</strong></div></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2"><textarea name="comments" cols="50" rows="10" wrap="virtual"></textarea></td>
  </tr>
  <tr>
    <td align="center"><div align="center"><input name="Submit" type="submit" value="Send" /></div></td>
  </tr>
</table>
</form>

2)创建一个页面来处理数据并发送邮件。本例中为contact-proc.php

3)在处理页面上包括这样的内容…

<?php
$email = 'your-email-address@domain.ext';
$domain = 'your-domain-name'; // ie: google.com
$strVisitorInfo = ''.
"Customer Service Request from Your WebSite'r'n'r'n" .
"Name    : ".$_POST['name']."'r'n" .
"E-Mail   : ".$_POST['email']."'r'n" .
"Comments : 'r'n" .
$_POST['comments'];
$to = $Email;
$subject = "Customer Service Request from Your WebSite";
$headers = 'From: noreply@'.$domain . "'r'n" .
'Reply-To: noreply@'.$domain . "'r'n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $strVisitorInfo, $headers);
?>

Where $_POST['name'] $_POST['email'] &$_POST['comments']html页面上表单元素的名称。你可以修改这些来匹配你的表单

在你的处理页面,你可以包括一些信息,让访问者知道有电子邮件已经发送。像…

<div align="center">Thank you <?php echo $_POST['name'] ?>.<br>
Your email has been sent. We will be in touch with you soon.
</div>

当然,您需要做一些验证以确保提交空表单和其他无意义的内容。但这是一个不同的问题