📄 article.aspx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.IO;
using lalablog;
public partial class article : System.Web.UI.Page
{
int userid, blogid,replyuserid;
SqlDataReader dr,drReply;
bool islogin = false;
int pagesize = 20;
protected void Page_PreInit()
{
if (Request.QueryString["userid"] != null)
this.userid = Convert.ToInt32(Request.QueryString["userid"]);
else if (Request.QueryString["blogid"] != null)
this.userid = getUseridByBlogid();
else
Response .Redirect ("../index.aspx");
LoadTitle();
}
private int getUseridByBlogid()
{
int blogid=Convert .ToInt32(Request .QueryString ["blogid"].ToString ());
string sql = "select userid from blog where blogid=" + blogid;
openDb o1 = new openDb(sql);
return Convert.ToInt32(o1.getValue());
}
private void LoadTitle()
{
bloguser newuser = new bloguser(this.userid);
string[] setting = new string[5];
setting = newuser.getSetting();
this.pagesize = Convert.ToInt32(setting[2]);
theme usertheme = new theme(Convert.ToInt32(setting[0]));
Page.Theme = usertheme.getName();
if (Page.Theme == "")
{
string themePath = Server.MapPath("~/app_themes/");
themePath += "\\usertheme" + this.userid;
if (Directory.Exists(themePath))
Page.Theme = "usertheme" + this.userid;
else
Page.Theme = "pusu";
}
Page.Title = setting[1] + "的日志";
toptitle.InnerHtml = "<a id=topurl href=read.aspx?userid=" + userid + " > " + Page.Title + "</a>";
}
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["blogid"] != null)
blogid = Convert.ToInt32(Request.QueryString["blogid"]);
if (!IsPostBack)
{
ViewState["canReadThisBlog"] = 0;
loadLeft();
pageNavigate();
readblog();
readBlogReply(1); //读取针对此blog的所有回复
}
if (Session["userid"] != null)
{
tb_username.Text = "已登录";
replyuserid = Convert.ToInt32(Session["userid"]);
islogin = true;
}
}
//按下添加回复的按钮时,先验证用户是否登陆,再执行添加操作
//如果用户未登陆,执行login操作,并设置session中的userid
protected void btnAddReply_Click(object sender, EventArgs e)
{
if (!islogin )
{
string username = Server.HtmlEncode(tb_username.Text);
string password = Server.HtmlEncode(tb_password.Text);
password = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "SHA1");
string loginip = Request.UserHostAddress;
bloguser user1 = new bloguser(username, password, loginip);
string x = user1.login();
if (x == "success")
{
tb_username.Text = "已登录";
islogin = true;
Session["userid"] = user1.getuserid();
Session["username"] = user1.getusername();
this.replyuserid = user1.getuserid();
}
else
{
myfunc m1 = new myfunc(x);
Response.Write(m1.JavaMsg ());
}
}
if(islogin)
{
addReply();
pageNavigate();
readblog();
readBlogReply(1);
}
}
private void addReply()
{
string strconn = ConfigurationManager.ConnectionStrings["dsn"].ToString();
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
SqlCommand cm = new SqlCommand("addReply", cn);
cm.CommandType = CommandType.StoredProcedure;
decode strtitle = new decode(tb_title.Text);
string title=strtitle .outstr ();
decode str=new decode (hf_editor .Value );
string text=str.outstr ();
string text1 = text.Replace(" ", "");
if (text1.Trim ().Length < 1)
text = "I Love Blog!";
DateTime add_date=DateTime .Now ;
string add_ip=Request .UserHostAddress;
cm.Parameters .Add ("@blogid",SqlDbType .Int );
cm.Parameters .Add ("@title",SqlDbType .NVarChar );
cm.Parameters .Add ("@text",SqlDbType .NVarChar );
cm.Parameters .Add ("@bloguserid",SqlDbType .Int );
cm.Parameters.Add("@userid", SqlDbType.Int);
cm.Parameters .Add ("@add_date",SqlDbType.DateTime );
cm.Parameters .Add ("@add_ip",SqlDbType .NVarChar );
cm.Parameters ["@blogid"].Value =this.blogid ;
cm.Parameters ["@title"].Value =title ;
cm.Parameters ["@text"].Value =text ;
cm.Parameters ["@bloguserid"].Value =this.userid ;
cm.Parameters ["@userid"].Value =this.replyuserid;
cm.Parameters ["@add_date"].Value =add_date ;
cm.Parameters["@add_ip"].Value = add_ip;
try
{
cm.ExecuteNonQuery();
}
catch (SqlException ex)
{
myfunc my = new myfunc(ex.Message );
Response .Write ( my.JavaMsg());
}
finally
{
cn.Close();
}
}
//根据用户的userid,和当前状态视图中存储的页码 读取指定条数的数据记录并显示
private void readblog()
{
string strconn = ConfigurationManager.ConnectionStrings["dsn"].ToString();
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
string sql = "select blogpassword,username,add_date,title,[text],read_count,read_level,reply_count ";
sql += "from blog,users where blog.userid=users.userid and ";
sql += "blog.userid=" + userid + " and blogid=" + blogid;
if (Session["userid"] != null)
{
if (Session["userid"].ToString() == this.userid.ToString())
{
sql += " and text_folder>=0";
ViewState["canReadThisBlog"] = 1;
}
}
else
sql += " and text_folder=0;";
sql+="update blog set read_count=read_count+1 where blogid=" + this.blogid ;
SqlCommand cm = new SqlCommand(sql , cn);
try
{
this.dr = cm.ExecuteReader();
//将blog显示在页面上
if (this.dr.Read())
{
displayData();
//给予回复主题 默认名称
tb_title.Text = "Re:" + dr["title"].ToString();
}
}
catch (SqlException ex)
{
myfunc my = new myfunc(ex.Message);
Response.Write(my.JavaMsg());
}
finally
{
cn.Close();
}
}
//输出html文本,输出的是一个表格,输出到了预先定义的mainblog 中
private void displayData()
{
string data = "";
//这里因为打开页面的时候已经增加了本blog阅读次数,而数据库中此时并未更新,所以我们先手动加1
int read_count = Convert.ToInt32(dr["read_count"].ToString()) + 1;
if (dr["blogpassword"].ToString()=="" || ViewState["canReadThisBlog"].ToString() == "1")
{
data += "<div class='readblog'>";
if(dr["read_level"].ToString ()=="1")
data += "<div class='title'>" + dr["title"].ToString() + "<img src=images/jh.gif></div>";
else
data += "<div class='title'>" + dr["title"].ToString() + "</div>";
data += "<div class='head'>作者:" + dr["username"].ToString();
data += " 发表日期:" + dr["add_date"].ToString() + "</div>";
data += "<div class='content'>" + dr["text"].ToString() + "</div>";
data += "<div class='foot'>阅读次数[" + read_count + "] ";
data += "回复次数[" + dr["reply_count"].ToString() + "]</div>";
data += "</div>";
aa.Visible = false;
mainblog.InnerHtml = data;
}
else
{
if (dr["blogpassword"].ToString().Length == 40)
{
aa.Visible = true ;
}
else
{
mainblog.InnerHtml = "读取日志错误";
}
}
Page.Title += "-" + dr["title"].ToString();
}
private void readBlogReply(int pageindex)
{
ViewState["currentPage"] = pageindex;
cpage.InnerHtml = ViewState["currentPage"].ToString();
string strconn = ConfigurationManager.ConnectionStrings["dsn"].ToString();
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
SqlCommand cm = new SqlCommand("pageReadReply", cn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add("@blogid", SqlDbType.Int);
cm.Parameters.Add("@pagesize", SqlDbType.Int);
cm.Parameters.Add("@pageindex", SqlDbType.Int);
cm.Parameters["@blogid"].Value = this.blogid;
cm.Parameters["@pagesize"].Value = this.pagesize;
cm.Parameters["@pageindex"].Value = pageindex;
try
{
this.drReply = cm.ExecuteReader();
displayReplyData();
cpage.InnerHtml = ViewState["currentPage"].ToString();
}
catch (SqlException ex)
{
myfunc my = new myfunc(ex.Message);
Response.Write(my.JavaMsg());
}
finally
{
cn.Close();
}
}
private void pageNavigate()
{
string mysql = "select count(replyid) from reply where blogid=" +this.blogid ;
pageHtml p1 = new pageHtml(mysql);
ViewState["sumPage"] = p1.pageNavigate(pagesize);
spage.InnerText = ViewState["sumPage"].ToString();
if (p1.pageNavigate(pagesize) <= 1)
navigator.Visible = false;
else
navigator.Visible = true;
}
//页面直接跳转
protected void tb_goPage_TextChanged(object sender, EventArgs e)
{
int x = Convert.ToInt32(tb_goPage.Text);
if (x < 1) x = 1;
int sumpage = Convert.ToInt32(ViewState["sumPage"].ToString());
if (x > sumpage) x = sumpage;
readBlogReply(x);
}
//上一页
protected void lb_previous_Click(object sender, EventArgs e)
{
int x = Convert.ToInt32(ViewState["currentPage"].ToString()) - 1;
if (x < 1) x = 1;
readBlogReply(x);
}
//下一页
protected void lb_next_Click(object sender, EventArgs e)
{
int x = Convert.ToInt32(ViewState["currentPage"].ToString()) + 1;
int sumpage = Convert.ToInt32(ViewState["sumPage"].ToString());
if (x > sumpage) x = sumpage;
readBlogReply(x);
}
private void displayReplyData()
{
string data = "";
while (this.drReply.Read())
{
data += "<div class='readblog'>";
data += "<div class='title'>" + drReply["title"].ToString() + "</div>";
data += "<div class='head'>";
data += "<a target=_blank href=read.aspx?userid=" + drReply["userid"].ToString();
data +=">"+drReply["nickname"].ToString()+"</a>";
data += " 回复于:" + drReply["add_date"].ToString() + "</div>";
data += "<div class='content'>" + drReply["text"].ToString() + "</div>";
data += "</div>";
}
readReply.InnerHtml = data;
}
private void loadLeft()
{
myfunc m1 = new myfunc(this.userid);
String path = Server.MapPath("~/user/face/");
path = path + userid + ".jpg";
if (File.Exists(path))
Image1.ImageUrl = "~/user/face/" + userid + ".jpg";
else
Image1.Visible = false;
intro.InnerHtml = m1.loadIntro();
subject.InnerHtml = m1.loadSubject();
newblog.InnerHtml = m1.loadNewBlog();
newreply.InnerHtml = m1.loadNewReply();
friendlink.InnerHtml = m1.loadFriendLink();
userinfo.InnerHtml = m1.loadUserInfo();
samecity.InnerHtml = m1.loadSameCity();
}
protected void Button2_Click(object sender, EventArgs e)
{
string sql = "select blogpassword from blog where blogid=" + this.blogid;
openDb o1 = new openDb(sql);
string blogpassword=o1.getValue();
string inputpass = FormsAuthentication.HashPasswordForStoringInConfigFile(tbBlogPwd.Text, "sha1");
if (inputpass == blogpassword)
{
ViewState["canReadThisBlog"] = 1;
readblog();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -