Index.php打开而不是发送消息

问题描述 投票:0回答:1

我搜索过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 html5 web submit
1个回答
0
投票

如果你已经安装了php并且它对于剩余的php文件运行正常,那么我想你的问题将是这样的:

验证正确时,提交后它将自动转到action属性中指定的php文件。

除非你使用标题转到另一个文件,否则php文件将保持打开状态。我注意到的一件事是,如果你直接打开index.php文件,你的代码可能会出错,因为直接打开时不会有任何$_POST['variables']。所以最好使用if(isset($_POST['submit'])

然后使用剩余的变量。

© www.soinside.com 2019 - 2024. All rights reserved.