表格提交与Mootools

时间:2011-03-17 10:06:24

标签: php ajax mootools

我有一份登记表。我需要通过Ajax Post(mootools)将它发送到php文件。 发布表单的最佳和安全方式是什么?很多thx

1 个答案:

答案 0 :(得分:2)

这可能是一个简短的主题或一个长话题,取决于你所说的'安全'是什么意思?你有什么顾虑?

看一下这个基本的例子: http://jsfiddle.net/dimitar/tr74c/

基本上,规则是不信任客户。永远。此示例在闭包(难以穿孔)中运行,通过输入并删除任何可能导致注入的脚本内容,如果稍后输出结果。然后它提交到服务器并输出回来以获得乐趣。

您不应该相信stripScripts()在PHP中也有效,strip_tags以及您mysql_real_escape_string等用户应用于数据的其他安全措施等。

这在您的domready块中。

(function() {
    var form = document.id("register"), els = form.getElements("input.required"), result = document.id("result");

    form.addEvent("submit", function(e) {
        e.stop();

        var errors = false;
        // clean inputs from cross site scripting and some basic validation, put yours in.
        els.each(function(el) {
            var value = el.get("value").stripScripts();
            if (value.length < 3) // example min 3 length
                errors = true;

            el.set("value", value);
        });

        if (!errors) {
            // set jsfiddle html.
            document.id("html").set("value", "Submited safe data was: User: " + document.id("login").get("value") + ", pass: " + document.id("pass").get("value"));
            new Request({
                url: this.get("action"),
                data: this,
                onComplete: function() {
                    result.set("html", this.response.text);
                }
            }).send();
        }
        else {
            alert("fill in all required fields with at least 3 chars");
        }
    });
})();

请记住HTML var是针对jsfiddle模拟的ajax输出而不是生产中真正需要的。