📄 chathome.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 + -