代码之家  ›  专栏  ›  技术社区  ›  umvahed

指数php打开而不是发送消息

  •  0
  • umvahed  · 技术社区  · 7 年前

    我已经搜索过了 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文件索引。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 = 'avahed87@gmail.com'; 
        $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>';
        }
    ?>
    

    基本上我需要发送此信息的电子邮件地址附加。我对网络开发还比较陌生,所以任何对教程的建议或参考都会很有帮助。

    我模仿了 this article

    1 回复  |  直到 7 年前
        1
  •  0
  •   Laura    6 年前

    如果已安装 php 对于剩余的php文件,它运行良好,那么我想您的问题是:

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

    除非您使用 收割台 转到另一个文件。我注意到,如果直接打开 index.php 文件,因为直接打开时 $_POST['variables'] 。所以最好使用 if(isset($_POST['submit'])

    然后使用其余变量。