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

📄 article.aspx.cs

📁 本程序基于 asp.net 2.0 +sql server 2
💻 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("&nbsp;", "");
        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 + -