表单onSubmit安全性

时间:2014-01-28 09:00:34

标签: javascript php html forms

我正在忙于一项任务,我必须建立一个网站,其中的用户应该至少订购1个产品,然后才能继续。我已经做到了这一点,使用这段javascript代码一切正常:

function validateForm()
    {
        var allEmpty = (document.forms['orderform'].PizzaMargherita.value == "" &&
                        document.forms['orderform'].PizzaFungi.value == "" &&
                        document.forms['orderform'].PizzaHawai.value == "" &&
                        document.forms['orderform'].PizzaQuattroStagioni.value == "" &&
                        document.forms['orderform'].PizzaCalzone.value == "" &&
                        document.forms['orderform'].BroodjeShoarma.value == "" &&
                        document.forms['orderform'].BroodjeDoner.value == "" &&
                        document.forms['orderform'].DurumDoner.value == "" &&
                        document.forms['orderform'].KnoflookSaus.value == "" &&
                        document.forms['orderform'].WhiskeySaus.value == "" &&
                        document.forms['orderform'].SambalSaus.value == "");

        if(allEmpty)
        {
            document.forms[0].submit.disabled=true;
        }
        else {  
            document.forms[0].submit.disabled=false;
        }
    }

除了使用f12(显示源代码)并在输入字段中删除min="1"之外,应该有某种安全性。

<tr>
    <td>Pizza Margherita</td>
    <td><input type="number" id="countMargherita" class="formnumbers" name="PizzaMargherita" onChange="validateForm(this);changeTotalFromCount(this);" min="1" max="99" data-unitprice="7"/></td>
    <td><span id="totalMargherita"></span></td>
    <td>&#8364; 7.00</td>
</tr>

我真的不知道我应该怎么做,有人告诉我我应该使用javascript,但据我所知你可以删除onChange="validateForm(this);,这样也不是很安全。我正在寻找一种方法,如果用户订购示例订单-2产品,它将阻止表单提交。或者只是输入一个错误。

使用f12无法删除或找不到的东西,我不知道我说的是否正确但据我所知你无法使用查看源代码找到PHP代码。

我在PHP或JS方面经验不足,所以非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

客户端验证只是为用户提供便利。绝对无法阻止恶意客户端发送古怪的值。

最好的办法是在服务器上进行验证,以确保所有值都合理,并在适当的情况下重定向回页面。

答案 1 :(得分:0)

尝试document.document.getElementById()::

function validateForm()
{
    var allEmpty = (document.getElementById("PizzaMargherita").value == "" &&
                    document.getElementById("PizzaFungi").value == "" &&
                    document.getElementById("PizzaHawai").value == "" &&
                    document.getElementById("PizzaQuattroStagioni").value == "" &&
                    document.getElementById("PizzaCalzone").value == "" &&
                    document.getElementById("BroodjeShoarma").value == "" &&
                    document.getElementById("BroodjeDoner").value == "" &&
                    document.getElementById("DurumDoner").value == "" &&
                    document.getElementById("KnoflookSaus").value == "" &&
                    document.getElementById("WhiskeySaus").value == "" &&
                    document.getElementById("SambalSaus").value == "");

    if(allEmpty)
    {
        document.forms[0].submit.disabled=true;
    }
    else {  
        document.forms[0].submit.disabled=false;
    }
}