csdn帖子详细页中   有 对我有用[0]  丢个板砖[0] 
这个功能怎么实现。
只有登录的用户才能投,每一个用户只能点一下,怎么弄?请大家帮忙。

解决方案 »

  1.   

    获取到评价人的ID,一个ID只能评一次
      

  2.   

    cookie判断登录状态,session记录点击状态和时间,点击时取出seesion做比较
      

  3.   

    那 等session过期/流失了呢? 用户不是还可以点吗
      

  4.   

    优库上的“顶”和“踩”好像用的session之类的,因为,顶了一次,退出,之后还能顶。
    如果session过期/流失的话,那只能考虑数据库了吧。
    有个表放用户ID和顶过的帖子ID,该点击时判断此用户帖子ID和用户ID是否有对应的记录?
      

  5.   

    数据库啊,用session好像不能实现
      

  6.   

    1有对我有用[0] 丢个板砖[0]:
    查看当前页的源文件..照CSDN的改改..都是客户端事件用AJAX去服务器端操作数据
    2.只有登录的用户才能投,判断登录显示..
    3.每一个用户只能点一下
    1)在数据库中记录是否点过的标志..点过,在AJAX处理的时候就不操作数据直接返回..
    2)SESSION中记录 Session["ClickFlag"]=0;
    在AJAX在后台操作时判断
    if(Session["ClickFlag"]==1)
    {//点过
       return -1;//说明不处理
    }
      

  7.   

    我觉得因为.只有登录才能用这两个功能..
    所以Session["User"]有的时候才有操作这两个功能..
    那么点一次可以记一下Session["ClickFlag"]=1..
    再点的时候if(Session["ClickFlag"]==1)就直接返回不处理了..
      

  8.   

     LZ  建立扩展表 ,记录这个动作 ajax去判断 就可以了。
      

  9.   

    Session过期了,不是又能点击吗?
      

  10.   

    得用数据库比较好,ajax后台读取
      

  11.   

    扩展表 要怎么建呢?是建新表,还是在原表添加id topicid Replyid userid Top1(有用)Top0(板砖) 1(1,0 记动作)0(1,0) ...点一下 插入一条记录,再点击查询判断???
      

  12.   

    if(User.Identity.IsAuthentication) 
        登录后的操作 
    else 
        没有登录的操作
      

  13.   

    上面写错字母了if(User.Identity.IsAuthenticated) 
        登录后的操作 
    else 
        没有登录的操作
      

  14.   

    在那个按钮事件里,可以设个TAG
    当点击时,TAG为TRUE,复杂些再设置个时间,计算时间差小于某特定值时TAG始终为TRUE,然后下次再点击时根据这个TAG来决定是否更新值并提交到数据库中.
      

  15.   


    没SESSION为空就不让点了..
    要用程序控制..
    Session["user"]为空..不显示..或是没有点击事件你不会控制吗?
      

  16.   

    假设你有个会员的中间层..
    member.cs public static bool IsMemberLogin

         get
         {
             if (Session["User"]!=null)
                        return true;
                    else
                        return false;
        }
    }
    aspx页面<%if(Member.IsMemberLogin){%>
    <a onclick="xx(0);">对我有用</a><a onclick="xx(1);">丢个板专</a>
    <%}else{%>
     <a href="javascript:void(0);">对我有用</a><a  href="javascript:void(0);">丢个板专</a>
    <%}%>
      

  17.   

    假设上面xx(i)方法中有你用AJAX去其它页面xx.aspx处理..
    xx.aspx.cs中protected void Page_Load(object sender, EventArgs e)
    {
        string dealFlag=0;//0:对我有用,1:板专
         int ID=1;//业务ID
        if(Member.IsMemberLogin)
        {//当前会员登录
            if(Session["ClickFlag"]==null || Session["ClickFlag"]==null && Session["ClickFlag"].ToString()=="0")
            {
               //这里去处理 有用的 或板专的  
                   return 1;//处理成功
            }
            else
             {
               //这里是处理过的,直接返回
                 return -1;//-1就是已处理过的.
            }
        }
    }
      

  18.   

    用session+数据库的方式
    先判断session在判断数据库
      

  19.   

    看了CSDN的代码 应该是用ajax到后台判断 用户,点击次数的 <li><a href="javascript:;" class="dr nob" onclick="try{Estimate(this,'http://forum.csdn.net/PointForum/Forum/EstimateReply.aspx?forumId=3036657c-277c-476c-982d-75f154e09050&topicId=fff4e53e-a95c-4b37-9f52-9279a37db9eb&postDate=2009-09-04+08%3a31%3a01&replyId=59553746&type=0&v=13');LogClickCount(this,113);}catch(ex){}return false;">对我有用</a>[<span csdnid="racount_59553746" title="该回复被0个用户给予好评">0</span>]</li>
    <li><a href="javascript:;" class="gr nob" onclick="try{Estimate(this,'http://forum.csdn.net/PointForum/Forum/EstimateReply.aspx?forumId=3036657c-277c-476c-982d-75f154e09050&topicId=fff4e53e-a95c-4b37-9f52-9279a37db9eb&postDate=2009-09-04+08%3a31%3a01&replyId=59553746&type=1&v=13');LogClickCount(this,114);}catch(ex){}return false;">丢个板砖</a>[<span csdnid="rucount_59553746" title="该回复被0个用户给予差评">0</span>]</li>