如何在Web表单中输入空字符?

时间:2011-08-05 18:49:33

标签: html forms

我正在测试一个ASP.NET网络表单,需要从输入中过滤掉空字符。

要测试此功能,我如何在html表单中实际输入空字符?我已经尝试过Alt + 0但它不起作用。

我知道我可以通过在URL中使用“%00”在GET请求中执行此操作。但是,我想以POST形式进行。

6 个答案:

答案 0 :(得分:7)

我能够使用TamperData Firefox插件完成此操作。

https://addons.mozilla.org/en-US/firefox/addon/tamper-data/

当给出防拆弹​​出窗口时,我在后置参数值字段中键入“%00”。

但是,我找不到只使用键盘输入空字符的方法。

答案 1 :(得分:1)

我的建议是将空字符写入您想要的html元素中 例如:

    document.getElementByID("my_null_tag").innerHTML += "\0"

答案 2 :(得分:0)

<html>
    <body onload='document.forms[0].submit();'>
        <form method="post" action="http://localhost/test.asp" >
            <input type="hidden" name="param" value="%00">
        </form>
    </body>
</html>

答案 3 :(得分:0)

您可以使用HTML实体。不完全确定需要多少个零但是:

&#0;

对于任意Unicode字符,使用十六进制表示法更容易。例如,&#x335D;打印㍝是U+335D


更新:这个问题确实非常棘手。我设法在HTML文档中插入一个空字符(使用服务器端脚本并使用十六进制编辑器验证)。正如所料,HTML实体没有区别,可以是either &#0; or &#x0;。但浏览器不会在post请求中发送该字符(使用Firefox和Firebug测试):它发送%EF%BF%BD,即REPLACEMENT CHARACTER' (U+FFFD)。确切地说,它在一个用于在文档中打印null的框中发送询问标记(假设null不可打印)。

我的猜测是你的测试人员需要编写任务脚本。

答案 4 :(得分:0)

使用AJAX提交表单。即在地址栏中粘贴这样的内容:

javascript:(function(){var xhr=new XMLHttpRequest();xhr.onreadystatechange=function(){if(this.readyState==4){document.write(this.responseText)}};xhr.open("POST",'/form',true);xhr.send("\0");})()

这里是打开的,所以你可以真正看到它:

(function() {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (this.readyState == 4) {
            document.write(this.responseText);
        }
    };
    xhr.open("POST", '/form', true);
    xhr.send("\0");
})()

当然,这有一些限制,因为它只是盲目地取回当前页面的内容而不管它回来了什么。但这可能足以说明是否出现了问题。

答案 5 :(得分:-3)

带有斜线的拉丁字符O通常可以作为Null / Nul的符号(如果您愿意,则为空白)。如果您使用的是数据库驱动的应用程序,则需要根据需要清理此符号以替换为null或空白。

怎么做: 您最喜欢的编辑器中的ALT + 0216应该为您提供Ø - 为此显示目的,为空。

然后,作为示例和最佳实践,您将在表单提交传递到数据库之前对其进行清理。

示例案例 如果提供数据库驱动的PHP站点,您对这个特定字符的卫生可能看起来像......

$dbstring = str_replace(Ø,NULL); and the value will be NULL

或尝试......

$dbstring = str_replace(Ø,""); and the value will be BLANK

或者,您可能希望使用我在下面提到的HTML实体代码进行此显示。

Alt + 0216解释 如果使用设置为英语(美国)的普通104键键盘作为主要语言,请按住ALT键,并在按住时使用数字键输入0216.然后释放ALT键,您的角色应出现。 *这主要是Windows方法。 Macintosh,(X)nix和bsd用户,你可能会被困在使用HTML实体代码。

特别注意:使用键盘顶部数字不起作用。 如果您使用的笔记本电脑或其他设备使这种情况变得困难或不可能。尝试替代方法:使用 HTML实体代码:

&Oslash; = Ø (usually for null)
&oslash; = ø (could be used, but the upper-case version seems more appropriate.)

其他可能有用的想法: Nul vs Null vs Blank - 它们从根本上意味着同样的事情,但不同的编程语言使用或要求这些不同。 (还有其他人,比如NullPTR for Null Pointer。)

我试图用NUL / NULL做的一点是,提交的变量'不存在'或者只是'根本不存在'。在大多数情况下,你可以简单地称之为“空”并被理解。

某些数据库系统将Blank和NULL视为同一件事。其他,Blank实际上是一个空值,而NULL根本就没有值(如上所述。)

希望这有助于构建您正在寻找的视图。

相关问题