请问这段代码我这么理解对么?
这是一个点击过的标记吧类似,效果就是如果这个链接我点过,那就把它放到cookie中,颜色是默认的,如果没有那么就是else里的。  这也算是Cookies的一个用法小例子吧?                         if (Request.Cookies["colors"]!=null)
{
                              string My_test = Request.Cookies["colors"].Value;
                              String[] My_colorList = My_test.Split(new char[] { ',' });
                              My_bgcolor = My_colorList[0];
                              My_tcolor = My_colorList[1];
}
               else
{
                             My_bgcolor = "#FFDE94";
                             My_tcolor = "#efe3ce";
                            }
还一段,这个bool的应用是干嘛的呀?没太看明白,下面是用到这个issafe的地方,谢谢大家麻烦帮我解释下public bool IsSafe (string str, int prama)
{
if (prama==1)
{
if (Regex.IsMatch(str,"[0-9]"))
{
return true;
}
else
{
return false;
}
}
else
{
if (str.IndexOf("and")>0 || str.IndexOf("or")>0 || str.IndexOf("'")>0)
{
return false;
}
else
{
return true;
}

}
}…………
if (IsSafe(Request.QueryString["c_id"],2)==true)
{
                        My_sql = "select  * from My_news where My_c_id=" + Request.QueryString["c_id"] + " order by My_n_date desc"; 
}
else
{
                        My_sql = "";
Response.Write("非法参数");
Response.End();
}
…………

解决方案 »

  1.   

    if (Request.Cookies["colors"]!=null) //判断cookies中有没有colors
    {
    string My_test = Request.Cookies["colors"].Value;//如果有,得到colors的值
    String[] My_colorList = My_test.Split(new char[] { ',' });//用逗号分割存入数组
    My_bgcolor = My_colorList[0];//得到数组中的第一个值
    My_tcolor = My_colorList[1];//得到数组中的第二个值
    }
    else//如果没有给两个默认值
    {
    My_bgcolor = "#FFDE94";
    My_tcolor = "#efe3ce";
    }
      

  2.   


            public bool IsSafe (string str, int prama)  //看你下面的方法。。str是条件语句,prama是你判断参数
            {
                if (prama==1)      //如果prama==1,进if
                {
                    if (Regex.IsMatch(str,"[0-9]"))   //str是数字
                    {
                        return true;
                    }
                    else                               //str是不是数字
                    {
                        return false;
                    }
                }
                else                                    //params !=1时进else
                {
                    if (str.IndexOf("and")>0 || str.IndexOf("or")>0 || str.IndexOf("'")>0)  //如果str中包含and,or,单引号
                    {
                        return false;
                    }
                    else    //不包话and,or,单引号
                    {
                        return true;
                    }
                    
                }
            }
      

  3.   


    谢谢LS各位帮忙
    0.0  那是不是就是我那样理解它的功能? 还是应该是别的意思?第二段代码那个判断参数格式 参数param  是哪个呀?  还是不太明白它的作用,是判断我输入的格式?。那个c_id标志增量+1的,,嗯 就是不太理解判断的哪个,判断这个有什么用。麻烦在细解释下……
      

  4.   


    判断是否出现这三个?and,or,单引号? 他们会在哪怎么出现的呀……没太理解
      

  5.   


    sql条件where如果多条件的话会用and或or关键字。。比如: select * from 表名 where 字段1 = XX and 字段2 = XXX;   //并且关系
           select * from 表名 where 字段1 = XX or 字段2 = XXX;    //或者关系
     
    单引号的目地没想到。。这个意思就是如果传入的param是非1的数。。那么where后面是单条件不能出现多条件的关键字
          
      

  6.   

    补充一下单引号明白是什么意思了。。就是你限制你的where条件的数据类型。。比如字符串类型的where 字符串类型的字段 = ‘XXX’;所以看你的下面sql语句。。应该是要限制条件My_c_id为int类型的
      

  7.   

    哦,太感谢了!   可是  是不是说这里貌似其实没怎么体现出这个bool判断的价值……?SQL语句是我自己写的,肯定只是一个条件,莫非是以后便于拓展?
    其他地面貌似就没调用这个判断了
      

  8.   


    IsSafe 判断你的SQL是否合法。。
      

  9.   


    如果我的SQL写的不合法 岂不是都查不到我想要的数据?亦或是如果数据庞大的时候,就会不注意数据内容了然后就错了我也不知道。所以说这个判断,是判断 我自己写的 有没有错?。