Php 我的表格安全吗?

Php 我的表格安全吗?,php,html,forms,Php,Html,Forms,我一直在努力阅读很多关于如何获得一个安全的html表单来给我发邮件。我已经创建了一个表单,但我对它的安全性很好奇。我还没有添加电子邮件控件 因为它将出现在一个网站上,我害怕任何注射。到目前为止,我所做的是使用htmlentities()来保护操作,使用了w3学校的test_输入函数,并使用了require函数,但我知道这很容易去掉 提前谢谢 <?php // define variables and set to empty values $name = $

我一直在努力阅读很多关于如何获得一个安全的html表单来给我发邮件。我已经创建了一个表单,但我对它的安全性很好奇。我还没有添加电子邮件控件

因为它将出现在一个网站上,我害怕任何注射。到目前为止,我所做的是使用htmlentities()来保护操作,使用了w3学校的test_输入函数,并使用了require函数,但我知道这很容易去掉

提前谢谢

<?php
        // define variables and set to empty values
        $name = $email = $gender = $comment = $website = "";
        function test_input($data) {
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;}
        if ($_SERVER["REQUEST_METHOD"] == "POST") {
            $name = test_input($_POST["name"]);
            $email = test_input($_POST["email"]);
            $website = test_input($_POST["telnr"]);
            $comment = test_input($_POST["message"]);
            echo"Bedankt voor het invullen, we nemen zo snel mogelijk contact met u op.";
            }
            else{
            ?>
            <form action="<?php echo htmlentities($_SERVER["PHP_SELF"]);?>" method="post">
                <div class="form-group row">
                    <label for="inputEmail3" class="col-sm-2 col-form-label">naam</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" name="name" placeholder="naam" required>
                    </div>
                </div>
                <div class="form-group row">
                    <label for="inputPassword3" class="col-sm-2 col-form-label">e-mail</label>
                    <div class="col-sm-10">
                        <input type="email" class="form-control" name="email" placeholder="e-mail" required>
                    </div>
                </div>
                <div class="form-group row">
                    <label for="inputPassword3" class="col-sm-2 col-form-label">tel.nr</label>
                    <div class="col-sm-10">
                        <input type="tel" class="form-control" name="telnr" placeholder="telefoonnummer" required>
                    </div>
                </div>
                <div class="form-group row">
                    <label for="inputPassword3" class="col-sm-2 col-form-label">bericht</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" name="message" placeholder="bericht" required>
                    </div>
                </div>
                <div class="form-group row text-center">
                    <div class="offset-sm-2 col-sm-10">
                        <button type="submit" class="btn btn-primary">Verstuur bericht!</button>
                    </div>
                </div>
            </form>

        <?php } ?>


当然很好,但是,除非您需要它提供的可移植性,否则您可以将事情简化一点,并对表单目标进行硬编码。

它的作用是什么?您似乎没有发送或保存数据。如上所述,它没有任何作用。构成表单邮件的行仍然需要添加。有预定义的函数来清理输入:(替换自定义的
test\u input()
)谢谢,我将开始使用它!