【发布时间】:2019-02-03 20:22:02
【问题描述】:
我创建了一个简单的 Html 页面index.html,用户可以在其中提交消息。创建了一个额外的 PHP 文件 email_form.php 来捕获表单提交并将表单内容发送到我的电子邮件地址。
index.html:
<form name="contactform" method="POST" action="email_form.php">
<div class="form-group">
<div class="form-row">
<div class="col" id="prenom">
<input type="text" class="form-control" placeholder="Prénom" required="True" name="prenom">
</div>
<div class="col" id="nom">
<input type="text" class="form-control" placeholder="Nom" required="True" name="nom">
</div>
</div>
<div class="col" id="age">
<input type="number" class="form-control" placeholder="Age" required="True" name="age">
</div>
<div class="form-row">
<div class="col" id="tel">
<input type="tel" class="form-control" placeholder="Téléphone" name="tel">
</div>
<div class="col" id="mail">
<input type="email" class="form-control" placeholder="Email" name="email">
</div>
</div>
<textarea class="form-control" id="exampleFormControlTextarea1" rows="3" placeholder="Your message" name="message"></textarea>
<div class="row">
<div class="col-xs-6" id="button">
<button type="submit" name="submit" class="btn btn-primary">Send</button>
</div>
</div>
</div>
</form>
email_form.php:
<?php
if(isset($_POST['submit'])) {
$email_to = "info@mysite.com";
$email_subject = "Email subject";
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$age = $_POST['age'];
$tel = $_POST['tel'];
$email = $_POST['email'];
$message = $_POST['message'];
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Prénom: ".clean_string($prenom)."\n";
$email_message .= "Nom: ".clean_string($nom)."\n";
$email_message .= "Age: ".clean_string($age)."\n";
$email_message .= "Telephone: ".clean_string($tel)."\n";
$email_message .= "Message: ".clean_string($message)."\n";
// create email headers
$headers = "From: ".$email."\n\n";
mail($email_to, $email_subject, $email_message, $headers);
header("Location: index.html");
}
?>
在网站上,当我尝试提交消息时,它会将我重定向到如下所示的链接:mysite.com/email_form.php,并显示错误消息“找不到页面”。我对 PHP 了解不多,也说不出我做错了什么。
【问题讨论】:
-
email_form.php 是否与您的索引页位于同一目录中?您正在运行什么样的服务器环境?如果不设置一些服务器指令来处理 PHP 文件,PHP 可能无法开箱即用。
-
向我们展示您的文件/文件夹结构(以树状视图的形式)。
-
email_form.php与index.html页面位于同一目录中。但是我不知道服务器环境。即使我没有在我的localhost上工作,我也需要它吗? -
@TomsRiver 看来您在服务器上没有那个
php文件,正如您所说Do I need it even though I'm not working on my localhost?没有该文件在服务器上如何工作?是的,您也需要在服务器上安装它。 -
当然文件在保存目录和服务器中为
index.html。我以为@tshimkus 正在谈论专门针对email_form.php的附加服务器