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

📄 chathome.aspx

📁 一个聊天室源码 cooo ooo ooo l
💻 ASPX
字号:
<!--引用处理XML文档的名称空间-->
<%@ import namespace="System.Xml" %>
<!--设置EnableSessionState属性为True,是为了使Session对象在用户访问站点期间都有效-->
<%@ language="C#" runat=server EnableSessionState="True"%>
<script language="C#" runat="server">
//Page_Load在页面加载时被执行
//在此用于设置站点计数器的标签的值
void Page_Load(Object sender,EventArgs E)
{//从保存站点访问量的XML文档中读取数据
 XmlDocument xmldoc=new XmlDocument();
 xmldoc.Load(Server.MapPath("/chatdata/visitors.xml"));
 XmlNode root=xmldoc.DocumentElement;
 
 //将标签number的值设置为站点访问量
 number.Text=root.InnerText;
 }
 
 //check_log用于检验用户的登录信息
 //用户登录信息合法则让用户进入
 //同时将用户加入在线名单
 //并以管理员的身份添加一条欢迎信息在聊天信息中
 //如果用户为新用户或登录出错,则使用checked_news标签显示提示信息
 
 void check_log(Object sender,EventArgs E)
 {
   //检查输入的昵称是否为空
   if(name.Text=="")
   {
    checked_news.Text="没有输入昵称";
    return;
    }
    //检查是否输入口令
    if(password.Text=="")
    {
    checked_news.Text="没有输入口令";
    return;
    }
    //在确认了输入信息后,再检查是否为注册用户
    //创建XmlDocument对象,以便访问保存注册用户的xml文档
    XmlDocument xmldoc=new XmlDocument();
    
    //打开保存注册用户的xml文档registers.xml
    xmldoc.Load(Server.MapPath("/chatdata/registers.xml"));
    
    //查询昵称是否已被注册
    XmlNode node=xmldoc.SelectSingleNode("//聊天室成员[昵称='"+name.Text+"']");
    if(node==null){
    checked_news.Text="**"+name.Text+"**"+"没有注册";
    return;
    }
    
    //检查密码是否正确
    if(node.ChildNodes[1].InnerText!=password.Text)
    {
    checked_news.Text="请检查昵称和口令是否输入正确";
    return;
    }
    //检验用户是否在线,不允许用户多次登录
    xmldoc.Load(Server.MapPath("/chatdata/onlineusers.xml"));
    node==xmldoc.SelectSingleNode("//在线成员[昵称='"+name.Text+"']");
    if(node!=null)
    {
     checked_news.Text="**"+name.Text+"**"+"已经在线";
    return;
    }
    //将用户昵称保存到Session对象中
    //Session对象在各个ASPX文件中具有特殊作用
    //Session对象中保存的为"UserName"当前用户昵称
    //在其他文件中需要被使用
    Session["UserName"]=name.Text;
    
    //在验证登录信息后,将用户加入“在线用户名单”—onlineusers.xml
    //保存在线用户信息的子元素为“在线用户”
    //“在线用户”元素中包含“昵称”和“最新时间”子元素  
    //“最新时间”子元素保存用户的最新时间,用于检验用户登陆后是否不发言
    //长时间不发言的用户将被请出聊天室
    
    //创建“在线成员”元素
    XmlNode newElem=xmldoc.CreateElement("在线成员" );
    
    //创建“昵称”元素
    XmlNode subElem=xmldoc.CreateElement("昵称" );
    
    //设置“昵称”元素的值
    subElem.AppendChild(subElem);
    
    //将“昵称”元素设置为“在线成员”元素的子元素
    newElem.AppendChild(subElem);
    
    //创建“最新时间”元素
   subElem=xmldoc.CreateElement("最新时间" );
   
   //获得当前时间
   System.DateTime currentTime=new System.DateTime();
   currentTime=System.DateTime.Now;
   
   //设置“最新时间”元素的值
   int minute= currentTime.Minute;
   String str=minute.ToString();
   subElem.InnerText=str;
   
   //将“最新时间”元素设置为“在线成员”元素的子元素
   newElem.AppendChild(subElem);
    
   //将新建的 “在线成员”元素添加到onlineusers.xml中
   xmldoc.DocumentElement.AppendChild(newElem);
   
   //保存添加了信息的onlineusers.xml
   xmldoc.Save(Server.MapPath("/chatdata/onlineusers.xml"));
   
   //添加管理员的欢迎信息到聊天信息文件chantings.xml中
   xmldoc.Load(Server.MapPath("/chatdata/onlineusers.xml"));
   XmlNode root=xmldoc.DocumentElement;
   
   //聊天信息保存在“聊天信息”元素中
   //“聊天信息”元素中包含“发送者,“接受者”,“表情”,“悄悄话”,“颜色”和“消息”等子元素 
   
   //创建“聊天信息”元素
    newElem=xmldoc.CreateElement("聊天信息" );
    
    //创建“发送者”元素
     subElem=xmldoc.CreateElement("发送者" );
     subElem.InnerText="管理员";
       
    //将“发送者”元素添加到“聊天信息”元素中
    newElem.AppendChild(subElem);
   
   //创建“接受者”元素
     subElem=xmldoc.CreateElement("接受者" );
     subElem.InnerText="大家";
       
    //将“接受者”元素添加到“聊天信息”元素中
    newElem.AppendChild(subElem);
    
    //创建“表情”元素
     subElem=xmldoc.CreateElement("表情" );
     subElem.InnerText="";
       
    //将“表情”元素添加到“聊天信息”元素中
    newElem.AppendChild(subElem);
    
    //创建“悄悄话”元素
     subElem=xmldoc.CreateElement("悄悄话" );
     subElem.InnerText="Flause";
       
    //将“悄悄话”元素添加到“聊天信息”元素中
    newElem.AppendChild(subElem);
    
    //创建“颜色”元素
     subElem=xmldoc.CreateElement("颜色" );
     subElem.InnerText="";
       
    //将“颜色”元素添加到“聊天信息”元素中
    newElem.AppendChild(subElem);
    
    //创建“消息”元素
     subElem=xmldoc.CreateElement("消息" );
     subElem.InnerText="***"+name.Text+"***加入聊天室";
       
    //将“消息”元素添加到“聊天信息”元素中
    newElem.AppendChild(subElem);
    
    //将新建的“聊天信息”元素添加到到聊天信息文件chantings.xml前面
    root.InsertBefore(newElem,root.FirstChild);
    xmldoc.Save(Server.MapPath("/chatdata/chatings.xml"));
    
    //成功登陆后进入聊天室
    Response.Redirect("chatingroom.aspx");
    }
    
   </script>
   <html>
	<head>
		<title>欢迎光临聊天室</title>
	</head>
	<body>
 <center>
    <h3>
        欢迎光临聊天室
    </h3>
    <hr>
    <form methord="post" runat="server">
    昵称:
    <asp:textbox TextMode="SingleLine" id="name" runat="server"/>
    <p />
    口令:<asp:textbox TextMode="Password" id="password" runat="server"/>
    <p />
    <asp:button Text="登录" OnClick="check_log" runat="server"/>
    </form>
    新用户请选择<a href="registernew.aspx">新用户注册</a>
    <p />
    你是聊天室的第<b>
   <asp:Label ID="number" runat="server"/>
      </b>位访客
    <p />
    </center>
    </body>
    </html>
    
     

⌨️ 快捷键说明

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