我搜索过PHP contact form script won't run/ page opens instead
click submit in html and run php code
但无法得到答案 - 它没有用。
正如标题所示:我正在尝试将网页上显示的信息提交到列出的电子邮件地址。
这是我的html的发送消息部分:
<form method="post" action="contactform/index.php">
<div class="form-group">
<label>First Name</label>
<input name="fname" placeholder="Type Here">
<div class="validation"></div>
</div>
<div class="form-group">
<label>Last Name</label>
<input name="surname" placeholder="Type Here">
<div class="validation"></div>
</div>
<div class="form-group">
<label>ID Number (For Voting)</label>
<input name="idnumb" placeholder="Type Here">
<div class="validation"></div>
</div>
<div class="form-group">
<label>Address</label>
<input name="addr" placeholder="Type Here">
<div class="validation"></div>
</div>
<div class="form-group">
<label>Email</label>
<input name="email" type="email" placeholder="Type Here">
<div class="validation"></div>
</div>
<div class="form-group">
<label>Message</label>
<textarea name="message" placeholder="Type Here"></textarea>
<div class="validation"></div>
</div>
<label>*What is 2+2? (Anti-spam)</label>
<input name="human" placeholder="Type Here">
<div class="text-center"><button id="submit" name="submit" type="submit" value="Submit">Send Message</button></div>
</form>
这是页面底部的代码段。
有一个contactform.js用于验证。然后有一个php文件index.php位于服务器上名为contactform的文件夹中:
<?php
$firstname = $_POST['fname'];
$surname = $_POST['surname'];
$idnumb = $_POST['idnumb'];
$address = $_POST['addr'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: Test';
$to = '[email protected]';
$human = $_POST['human'];
$body = "Registration from $firstname $surname\n ID:$idnumb\n Email : $email\n Address : $address\n Message:\n $message";
if ($_POST['submit'] && $human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
} else if ($_POST['submit'] && $human != '4') {
echo '<p>You answered the anti-spam question incorrectly!</p>';
}
?>
基本上我需要将此信息发送到附加的电子邮件地址。我对Web开发还很陌生,所以对教程的任何建议或参考都会有所帮助。
我模仿了this article的代码
如果你已经安装了php
并且它对于剩余的php文件运行正常,那么我想你的问题将是这样的:
验证正确时,提交后它将自动转到action属性中指定的php文件。
除非你使用标题转到另一个文件,否则php文件将保持打开状态。我注意到的一件事是,如果你直接打开index.php
文件,你的代码可能会出错,因为直接打开时不会有任何$_POST['variables']
。所以最好使用if(isset($_POST['submit'])
然后使用剩余的变量。