已为老胡 - 网络技术研究和生活琐事记录 - 2008年8月
已为老胡 - 原创博客，关于计算机技术、生活记录，还有建站方面内容、经典的文章、很多的电脑技巧，欢迎大家的来访...
个人认为PJBLOG一般皮肤的最佳广告位置有四个地方,1:文章内容里.2:栏目上方.3:侧边栏.4:文章底部.Pan发布的代码在网上都能找到,这里只是发布Pan认为最佳放广告的位置,可以是GGAD,可以是阿里妈妈,也可以是其他各种广告,透过分析,这里四个位置最能吸引访问者的注意力,加上广告内容与样式的优化,可以提高广告收入,下面请看这些位置代码的分布.1.文章内容页:即日志文字里放广告 打开class文件夹下的cls_article.asp文件； 在114行处找到 在后边加上： 然后再写上广告代码即可。 具体示例如下： <这里写上你的广告代码> 在上边的代码中，如果使用style="float:right;"则是把广告设置在右侧；如果把right改成left则是把广告设置在左侧。代码最后的 一定要写上，否则也会出现问题.后台设置在静态前把勾去掉.2.栏目上方(导航栏下面) 在后台建立一个新的“内容模块”，切记是“内容模块”而不是“侧面模块”，然后把序号设置为内容模块中的最小值即可。3.侧边栏 同样的方法是建立一个“模块”，但是这一次选择“侧面模块”，您的广告位置完全由您设置的数值决定。 在PJ的模块中，您完全可以粘贴两段及其以上的广告代码，然后组合出不同长宽比例的广告块，但是事实证明，分散的广告布局总比集中的要更好一些。4:文章底部 打开class文件夹下的cls_article.asp文件； 找到以下代码： <% keyword=CheckStr(Request.QueryString("keyword")) if log_ViewArr(10,0)=1 then response.write (highlight(UnCheckStr(UBBCode(HtmlEncode(log_ViewArr(8,0)),mid (log_ViewArr(11,0),1,1),mid(log_ViewArr(11,0),2,1),mid(log_ViewArr(11,0),3,1),mid(log_ViewArr(11,0),4,1),mid(log_ViewArr(11,0),5,1))),keyword)) else response.write (highlight(UnCheckStr(log_ViewArr(8,0)),keyword)) end if %> 在之后的两个 之间写上广告代码即可。 具体示例如下： <% keyword=CheckStr(Request.QueryString("keyword")) if log_ViewArr(10,0)=1 then response.write (highlight(UnCheckStr(UBBCode(HtmlEncode(log_ViewArr(8,0)),mid(log_ViewArr(11,0),1,1),mid(log_ViewArr(11,0),2,1),mid(log_ViewArr(11,0),3,1),mid(log_ViewArr(11,0),4,1),mid(log_ViewArr(11,0),5,1))),keyword)) else response.write (highlight(UnCheckStr(log_ViewArr(8,0)),keyword)) end if %> <这里写上你的广告代码> 赶快去放你的广告吧,这里所说的广告位置都是能吸引访问者的目光滴,一般通过搜索引擎来到PJ文章的,都能第一眼看到这些广告
每次访问我们自己的PJblog时，都要输入 fvll.cn/wap.asp ，这个wap.asp太麻烦了，搞得地址太长了，要是能直接打网址就能进入那多简单啊！！现在，下面就为大家收集到这个技巧： 1、在common文件夹下新建checkwap.asp内容为： 代码: <%If InStr(LCase(Request.ServerVariables("HTTP_ACCEPT")),"text/vnd.wap.wml") > 0 Then Response.Redirect "wap.asp"%> 2、然后在header.asp加入： 代码:
PJblog默认的注册页面中没有填写QQ号码项，只有用户登陆Pjblog后去“修改信息”时才能填写QQ号码，有时这样对于你和访客都是非常不方便的，所以在用户注册时顺便填写上QQ号码就方便多了。 一， 在用户注册表单中添加QQ项，加入以下代码： QQ: 二， 在检查语句后面加入以下代码： Dim StrWidth,i StrWidth=len(QQNum) For i=1 to StrWidth If Asc(Mid(QQNum, i, 1)) < 48 or Asc(Mid(QQNum, i, 1))> 57 Then ReInfo(0) = "错误信息" ReInfo(1) = "QQ号码只可以是0-9的数字。 单击返回" ReInfo(2) = "ErrorIcon" register = ReInfo Exit Function End If Next 三， 在Dim username, password, Confirmpassword, Gender, email, homepage, validate, HideEmail, checkUser 后面加上QQNum 四， 在validate = CheckStr(request.Form("validate"))后面加上 QQNum=Trim(CheckStr(request.Form("QQnum"))) 五，AddUser = Array(Array("mem_Name", username), Array("mem_Password", password), Array("mem_Sex", Gender), Array("mem_salt", strSalt), Array("mem_Email", email), Array("mem_HideEmail", Int(HideEmail)), Array("mem_HomePage", homepage), Array("mem_LastIP", getIP), Array("mem_lastVisit", Now()), Array("mem_hashKey", hashkey)) 中加入Array("mem_QQ", QQNum), 六， Values 程序代码 ('"&username&"','"&password&"',"&Gender&",'"&strSalt&"','"&email&"',"&HideEmail&",'"&homepage&"' ,'"&getIP&"')")中加入'"&QQNum&"' 保存后打开注册页面，你会发现QQ项出现在了页面当中……
将Pjblog的登陆框及User信息横向并置于页面顶部显示
注意：运用此方法后请隐藏侧边栏中的“User”模块，否则在使用顶部登陆栏登陆时会出现验证码错误！【步骤一】 在common/Library.asp中查找“用户面板”，将其下面的Function过程替换为以下代码：Function userPanel() userPanel = "" If memName<>Empty Then userPanel = userPanel & stat_title & "" &memName& " | " If stat_Admin = True Then userPanel = userPanel + "系统管理 | " If stat_AddAll = True or stat_Add = True Then userPanel = userPanel + "发表日志 | " If (stat_AddAll = True or stat_Add = True) And (stat_EditAll or stat_Edit) Then If IsEmpty(session(CookieName&"_draft_"&memName)) Then session(CookieName&"_draft_"&memName) = conn.Execute("select count(log_ID) from blog_Content where log_Author='"&memName&"' and log_IsDraft=true")(0) SQLQueryNums = SQLQueryNums + 1 End If If session(CookieName&"_draft_"&memName)>0 Then userPanel = userPanel + "编辑草稿 ["&session(CookieName&"_draft_"&memName)&"] | " Else userPanel = userPanel + "编辑草稿 | " End If End If If memName<>Empty Then userPanel = userPanel&"修改资料 | 退出登陆" Else userPanel=userPanel&" 用户名 密 码 验证码 "&getcode()&" 保存登陆 " End If End Function 【步骤二】 在header.asp中查找“ ”，在其后面加上以下代码： <% dim FilePathTemp,NowFilePath FilePathTemp=request.ServerVariables("PATH_INFO") if instr(FilePathTemp,"/")<>0 then NowFilePath=replace(FilePathTemp,"/","") end if %> <div style="position:absolute; z-index:1; right:10px; top:3px;<%if NowFilePath="login.asp" or NowFilePath="register.asp" then%>display:none;<%end if%>"><%=userPanel%>
去掉日志正文下的： 文章来自: 本站原创 引用通告: 查看所有引用 | 我要引用此文章 修改方法如下： 动态下在class/cls_article.asp 去掉<%if len(log_ViewArr(16,0))>0 then response.write (log_ViewArr(16,0)&" ")%> 文章来自: <a href="<%=log_ViewArr(17,0)%>" target="_blank"><%=log_ViewArr(18,0)%> 引用通告: <a href="<%="trackback.asp?tbID="&id&"&action=view"%>" target="_blank">查看所有引用 | <a href="javascript:;" title="获得引用文章的链接" onclick="getTrackbackURL(<%=id%>)">我要引用此文章 半静态下在Template/Article.asp 去掉<$log_Modify$> 文章来自: <a href="<$log_FromUrl$>" target="_blank"><$log_From$> 引用通告: <a href="trackback.asp?tbID=<$LogID$>&action=view" target="_blank">查看所有引用 | <a href="javascript:;" title="获得引用文章的链接" onclick="getTrackbackURL(<$LogID$>)">我要引用此文章 全静态下在Template/static.htm去掉<$log_Modify$> 文章来自: <a href="<$log_FromUrl$>" target="_blank"><$log_From$> 引用通告: <a href="trackback.asp?tbID=<$LogID$>&action=view" target="_blank">查看所有引用 | <a href="javascript:;" title="获得引用文章的链接" onclick="getTrackbackURL(<$LogID$>)">我要引用此文章
Windows任务管理器是大家对进程进行管理的主要工具，在它的“进程”选项卡中能查看当前系统进程信息。在默认设置下，一般只能看到映像名称、用户名、CPU占用、内存使用等几项，而更多如I/O读写、虚拟内存大小等信息却被隐藏了起来。可别小看了这些被隐藏的信息，当系统出现莫名其妙的故障时，没准就能从它们中间找出突破口。1.查杀会自动消失的双进程木马前段时间朋友的电脑中了某木马，通过任务管理器查出该木马进程为“system.exe”，终止它后再刷新，它又会复活。进入安全模式把c：＼windows＼system32＼system.exe删除，重启后它又会重新加载，怎么也无法彻底清除它。从此现象来看，朋友中的应该是双进程木马。这种木马有监护进程，会定时进行扫描，一旦发现被监护的进程遭到查杀就会复活它。而且现在很多双进程木马互为监视，互相复活。因此查杀的关键是找到这“互相依靠”的两个木马文件。借助任务管理器的PID标识可以找到木马进程。调出Windows任务管理器，首先在“查看→选择列”中勾选“PID（进程标识符）”，这样返回任务管理器窗口后可以看到每一个进程的PID标识。这样当我们终止一个进程，它再生后通过PID标识就可以找到再生它的父进程。启动命令提示符窗口，执行“taskkill /im system.exe /f”命令。刷新一下电脑后重新输入上述命令，可以看到这次终止的system.exe进程的PID为1536，它属于PID为676的某个进程。也就是说PID为1536的system.exe进程是由PID为676的进程创建的。返回任务管理器，通过查询进程PID得知它就是“internet.exe”进程。找到了元凶就好办了，现在重新启动系统进入安全模式，使用搜索功能找到木马文件c：＼windows＼internet.exe ，然后将它们删除即可。前面无法删除system.exe，主要是由于没有找到internet.exe（且没有删除其启动键值），导致重新进入系统后internet.exe复活木马。2.揪出狂写硬盘的P2P程序单位一电脑一开机上网就发现硬盘灯一直闪个不停，硬盘狂旋转。显然是本机有什么程序正在进行数据的读取，但是反复杀毒也没发现病毒、木马等恶意程序。打开该电脑并上网，按Ctrl+Alt+Del键启动了任务管理器，切换到“进程”选项卡，点击菜单命令“查看→选择列”，同时勾选上“I/O写入”和“I/O写入字节”两项。确定后返回任务管理器，发现一个陌生的进程hidel.exe，虽然它占用的CPU和内存并不是特别大，但是I/O的写入量却大得惊人，看来就是它在捣鬼了，赶紧右击它并选择“结束进程”终止，果然硬盘读写恢复正常了。
让你瞧瞧黑客眼中的防火墙与路由器
防火墙已经成为企业网络建设中的一个关键组成部分。但有很多用户，认为网络中已经有了路由器，可以实现一些简单的包过滤功能，所以，为什么还要用防火墙呢?以下我们针对NetEye防火墙与业界应用最多、最具代表性的Cisco路由器在安全方面的对比，来阐述为什么用户网络中有了路由器还需要防火墙。一、 两种设备产生和存在的背景不同 1、两种设备产生的根源不同 路由器的产生是基于对网络数据包路由而产生的。路由器需要完成的是将不同网络的数据包进行有效的路由，至于为什么路由、是否应该路由、路由过后是否有问题等根本不关心，所关心的是：能否将不同的网段的数据包进行路由从而进行通讯。 防火墙是产生于人们对于安全性的需求。数据包是否可以正确的到达、到达的时间、方向等不是防火墙关心的重点，重点是这个(一系列)数据包是否应该通过、通过后是否会对网络造成危害。 2、根本目的不同 路由器的根本目的是：保持网络和数据的“通”。 防火墙根本的的目的是：保证任何非允许的数据包“不通”。二、核心技术的不同 Cisco路由器核心的ACL列表是基于简单的包过滤，从防火墙技术实现的角度来说，NetEye防火墙是基于状态包过滤的应用级信息流过滤。 简单应用介绍：企业内网的一台主机，通过路由器对内网提供服务(假设提供服务的端口为tcp 1455)。为了保证安全性，在路由器上需要配置成：外->内 只允许client访问 server的tcp 1455端口，其他拒绝。 针对现在的配置，存在的安全脆弱性如下： 1、IP地址欺骗(使连接非正常复位) 2、TCP欺骗(会话重放和劫持) 存在上述隐患的原因是，路由器不能监测TCP的状态。如果在内网的client和路由器之间放上NetEye防火墙，由于NetEye防火墙能够检测TCP的状态，并且可以重新随机生成TCP的序列号，则可以彻底消除这样的脆弱性。同时，NetEye 防火墙的一次性口令认证客户端功能，能够实现在对应用完全透明的情况下，实现对用户的访问控制，其认证支持标准的Radius协议和本地认证数据库，可以完全与第三方的认证服务器进行互操作，并能够实现角色的划分。 虽然，路由器的“Lock-and-Key”功能能够通过动态访问控制列表的方式，实现对用户的认证，但该特性需要路由器提供Telnet服务，用户在使用使也需要先Telnet到路由器上，使用起来不很方便，同时也不够安全(开放的端口为黑客创造了机会)。
今天上网到PJBlog开发者的博客上看来一下，发现PJBlog现在已经升级到了PJBlog3了。之间从2.7build5经过了2.8，现在最新的版本是PJBlog3 v2.8.4.133，可怜偶的还是PJBlog2.7build5版本的，然后赶紧的下载了程序，回家更新了偶的博客，两者的数据库基本一致，直接替换…… 表情替换，插件直接复制，个人资料 复制后出错，原因是由于blogDB文件夹中有一个abc.mdb未复制，复制后问题解决…… 还有一个问题就是将blog_Info表中的blog_postFile的类型由 “是/否”改为“数字”，否则无法修改“站点基本设置”中的“日志输出模式” 全动态模式 半静态模式 全静态模式new 三种模式不可选且无法将文章缓存成文件，修改后回复正常，大家请注意…… 至此，博客升级完成…… 开始使用新版本的博客了！