如果POST每次加载页面时都提交

时间:2015-01-06 08:31:40

标签: php

我正在尝试在PHP中创建一个简单的预订表单。但每次我点击菜单中的页面时,它都会在数据库中插入空字段。我似乎无法找到问题。

PHP代码:     

    if ($_POST['submit'])
    {
        $navn = $_POST['navn'];
        $email = $_POST['email'];
        $mobil = $_POST['mobil'];
        $antal = $_POST['antal'];
        $dato = $_POST['dato'];
        $tidspunkt = $_POST['tidspunkt'];
        $besked = $_POST['besked'];
    }

    $db = new mysqli('localhost', 'root', 'root', 'emil');
    $sql = "INSERT INTO reserver VALUES ( '', '$navn', '$email', '$mobil', '$antal', '$dato', '$tidspunkt', '$besked' )";
    $db->query($sql);


?>    

HTML CODE:     

        <input class="half" type="text" name="navn" placeholder="Indtast dit navn...">
        <input class="half" type="text" name="email" placeholder="Indtast din e-mail...">
        <input class="half" type="text" name="mobil" placeholder="Indtast din mobilnummer...">
        <input class="half" type="text" name="antal" placeholder="Indtast antal personer...">

        <select name="dato">
          <option value="vaelg">Vælg dato</option>
        </select>

        <select name="tidspunkt">
          <option value="volvo">Vælg tidspunkt</option>
        </select>

        <textarea name="besked" placeholder="Indtast din besked..."></textarea>

        <input type="submit" name="submit" value="Send besked">

</form>

1 个答案:

答案 0 :(得分:1)

由于您的插入查询超出了if条件,因此每当您刷新页面时,都会执行查询。因此,如果条件和放在里面查看isset()

<?php
    if (isset($_POST['submit']))
        {
            $navn = $_POST['navn'];
            $email = $_POST['email'];
            $mobil = $_POST['mobil'];
            $antal = $_POST['antal'];
            $dato = $_POST['dato'];
            $tidspunkt = $_POST['tidspunkt'];
            $besked = $_POST['besked'];


        $db = new mysqli('localhost', 'root', 'root', 'emil');
        $sql = "INSERT INTO reserver VALUES ( '', '$navn', '$email', '$mobil', '$antal', '$dato', '$tidspunkt', '$besked' )";
        $db->query($sql);

    } // complete your if here

    ?>