⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 在线访客的制作方法.txt

📁 较为详细的介绍了asp自定义的各种函数,方便asp的各种开发.
💻 TXT
字号:
【原创】“在线访客”的制作方法。
=============用户在线的制作方法===============

如果你要转载的话(写得那么菜,应该没人看中吧!),请保留以下信息.
作者:旭旭(07idea)
时间:2003-01-30
E-Mail:kgd1999@21cn.com
网站:http://www.07idea.com


======制作原理======

方法就是当用户访问网页时将用户的信息添加进数据库里
在添加的同时,检查数据库里是否有该用户的在线记录,如
果有,则更新该记录,如果没有就把他添加进数据库.
并删除在指定时间内没有活动的在线记录.(大概就是这样吧!)

======数据表设计=======

新建一个数据表,名为"Online"
删除自动编号字段
建立以下字段
字段名:ID      类型:数字
字段名:GUESTNAME    类型:文本
字段名:STATS    类型:文本
字段名:VISITIME    类型:日期/时间
字段名:OUTIME    类型:日期/时间


=======================以下部分源码,供参考,如果写得不好,欢迎指正=======================

<%
sub activeonline()

dim ip

'////删除180秒内不活动的在线记录.
sql="Delete FROM online WHERE DATEDIFF('s',outime,now())>180"
Conn.Execute sql

if stats="" then'//如果stats的值为空,则显示为
stats="不知在做什么?"
else
stats=stats
end if

IP=replace(Request.ServerVariables("REMOTE_HOST"),".","")'////获取IP并消去IP中的"."

'////检查Online表中是否已有这个IP的记录

sql="select id from online where id='"&ip&"'"
set rs=conn.execute(sql)

if rs.eof or rs.bof then'////如果没有该IP记录则添加在线记录

sql="insert into online(id,guestname,stats,visitime,outime) values ("&ip&",'游客','"&stats&"',Now(),Now())"

else'////如果Online表中已有该IP记录则更新该记录

sql="update online set outime=Now(),stats='"&stats&"',guestname='游客' where id='"&ip&"'"

end if
conn.execute(sql)

end sub
%>
==========================实例===========================
将以上代码修改并保存为"Online.asp"嵌入在各网页的尾部

<%

dim conn   
dim connstr
on error resume next
connstr="DBQ="+server.mappath("数据库名称.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr 
'保存为conn.asp文件 
%>

<!--#INCLUDE FILE="conn.asp" -->
<%

dim stats

stats="查看在线"

call activeonline()


Set rs = Server.CreateObject("ADODB.Recordset")
sql="SELECT Id,GuestName,Stats,Visitime,Outime FROM Online ORDER BY Visitime Desc"
rs.open sql,conn,1,3

total=rs.RecordCount

%>
<table border="1" cellpadding="2" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="53">
  <tr>
    <td width="20%" height="16" align="center">昵称</td>
    <td width="20%" height="16" align="center">动作</td>
    <td width="20%" height="16" align="center">来访</td>
    <td width="20%" height="16" align="center">最后活动</td>
  </tr>
<%do while not rs.eof%>
  <tr>
    <td width="20%" height="28" align="center"><%=rs(1)%></td>
    <td width="20%" height="28" align="center"><%=rs(2)%></td>
    <td width="20%" height="28" align="center"><%=rs(3)%></td>
    <td width="20%" height="28" align="center"><%=rs(4)%></td>
  </tr>
<%
rs.movenext
loop
%>
</table>
在线人数:<%=total%>
<%
rs.close
set rs=nothing

%><!--#INCLUDE FILE="Online.asp" -->


写得不好,见笑了.如果你有更好的方法就献上来吧,大家互相学习嘛!
=====================完工===================




客户端脚本验证码总结涵盖大部分表单验证
function Jtrim(str)  //去空隔函数
{

        var i = 0;
        var len = str.length;
        if ( str == "" ) return( str );
        j = len -1;
        flagbegin = true;
        flagend = true;
        while ( flagbegin == true && i< len)
        {
           if ( str.charAt(i) == " " )
                {
                  i=i+1;
                  flagbegin=true;
                }
                else
                {
                        flagbegin=false;
                }
        }

        while  (flagend== true && j>=0)
        {
            if (str.charAt(j)==" ")
                {
                        j=j-1;
                        flagend=true;
                }
                else
                {
                        flagend=false;
                }
        }

        if ( i > j ) return ("")

        trimstr = str.substring(i,j+1);
        return trimstr;
}

        function isNumber(s) //数字判断函数
        {
                var digits = "0123456789";
                var i = 0;
                var sLength = s.length;

                while ((i < sLength))
                {
                        var c = s.charAt(i);
                        if (digits.indexOf(c) == -1) return false;
                        i++;
                }

                return true;
        }
function isemail (s)//验证E-MAIL格式函数
{
        
        if (s.length > 100)
        {
                window.alert("email地址长度不能超过100位!");
                return false;
        }

         var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$"
         var re = new RegExp(regu);
         if (s.search(re) != -1) {
               return true;
         } else {
               window.alert ("请输入有效合法的E-mail地址 !")
               return false;
         }
}
//判断是否中文函数
function ischinese(s){
var ret=true;
for(var i=0;i<s.length;i++)
ret=ret && (s.charCodeAt(i)>=10000);
return ret;
}
//--------------------------------------------------------------------------------
function ismit()//判断radio是否没有选择函数
{
        var count=0;
        for (ii=0;ii<myform.elements.length;ii++)
        {
                if (myform.elements[ii].type=="radio" && myform.elements[ii].checked==true)
                {
                                count++;
                }
        }
          
         if (Jtrim(document.myform.user_name.value)=='') {
                window.alert ("请输入您的队员名 !")
                myform.user_name.focus();
                return false;
        }
       if(ischinese(document.myform.user_name.value)){
       window.alert("请输入英文队员名")
       myform.user_name.focus();
                return false;
}
        
    }
      if (Jtrim(myform.user_pass1.value)=="" || myform.user_pass1.value.length < 4)
     {
         alert("您的密码不能为空且不能少于4位数!");
         myform.user_pass1.focus();
         myform.user_pass1.select();
         return false;
     }
     if (Jtrim(myform.user_pass2.value)=="" || myform.user_pass2.value.length < 4)
     {
         alert("您的确认密码不能为空且不能少于4位数!");
         myform.user_pass2.focus();
         myform.user_pass2.select();
         return false;
     }
     if (myform.user_pass1.value!=myform.user_pass2.value)
     {
                 alert("您两次输入的密码不相同,请重新输入!");
                 myform.user_pass1.value="";
                 myform.user_pass2.value="";
                 myform.user_pass2.focus();
                 return false;
     }
  
        if (!isNumber(document.myform.user_qq.value))
        {
          window.alert ("QQ号码应该是数字,请重新输入!");
          myform.user_qq.focus();
          myform.user_qq.value='';
         return false;
     }
        if (Jtrim(document.myform.user_email.value)==''){
        window.alert("请填写您经常使用的一个邮箱!");
        myform.user_email.focus();
        return false;
     }
     if (!isemail(document.myform.user_email.value))
     {
         myform.user_email.focus();
         return false;
     }
     if (myform.user_question.value==0)
     {
         alert("请选择一个密码提示问题");
         myform.user_question.focus(); 
         return false;
     }
     
    return true;
}


自动保存,转载自无忧脚本。。。
<html>
<body>
<iframe name=hideframe width=0 height=0></iframe>
<script language=javascript>
function autoSubmit() {
var tmp_target=document.forms[0].target;
  document.forms[0].target="hideframe";
  document.forms[0].submit.click();
  document.forms[0].target=tmp_target;
  alert("自动保存");
  setTimeout(autoSubmit,5000);
}
setTimeout(autoSubmit,5000);
</script>
<form>
<input type=text name=a value=""><br>
<input type=submit name=submit value="Submit">
</form>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -