我目前正在通过 VisualStudio 在本地实时服务器上运行我的网站。我希望我的 HTML 联系表单(写在 index.html 文件中)在我的 HTML 表单中的“提交”按钮被点击时使用 PHPMailer(写在 contact-form-handler.php 中)发送邮件。当我点击按钮时,我被带到一个页面,上面写着“此页面无法正常工作 HTTP 405”。有人可以向我解释为什么会发生这种情况以及如何解决它。索引.html:<form id="contact-form" method="post" action=""> <label for="name">NAME</label> <input id="name" type="text" name="name" required> <label for="mob">MOBILE NUMBER</label> <input id="mob" type="text" name="mob" required> <label for="email">EMAIL</label> <input id="email" type="email" name="email" required> <label for="message">MESSAGE</label> <textarea id="message" type="text" name="message" required></textarea> <input class="submit-button" type="submit" value="Submit" name="submit"/></form> 联系表单handler.php:<?phpif (isset($_POST['submit'])) { require_once('PHPMailer/PHPMailerAutoload.php'); $mail = new PHPMailer; $mail->Host = 'smtp.gmail.com'; $mail->Port = '587'; $mail->SMTPAuth = true; $mail->SMTPSecure = 'ssl'; $mail->Username = 'myemailaddress@gmail.com'; $mail->Password = 'mypassword'; $mail->setFrom($_POST['email'], $_POST['name']); $mail->addAddress= 'myemailaddress@gmail.com'; $mail->isHTML(true); $mail->Subject = 'Test'; $mail->Body= '<h1> name:'.$_POST['name'].'<br> Email: '.$_POST['email'].'<br> Mobile: '.$_POST['mob'].'<br> message: '.$_POST['message'].'</h1>'; if(!$mail->send()){ $result="something went wrong. Please try again."; } else{ $result="Success!" }}?>
2 回答
RISEBY
TA贡献1856条经验 获得超5个赞
一个HTTP 405错误意味着你必须要求使用不受支持的方法的资源,因此出于某种原因你的Web服务器不允许POST请求的端点。您可以尝试将表单标签更改为:
<form id="contact-form" method="get" action="">
这不是一个很好的解决方案 - 更好的方法是修复您的服务器配置以允许 POST 方法。
蛊毒传说
TA贡献1895条经验 获得超3个赞
我会在你的问题下发表评论,但我不能。@RiggsFolly 是对的,你必须放置action
你的 php 文件的属性,因为表单必须将它发送到你的contact-form-handler.php
. 确保你没有在你的代码中使用 php 代码,index.html
因为它不起作用。如果您添加来自 的问题代码会很好contact-form-handler.php
,也许它可以帮助我们找出问题所在
- 2 回答
- 0 关注
- 536 浏览
添加回答
举报
0/150
提交
取消