我有一个html文件(即index.html)。我有我的联系表格的html代码(即姓名,电子邮件等。字段)。如果可能,我在哪里放置我的PHP代码而不将index.html转换为index.php文件?
答案 0 :(得分:0)
如果你想要解释php代码而不是被显示,那么以某种方式回应对该文件的请求的http服务器必须知道它是否意味着开始解释代码。通常,这是使用文件扩展名.php
完成的。
您当然可以 配置您的http服务器,以便在请求.html
个文件时执行相同的操作。但那将是一个非常糟糕的方法。不要这样做。
因此,请将您的文件重命名为index.php
并继续使用。它最简单,透明和健壮。
如果您关注网址的外观,请查看“重写”和“漂亮的网址”,这些网址允许使用http://my.server/index
或简称http://my.server/
等网址。在http服务器内部重写需要在内部将此类请求映射到index.php
文件,而不更改用户浏览器中可见的URL。
但是我想在这里提一件事,因为我经常看到初学者陷入这个问题:如果你的php
代码只包含已发布表单的处理,那么也许验证和存储,那么绝对没有理由把它放在与html标记相同的文件中!相反,不要!将浏览器转发到另一个视图后,使用单独的文件进行处理。只有当您需要将动态值插入到html标记中时,才有必要将php嵌入到标记中。这正是php最初创建的,你应该通过将静态html文件转换为php文件(.php
名称扩展名)来实现。
答案 1 :(得分:0)
实际上并不困难。
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> </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);
?>
$_POST['name']
$_POST['email']
&amp; $_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>
当然,您需要进行一些验证,以确保提交空表格和其他废话。但这与问题不同。