ASP.NET中用户输入文本的HTML解析办法
网页中用TextBox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为TextBox实际上是一个Windows组件,和网页显示标记如:<p>,<td>,<div>等,对字符的解析方法是不同的。比如前者的换行标记为“\r\n”,而后者为“<br>”。这就带来一个转换的问题。
在做转换之前,先来考虑几个问题:
1、 TextBox用“\r\n”来标记换行而网页中以“<br>”标记
2、 网页中连续的空格当做一个空格处理,比如“a b c”将会显示“a b c”
3、 用户输入特殊字符比如:“<”,“&”,“ ”,“<”,这些都是网页中有特殊意义的字符,会被解析,而用户输入的目的当然是不希望被解析。
现在来解决这几个问题,有一种解决办法是在显示的时候仍然用TextBox去显示,这样就不用做任何转换,只要把TextBox.ReadOnly设为true,这样在一定程度上能满足要求。但是往往为了网页的美观,这样做是不可取的。比较好的办法是去解析用户输入的字符串,可以做这样的转换:
第一步:
“<” à“<”
“&” à“&”
“ ”à“&nbsp;”
……(此处的省略号后文有说明)
第二步:
“ ” à“ ”
“\r\n” à“<br>”
这里必须分两步转换,因为如果你先做第二步转换的话混把用户输入的特殊字符串和由转换而的的特殊字符串混淆,比如:
用户输入:a b c d
第二步转换:a b c d
第一步转换:a&nbsp;b&nbsp;&nbsp;&nbsp;c&nbsp;d
可以看到,经过第一次转换后已经无法分辨用户输入的“ ”和转换而来的“ ”,在做第二次转换的时候就会统一处理就会出错。结果显示:a b c d
如果严格按照第一步,第二步的转换
相关文档:
在Web编程过程中,存在着很多安全隐患。比如在以前的ASP版本中,Cookie为访问者和编程者都提供了方便,并没有提供加密的功能。打开IE浏览器,选择“工具”菜单里的“Internet选项”,然后在弹出的对话框里单击“设置”按钮,选择“查看文件”按钮,在弹出的窗口中,就会显示硬盘里 ......
.ascx web用户控件
.asmx web服务
.asax 全局应用程序类
.sitemap 网站地图
.htm HTML页
.xml XML页
.master 母版页
.config web配置文件
.skin 外观文件
.css 样式表文件 ......
没有想到真的这么方便!更加坚定我学习ASP.NET的决心! 现在我们一起来看看吧
1,请确定你的电脑安装了以下的软件!
1.1, WINDWOS 2000以上版本(必装)
1.2, .NET Framework(必装)
1.3, Visual Studio .NET 2005(必装)
2,建立一个ACCESS数据库,
3,拖动VS2005 的GRIDVIEW 到 ......
自从上次有了一次破解验证码的经验后,就一直想自己写个像样点的验证码。今天无聊所以就写了,总体上来说还算很满意。就是有时复杂得肉眼都看不出是啥(这也跟图片太小有关系)。
这个验证码支持随机字体、字体大小、字体样式(普通、粗体、斜体)、字体颜色、自定义字符等。
代码中的libFont是字体库,libC ......
状态管理是你对同一页或不同页的多个请求维护状态和页信息的过程。与所有基于 HTTP 的技术一样,Web 窗体页是无状态的,这意味着它们不自动指示序列中的请求是否全部来自相同的客户端,或者单个浏览器实例是否一直在查看页或站点。此外,到服务器的每一往返过程都将销毁并重新创建页;因此,如果超出了单个页的生命周期,页 ......