类Php计数器

类Php计数器,php,jquery,ajax,Php,Jquery,Ajax,我想创建“like”计数器 目前我在php中使用ajax,并在like.php中单击按钮,更新数据库中的计数,并将计数返回到jquery $('btn').on('click',function(){ $.ajax({ url: 'like.php', type: 'post', data: someData, dataType: 'json', }).done(function(response){

我想创建“like”计数器

目前我在php中使用ajax,并在like.php中单击按钮,更新数据库中的计数,并将计数返回到jquery

$('btn').on('click',function(){

    $.ajax({
        url: 'like.php',
        type: 'post',
        data: someData,
        dataType: 'json',
    }).done(function(response){

        //increase like shown on response

    }).fail(function(jqXHR, textStatus, errorThrown) {

    }); 

 }); 
这将触发客户端的喜欢


我想改为在服务器端执行此操作,因此单击按钮调用php文件:

示例(我将其放在我的页面中):


然后在like.php中更新数据库中的计数,如上所述

2个问题:

  • 当我点击这个时,url是否可能不改变

  • 我如何通过这种方式从like.php回传like count?(因为我不像第一个示例那样使用ajax调用like.php)


  • 对于你的第一个问题:根本不! 但是你可以把它做成一个提交按钮,然后发到同一个url,而不会改变url,你可以通过提交推送数据

    对于第二个问题->您的like.php必须返回包含计数器值的整个html;)


    cheerio:)

    您的问题的答案是使用AJAX,就像您已经做的那样。为什么不尝试使用AJAX?这里要解决的实际问题是什么。否,url仍将更改。2.您可以使用值查询字符串(不建议)/或在会话中设置值(不建议)重定向回当前页面。顺便说一句,如果您重定向回当前页面,默认情况下,您可以从db中获取计数并将其显示在当前页面中。因此,不需要会话或查询字符串。不要做所有这些,只需使用ajax即可。这将是最好的解决方案。问题:你能做些什么来阻止我通过我用php或其他语言编写的作业调用此链接,并且每秒运行1000次??如何获得有效数据(意味着只允许一个用户投票一次)?您的方法对此没有逻辑。@justOnUnder数百万:AJAX版本中也存在同样的问题。虽然这可能是一个合理的问题,但似乎远远超出了问题的范围。@JustOnUnderMillions:我们不知道这是一个问题,也不知道这个应用程序还没有解决。我们可以很容易地建议OP在验证用户时不使用纯文本密码。这是一个潜在的问题,如果还没有解决,就应该解决,但与被问的问题无关。OP在构建其应用程序的范围内应该做很多事情。其中大部分与问题无关。
    <a href="like.php?id=45">like</a>