2005年4月21日星期四

去掉免费空间广告的方法

为了用免费空间,我们不得不忍受广告的骚扰,如何去掉讨厌的广告,看下面的文字就可以了。如何去掉广告:请将以下代码加到你的网页内就可以了!全部通杀!

 

呵呵,他们加了弹出广告的过滤,我们继续在他的基础上继续过滤,呵呵...计数器正常工作.大家放心使用.

<!-- 屏蔽广告代码开始 -->
<script>
var e3i5 = document.getElementsByTagName("DIV");
var fqy = e3i5.length;
for (var i=0; i<fqy; i++)
{
 e3i5[i].style.display="none";
}
//下面这段为屏蔽弹出广告,如果感觉没必要可以去掉
function delehb()
{
window.open("http://www.williamlong.info/");
}
setTimeout("delehb()",1000)
</script>
<!-- 屏蔽广告代码结束 -->


屏蔽页面底部的广告,只需要在页面底部添加如下代码就可以了

document.write (‘<div style="display: none">');

2005年4月20日星期三

WIN2000下160G大硬盘只认120G的问题和解决方法

问题描述:新购买的160G硬盘,BIOS中显示正常,WIN2000系统下,磁盘管理器中,认160G的硬盘为128G。

 

解决方法:经过查询资料,发现是需要48位寻址的支持的原因。

先安装操作系统补丁:Win2000的用户,打上SP4补丁。WinXP的用户,打上SP1补丁,事实上是,即使打过SP1的补丁也要检查 Atapi.sys 的版本,因为只有5.1.2600.1135版本才能完全支持48 位 LBA。

然后手工编辑注册表,操作如下:

在"开始→运行"中键入regedit,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Atapi\Parameters下,建立一个DWORD值,名为EnableBigLba,数值填1。 修改后重启机器即可。

重启后磁盘管理器中已经能正确认出160G硬盘,问题解决。

2005年4月19日星期二

预防SQL注入漏洞函数

仅仅代表我的观点.不怕见笑.有问题请大家指教!我想如果你是牛人,那这个已经不是值得你看的内容,只是觉得对与很多刚入门的ASP程序员来说还是有点实际意义,所以不怕被大家笑话,写了贴在这里!

 

<%
Function checkStr(str)

if isnull(str) then

checkStr = ""

exit function

end if

checkStr=replace(str," ","")

checkStr=replace(str,"'","'")

checkStr=replace(str,";","'")

checkStr=replace(str,"--","'")

checkStr=replace(str,"(","'")

checkStr=replace(str,"[","'")

checkStr=replace(str,"$","'")

end function

%>


相关函数
Left(string, length)
 返回指定数目的从字符串的左边算起的字符
 
Asc(string)
 返回与字符串的第一个字母对应的 ANSI 字符代码。
 
Mid(string, start[, length])
 从字符串中返回指定数目的字符。
 
***********************************
我自己的做法是把字符串限定在8个字符内,呵!(千万条数据啊,没谁有这样大的记录吧?99,999,999呵!不够用,才怪了!除非你的数据从来不更新删出,那也没办法,问题是sql到了这样的时会是怎么样的速度)


---<%
if len(request.querystring("ddd"))> 8 then
response.write(黑我啊,不要了。少来)
response.end '最好有这句

'''初步是判断是否是数字=======IsNumeric 函数
if IsNumeric(request.querystring("ddd")) then

Execute("select * from [table]")

....

else

response.write(黑我啊,不要了。少来)
response.end '最好有这句

%>

当然了,加上上面的函数,在你的SQL过程里,效果就非常完美了!

呵!!!在变态点做个函数。

---<%
Function checkStr(str)

if isnull(str) then

checkStr = ""

exit function

end if

checkStr=replace(str," ","")

checkStr=replace(str,"'","'")

checkStr=replace(str,";","'")

checkStr=replace(str,"--","'")

checkStr=replace(str,"(","'")

checkStr=replace(str,"[","'")

checkStr=replace(str,"$","'")

checkStr=replace(str,"asc'," ")

checkStr=replace(str,"mid"," ")

checkStr=replace(str,"delete"," ")

checkStr=replace(str,"drop"," ")

'''呵!!我这里没屏蔽select,count,哈!想起来我就笑,太变态了,那其不是我什么都不用了不是更更安全啊!!!呵!!~^)^~
end function

%>


足够了,这个函数加载到sql选取记录集的地方。
如:rsql="select * from table where xxx="&checkstr(request.querystring("xxyy"))&""
或者来就判断字符串

说的有点林乱,但是就是这些了,对于普通的"黑客"已经足够他毫些时间了。但是对于老到的真正意义的黑客,这些都不是万能的东西,人家连服务器都黑,你能怎么样啊?嘿!!

看了些资料,结合自己的经验,写在这里。算是自己复习一下,看到的朋友也可以一起交流!

 

2005年4月18日星期一

WEBS上自动下载控件的实现方法

例子代码如下所示:


<SCRIPT LANGUAGE="VBScript">
<!--

Function OCXTest()
OCXTest = 1
dim ocx
on error resume next
err.clear
set ocx = createobject("I_FLEXGRID.FlexGridCtrl.2")
set ocx = nothing
if err <> 0 then
OCXTest = 0
err.clear
exit function
end if
set ocx = createobject("LEDGER50_I.Ledger50Ctrl_I.1")
set ocx = nothing
if err <> 0 then
OCXTest = 0
err.clear
exit function
end if

End function

//-->
</SCRIPT>

<Script language="JavaScript">


   var setup = OCXTest();

   if (setup==0) //客户端未安装控件,打开自解压包的链接提示用户下载安装

   {
   window.open("cab/instgb.exe");
   window.open("cab/dssview.exe");

   }


</script>

2005年4月17日星期日

WinXP之后如何安装Win2000

这种方法只可应用于 FAT32 格式的硬盘上.

安装 Windows 2000

1) 用一张 Win98\Me 启动盘(支持光驱)启动你的电脑。
2) 将 Windows 2000 CD 放入你的光驱中。
3) 在 A: 提示符下输入 X:\I386\WINNT.EXE 这里 X: 是你的光驱盘符。
4) 下面开始安装 Windows 2000 到非 Windows XP 的安装分区中。
5) 安装完毕之后,在 Windows 2000 中重启电脑。

修复 Windows XP 引导信息

用你的 Windows XP CD 启动电脑。当到达 Setup or Repair(安装与修复)步骤时,选择修复。在修复控制台中,输入如下内容:

1) FIXBOOT, answer Yes
2) CD
3) ATTRIB -H NTLDR
4) ATTRIB -S NTLDR
5) ATTRIB -R NTLDR
6) ATTRIB -H NTDETECT.COM
7) ATTRIB -S NTDETECT.COM
8) ATTRIB -R NTDETECT.COM
9) COPY X:I386NTLDR C:
10) COPY X:I386NTDETECT.COM C:

X 是你光驱的盘符。

2005年4月16日星期六

精妙SQL语句

下面是我搜集的一些精妙的SQL语句。

说明:复制表(只复制结构,源表名:a 新表名:b)
SQL: select * into b from a where 1<>1

说明:拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL: insert into b(a, b, c) select d,e,f from b;

说明:显示文章、提交人和最后回复时间
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

说明:外连接查询(表名1:a 表名2:b)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

说明:日程安排提前五分钟提醒
SQL:  select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

说明:两张关联表,删除主表中已经在副表中没有的信息
SQL: 
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )

说明:四表联查问题:
SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c  inner join d on a.a=d.d where .....

说明:得到表中最小的未使用的ID号
SQL:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID
FROM  Handle
WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)
 
COALESCE
返回其参数中第一个非空表达式。

语法
COALESCE ( expression [ ,...n ] )

2005年4月15日星期五

JSP的参数传递的乱码解决

本文解决了JSP的URL字符 encoding 问题:

如果通过 get/post 方式从 browser 返回的值中包含汉字信息, servlet 将无法得到正确的值。

解决方案

http://www.williamlong.info/index.jsp?value=你好

解决方案是用这种方案:

<%@ page contentType="text/html;charset=gb2312" %>
<html>
你好<%=new String(request.getParameter("value").getBytes("8859_1"),"gb2312")%>
</html>