
2008年6月26日
出现的问题:
自己在写一个简单的留言板,同时也是在学习,中间遇到了很多问题。
在客户端文本框输入诸如“<h1>Hello</h2>”,“<script>alert('Hello')</script>”,或者单引号都会出现下面提示“...中检测到有潜在危险的Request.Form 值”,我增加了字符过滤
我先用HtmlEncod编码字符串 既:string str=str.Server.HtmlEncod(str); 问题依旧不能解决,我又写了个类用来过滤字符
其中过滤 z=z.Lower();z=z.replace("'","""); z=z.replace("<","*");问题依然不能解决,
从客户端(ctl00$ContentPlaceHolder1 $TextBoxContent="<script>alert('ok')<...")中检测到有潜在危险的 Request.Form 值。
分析问题
Html 标记以及<script>是application级别的,在还没有执行到你的页时候就已经把错误抛出了
问题解决
编辑web.config,在<system.web>里 加入 <pages validateRequest="false"/>
这样会是你的所有页面都不在提示错误
如果只想验证单个页面直接在页面的page指令中加入 validateRequest="false"/
posted @
2008-06-26 01:18 蓝色&星空 阅读(166) |
评论 (2) |
编辑

2008年6月25日
出现的问题
在修改页面获取文章ID时候
程序中断,提示在执行类时数据类型不匹配,仔细思考了一下,可能是数据库Access的ID 是自增编号,是数字类型的
不能在id上面在加'"+ID+"'
string cmdtext = "select * from tb_LeaveWord where ID='"+id+"'";
这句在SqlServer里面不会有错误的
后来在网上查了一下资料,确实也有出现过这样情况,以及access不能储存过程,我是初学者,讲的不好,把我遇到的问题写下来,
希望能对需要的人有帮助
解决方法
把 string cmdtext=string cmdtext = string.Format("select * from tb_LeaveWord where ID={0}", id);
问题解决
/*----------------下面是代码--------*/
int id = Convert.ToInt32(Request.QueryString["ID"].ToString());
string cmdtext = string.Format("select * from tb_LeaveWord where ID={0}", id);
oleData oledata = new oleData(); //oleData是自定义的处理Data的类
OleDbDataReader read = oledata.GetRead(cmdtext);
if(read.Read())
{
ShowName = read["Uid"].ToString();
ShowSubject = read["Subject"].ToString();
ShowContent = read["Content"].ToString();
ShowTime = read["DateTime"].ToString();
}
posted @
2008-06-25 00:47 蓝色&星空 阅读(126) |
评论 (2) |
编辑

2008年5月19日
之前经常遇见classname、csstext之类的词,却不知道如何用。通常在网页中样式表的调用方法有四种。
第一是外链,即<link rel="StyleSheet" href = "/control/css/base.css">的形式;
第二是输入样式表;第三是在网页头部申明,如<head> <style type="text/css">...;
最后是直接在对象后写样式,即<div style = "width:80%...;">的形式。我们用脚本调用样式,也要从这几方面入手。
一、通常情况下,我们可以通过改变外链样式的的href的值实现网页样式的实时切换,也就是“改变模板风格”。这时候我们首先需要赋予需要改变的目标一个id,如
<link rel = "stylesheet" type="text/css" id="css" href="firefox.css" />
调用时很简单,如<span on click="javascript:document.getElementById('css').href = 'ie.css'">点我改变样式</span>
二、局部改变样式,分为改变直接样式,改变className和改变cssText三种。需要注意的是:第一,javascript对大小写十分敏感,className不能够把“N”写成“n”,cssText也不能够把“T”写成“t”,否则无法实现效果。第二,如果改变className,则事先在样式表中申明类,但调用时不要再跟style,像
document.getElementById('obj').style.className="..."的写法是错误的!
只能写成:document.getElementById('obj').className="..."
但是如果用cssText的话,必须加上style,正确的写法是:
document.getElementById('obj').style.cssText="..."
改变直接样式我就不必说了,大家记得要写到具体样式即可,如
document.getElementById('obj').style.backgroundColor="#003366"
对于新人往往不知道CSS具体样式在javascript怎么写,而且有时候在不同浏览器中要求也不一样。如float在IE中写成styleFloat,在FIREFOX中写成cssFloat,这就需要大家的积累了
本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/5161.htm
posted @
2008-05-19 23:24 蓝色&星空 阅读(33) |
评论 (0) |
编辑

2008年5月17日
很多朋友在网上冲浪时,经常会遇到有些网页可以顺利地打开,而有些网页却无论如何也打不开,而在其它电脑中却又可以轻松地打开。出现这种情况,最大的可能就是你的IE浏览器中浏览了,而Hosts表文件往往是祸之源头。
一、什么是Hosts表文件
Hosts表文件是一个没有扩展名的文件,但是它属于文本文件格式的文件。你可以使用记事本程序对其进行编辑。Hosts表文件中存放的是一些常用的网浏览主机的浏览和其对应的IP地址。当我们在使用浏览器浏览一个网站时,在地址栏中输入网站的域名并回车后,系统必须通过某种渠道将这个域名转换为其对应的唯一的IP地址,这项工作通常是由DNS(域名解析服务器)服务器来完成的。而在系统将域名将给DNS服务器处理之前总是先在检查本地的Hosts表文件,看其中是否已经有相应的域名与IP地址的对应关系,如果有就会直接采用,因而会节约大量时间。
正因为这个原因,假如Hosts表文件中的某个域名与IP地址产生了错误的对应,当你在浏览器中输入这个域名试图打开其对应的网页时,就会出现打不开的情况,而那些没有映射错,或是没有在Hosts表中有相应记录的网站则可以正常地打开。这就是上面我们提到的为什么有些网址不能打开,而在其他电脑中可以顺利地打开的原因之所在。很多恶意程序经常会闹这样的恶作剧。
二、中招后的解决方案
知道了原理后,假如我们的浏览器中招而导致某些网站不能正常打开的话,我们就可以通过浏览改Hosts表文件来解决了。Hosts表文件在系统中的位置,Windows 9X系统存放在C:\Windows目录,Windows NT/2000系统,其保存在c:\winnt\system32\drivers\etc目录,Windows 浏览系统保存在c:\windows\system32\drivers\etc,如果找不到的话,可以通过系统的浏览工具进行搜索。找到后,直接用记事本将其打开,然后将除了“#”开头的其它行内容全部删除,例如“127.0.0.1 onlinestore.smgbb.cn”,最后单击“文件→保存”将其保存即可。当然,你也可以选择性地删除那些被屏蔽了的而你又想访问的网站,这样其他被屏蔽的网站则不会受影响。
如果你嫌上述手工方法太笨拙,你也可以通过专门的工具来达到目的。上网助手2005(浏览地址:http://dl.3721.net/download/assist4.exe)就可以让你轻松地修复Hosts表文件了:
下载并安装了上网助手后,在IE地址栏中找到“上网助手”图标,单击右侧的黑三角形,选择“修复IE→IE修复专家”,在打开的窗口中选择“编辑Hosts表”选项卡。
如果你不想一条一条地更改,直接单击“清空HOST表”按钮,最后单击“立即保存”按钮即可。否则你可以在列表中勾选那些被屏蔽掉而不能访问的网站域名,再单击“删除→立即保存”按钮。
三、经验之谈
当你遇到某些网站打不开,而有些网站可以顺利地打开,除了在IE浏览器中设置了网址过滤之外,Hosts表文件被动了手脚就是最可疑之处了。通过上面的方法,一般都可以轻松地解决。鉴于此,一些烦人的网站(例如,百度插件安装页),我们倒可以利用这个特性将其“屏蔽”掉,方法很简单,只要在Hosts表文件中的尾行中追加类似于:127.0.0.1 bar.baidu.com(127.0.0.1与bar.baidu.com之间用空格分隔开)一行,最后保存并退出Hosts表文件即可。你也可以使用上网助手的Hosts表文件编辑功能来操作,在图1所示的窗口中单击“添加”按钮,然后在下面的“IP地址”和“域名”栏中分别输入127.0.0.1 和bar.baidu.com,最后单击“立即保存”即可。按同样的方法,可以将其他不想让其在本台电脑中可以访问的网站“屏蔽”掉。
posted @
2008-05-17 23:55 蓝色&星空 阅读(6) |
评论 (0) |
编辑

2008年5月13日
默认的属性值都是static,静态,最关键的是
relative(相对)以及absolute(绝对)。
往往我们如果是COPY别人的代码,会把absolute属性与left、top配合起来制作相关的“悬浮层”效果。然而有时候我们需要针对某一个容器的悬浮效果,而不是针对窗口的。这时候通过高度、宽度的计算不但麻烦,而且几乎无法完美实现效果。我一开始也无能为力,后来发现只要把其上一级的样式属性position设置为relative就可以了。
也就是说,position的属性值的效果,直接受其容器样式中position属性值影响。
例如如下A-B的嵌套结构
<div id="A">
<div id="B">
</div>
</div>
当A的position为relative时,B的position为absolute才有效。这时候left:0、top:0就不再针对窗口文档,而是针对id为A的这个div了。
但是如果你在A中的padding="50px"
在A中的其他没有设置postion为absolute的会随着A的padding的值而变化
但是B不会变的它的position是相对上一级的
posted @
2008-05-13 21:59 蓝色&星空 阅读(18) |
评论 (0) |
编辑

2008年5月10日
新建Default.aspx
怎家DataList控件为其配置数据好数据源
增加四个LinkButton 控件
分别为:
<asp:LinkButton ID="linkbtnFirst" runat="server" onclick="labFirst_Click">首页</asp:LinkButton>
<asp:LinkButton ID="linkbtnFont" runat="server" onclick="labFont_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="linkbtnNext" runat="server" onclick="labNext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="linkbtnLast" runat="server" onclick="labLast_Click">最后一页</asp:LinkButton>
在加两个了Label控件
分别为:
当前页数:[<asp:Label ID="labpage" runat="server" Text="1"></asp:Label>]
总页数:[<asp:Label ID="labBackPage" runat="server" Text=""></asp:Label>]
在Default.aspx.cs文件中
自定义Mind()方法
//------------------------------------------------------------
protected void Page_Load(object sender EnventArgs e)
{
if (!IsPostBack)
{
Mind();
}
}
Private void Mind()
{
//获得当前页数
int curpage= Convert.toInt32(this.labPage.Text);
// 生成PageDataSource实例
PageDataSource ps= new PageDataSource();
SqlConnection con= new SqlConnection("连接字符串");
SqlDataAdapter sda= new SqlDataAdapter(("select *from BookInfo",con);
DataSet ds = new DataSet();
sda.Fill(da,"BooKInfo");
//获取数据源
ps.DataSource=da.DataTables["BookInfo"].DefaultView;
ps.AllowPaging= true;
ps.PageSize= 3;
ps.CurrentPageIndex=curpage-1;
this.linkbtnFirst.Enabled=true;
this.linkbtnFont.Enabled=true;
this.linkbtnNext.Enabled=true;
this.linkbtnLast.Enabled=true;
if(curpage==1)
{
this.linkbtnFirst.Enabled=false;
this.linkbtnFont.Enabled= false;
}
if(crupage==ps.PageCount)
{
this.linkbtnLast.Enabled= false;
this.linkbtnNext.Enabled= false;
}
this.labBackPage=Convert.ToInt32(ps.PageCount);
this.DataList1.DataSource= ps;
this.DataList1.DatakeyField="ID";
DataList1.DataSource=ps;
con.Close();
}
protected void linkbtnFirst_Click(object sender, EventArgs e)
{
labpage.Text = "1";
Mind();
}
protected void linkbtnFont_Click(object sender, EventArgs e)
{
labpage.Text = Convert.ToString (Convert.ToInt32(labpage.Text) - 1);
Mind();
}
protected void linkbtnNext_Click(object sender, EventArgs e)
{
labpage.Text = Convert.ToString(Convert.ToInt32(labpage.Text) + 1);
Mind();
}
protected void linkbtnLast_Click(object sender, EventArgs e)
{
labpage.Text = labBackPage.Text;
Mind();
}
posted @
2008-05-10 22:56 蓝色&星空 阅读(17) |
评论 (0) |
编辑

2008年4月28日
我在vs里面创建了HyperLink.aspx 文件 用GridView控件显示数据
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="id" DataSourceID="SqlDataSource1" EmptyDataText="没有可显示的数据记录。"
Height="230px" Width="410px">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" ReadOnly="True"
SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
<asp:CheckBoxField DataField="sex" HeaderText="男" SortExpression="sex" />
<asp:BoundField DataField="adr" HeaderText="adr" SortExpression="adr" />
<asp:HyperLinkField DataNavigateUrlFields="id"
DataTextField="name" />
</Columns>
</asp:GridView>
同时创建了RE_HyperLink.aspx 文件用于接受HyperLinkFiel 提交的 “id”
<form id="form1" runat="server">
<div>
<%=Request.QueryString ("id")%>
</div>
</form>
-----------------
这是我看的书上的,单是操作会出错
出错提示是(在RE_HyperLink.aspx中 ):
不能像使用方法那样使用不可调用的成员System.Web.HttpRequest.QueryString
请问各路高手哦 我改怎么修改,应该怎么接受?
posted @
2008-04-28 02:13 蓝色&星空 阅读(51) |
评论 (1) |
编辑

2008年4月27日
我在vs2008中创建了一个表(Massage)
三个字段分别是id. theme, content,设置id为主键 标识规范为“是”标志增量为"1"表示种子为1000 (当时不理解标志种子是什么)后来在添加数据库数据的时候
才知道第一个数据的id就是1000,我想修改1000为1,但是不能修改
于是我打开数据库定义,讲标志规范设置为“否”将主键id移除
回到数据库还是不能修改id
请问各位高手怎么回事啊。我刚接触不懂
谢谢帮忙
posted @
2008-04-27 10:35 蓝色&星空 阅读(15) |
评论 (3) |
编辑

2008年4月26日
SELECTING LECTURRS
At present ,in some college and universities ,students are allowed to select lectures on their own
It may some day become the main trend when people give priority to acadimic freedom
Students would take three major elements into consideration when making selections.Firste of all ,they will take teaching style into account Teaching styles to students' taste would help them learn more efficiently.Moreover students tend to choose lecturers with more experience,because such teachers tend to know about how to stimulate and inspire students and will help them master subjects with more easy ,Last ,students also put emphasis on lectures' academic' backgroud . From their perspective, teachers with higher academic degrees may provide more enlighten suggestions.
Everything has positive and negative aspects,and students' selecting lecturers is of no exception. It encourages students to be actively involved in the teaching process, and at the meantime, spur teachers to improve their teaching quality
posted @
2008-04-26 10:27 蓝色&星空 阅读(11) |
评论 (2) |
编辑