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

📄 default.aspx

📁 关于XML和网页配合使用的好书
💻 ASPX
字号:
<%@ import namespace="System.Xml" %>
<%@ 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("/chatbase/numbers.xml"));
  XmlNode root=xmldoc.DocumentElement;
  //将标签number的值设置为站点访问量
  number.Text=root.InnerText;
}

//check_log用于检验用户的登录信息
//用户登录信息合法则让用户进入聊天室
//同时,将用户加入在线用户名单
//并以管理员身份添加一条欢迎信息到聊天信息中
void check_log(Object sender,EventArgs E)
{
  //如果用户为新用户或是登录信息出错,
  //则使用checked_news标签显示提示信息
  //检查输入的昵称是否为空
  if (name.Text==""){
      checked_news.Text="没有输入昵称";
      return;
  }

  //检查是否输入口令
  if(password.Text==""){
      checked_news.Text="没有输入口令";
      return;
  }

  //在确认了输入信息后,再检查是否是已注册用户
  //创建XmlDocument对象,以便访问保存注册用户信息的XML文档
  XmlDocument xmldoc = new XmlDocument();
  
  //打开保存注册用户信息的XML文档usersbase.xml
  xmldoc.Load(Server.MapPath("/chatbase/usersbase.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("/chatbase/onlineuser.xml"));
  node=xmldoc.SelectSingleNode("//论坛成员[昵称='"+name.Text+"']");
  if (node!=null){
     checked_news.Text="**"+name.Text+"**"+"已经在线";
     return;
  }
  
  //将用户昵称保存到Session对象中,Session对象在各个ASPX文件中具有特殊作用
  //Session对象中保存的“UserName”为当前用户昵称,在其他文件中需要被使用
  Session["UserName"]=name.Text;

  //在验证登录信息后,将用户加入“在线用户名单”——onlineuser.xml
  //保存在线用户信息的子元素为“论坛成员”
  //“论坛成员”元素中包含“昵称”和“最新时间”子元素
  //“最新时间”子元素中保存用户的最新时间,用于检验用户登录后是否不发言
  //长时间不发言的用户将被请出论坛
  //创建“论坛成员”元素
  XmlNode newElem=xmldoc.CreateElement("论坛成员");
  
  //创建“昵称”元素
  XmlNode subElem=xmldoc.CreateElement("昵称");
  
  //设置“昵称”元素的值
  subElem.InnerText=name.Text;
  
  //将“昵称”元素设置为“论坛成员”元素的子元素
  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);
 
  //将新建的“论坛成员”元素添加到onlineuser.xml中
  xmldoc.DocumentElement.AppendChild(newElem);
  //保存添加了信息的onlineuser.xml
  xmldoc.Save(Server.MapPath("/chatbase/onlineuser.xml"));

  //添加管理员的欢迎信息到聊天信息文件chatnews.xml中
  xmldoc.Load(Server.MapPath("/chatbase/chatnews.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="False";
  //将“悄悄话”子元素添加到“在线信息”元素中
  newElem.AppendChild(subElem);

  //创建“颜色”子元素
  subElem=xmldoc.CreateElement("颜色");
  subElem.InnerText="";
  //将“颜色”子元素添加到“在线信息”元素中
  newElem.AppendChild(subElem);
 
  //创建“消息”子元素
  subElem=xmldoc.CreateElement("消息");
  subElem.InnerText="***"+name.Text+"***加入论坛";
  //将“消息”子元素添加到“在线信息”元素中
  newElem.AppendChild(subElem);
  
  //将新建的“在线信息”元素添加到聊天信息文件chatnews.xml前面
  root.InsertBefore(newElem,root.FirstChild);
  xmldoc.Save(Server.MapPath("/chatbase/chatnews.xml"));
  
  //成功登录后自动进入论坛聊天室
  Response.Redirect("chatroom.aspx");
}
</script>
<html>
	<head>
		<title>XML在线论坛</title>
	</head>
	<body>
		<center>
			<h3>
				欢迎光临XML在线论坛
			</h3>
			<hr>
			输入<i>昵称</i>和<i>口令</i>后登录论坛
			<form method="post" action="http://localhost/chat/chatroom.aspx" target="_parent" 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="logonnew.aspx">注册新用户</a>
			<p />
			你来自 <b>
				<%=Request.ServerVariables["Remote_addr"] %>
			</b>;是论坛的第 <b>
				<asp:Label ID="number" Runat="server"></asp:Label>
			</b>位访客
			<p />
			<asp:Label ID="checked_news" Runat="server" ForeColor="#ff0000"></asp:Label>
		</center>
	</body>
</html>

⌨️ 快捷键说明

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