草庐IT

php - 我的页面浏览量计数器在主页上增加了 1 个单位,但在二级页面上增加了 3 个单位

coder 2024-04-26 原文

我正在执行一个函数来计算访问者、浏览量和 page_views。

现在我只是想计算页面浏览量,但我遇到了一个奇怪的问题。

我有一个包含以下列的统计表:“users,visits,page_views”。

现在我只想在用户访问某些页面时增加我的 page_views。

每次我访问我的主页时,我的 page_views 都会增加 1 个单位,但是当我访问一个二级页面时,我的列 page_views 会增加 3 个单位,而我也只想要 1 个单位。

你知道为什么会这样吗?

我认为问题出在我的 getHome() 函数中,因为如果我在 getHome() 之前或之后调用我的函数 countViews(),我会有不同的行为。但我找不到原因。

当我在 getHome() 之上设置 countViews() 时,似乎我在二级页面上调用了函数 countViews 的 3 次。

但我只在我的 index.php 文件上调用我的函数 countViews(),在这个函数下面我有我的 getHome() 函数,我可以在其中导航到我项目中的所有页面。

function countViews(){
    $pdo = start();
    //if Im not logged as admin
    if(!isset($_SESSION['admin'])){
        //So at first I read my table stats, if my table dont have any row,
        // I create a row with my columns with value of '0'.
        $readStats= $pdo->prepare("SELECT * FROM stats"); 
        $readStats->execute();  

        if($readStats->rowCount()<1){
            $insStats= $pdo->prepare("INSERT INTO stats(users, views, page_views) VALUES (?,?,?)");
            $insStats->bindValue(1,'0');
            $insStats->bindValue(2,'0');
            $insStats->bindValue(3,'0');
            $insStats->execute();
        }
       //If my table stats already have one row, I want to increment page_views.  
        else{
            $resultStats= $readStats->fetch(PDO::FETCH_ASSOC);
            $incrementPageViews = $resultStats['page_views'] + 1;
            $updatePageViews =  $pdo->prepare("UPDATE stats set page_views = ?");
            $updatePageViews ->bindParam(1,$incrementPageViews);
            $updatePageViews ->execute();
        }

    }
}

我的 index.php 是这样的:

<?php
  ob_start(); session_start();
  require_once('dts/db.php');
  $pdo = start();
  countViews();
 ?>
 <!DOCTYPE>
 <!-- here I have my css and js imports -->

<?php getHome(); ?>

我的二级页面:

<title>Untitled Document</title>
 </head> 
 <body>
 <!-- here I have my html -->
 </body>

getHome() 函数:

<?php
function getHome(){
    $url = $_GET['url'];
    $url = explode('/', $url);
    $url[0] = ($url[0] == NULL ? 'index' : $url[0]);

    if(file_exists('project/'.$url[0].'.php')){
        require_once('project/'.$url[0].'.php');
    }
    elseif(file_exists('project/'.$url[0].'/'.$url[1].'.php')){
        require_once('project/'.$url[0].'/'.$url[1].'.php');
    }
    else{
        require_once('project/404.php');
    }
}

?>

我的 table 是这样的:

最佳答案

我不知道为什么会这样,但我可以帮你找到。

在您的 countViews() 中执行以下操作:

echo "<pre>";
var_dump("Count Views beeing called from : ".__FILE__);
echo "</pre>";

如果您仍然找不到为什么要使用它,请告诉我,我会帮助您设置 xdebug 和分析,它会准确地告诉您包含的文件以及按照调用/包含的顺序调用的函数。

像这样: http://4.bp.blogspot.com/-BGYXo-b-bj8/TvIjJd0pBXI/AAAAAAAAF_0/ZssGFW9Rb7Y/s1600/drupal-6-cacherouter-memcache-fail.png

关于php - 我的页面浏览量计数器在主页上增加了 1 个单位,但在二级页面上增加了 3 个单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24745003/

有关php - 我的页面浏览量计数器在主页上增加了 1 个单位,但在二级页面上增加了 3 个单位的更多相关文章

  1. ruby - 检查数组是否在增加 - 2

    这个问题在这里已经有了答案:Checktoseeifanarrayisalreadysorted?(8个答案)关闭9年前。我只是想知道是否有办法检查数组是否在增加?这是我的解决方案,但我正在寻找更漂亮的方法:n=-1@arr.flatten.each{|e|returnfalseife

  2. ruby - 在 ASP 页面上 Mechanize 中断 - 2

    require'mechanize'agent=Mechanize.newlogin=agent.get('http://www.schoolnet.ch/DE/HomeDE.htm')agent.clicklogin.link_withtext:/Login/然后我得到Mechanize::UnsupportedSchemeError。 最佳答案 Mechanize不支持javascript但您可以将搜索字段添加到表单并为其分配搜索词并使用mechanize提交表单form=page.forms.firstform.add_fie

  3. ruby - 以毫秒为单位获取当前系统时间 - 2

    在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题:

  4. ruby-on-rails - prawnto 显示新页面时不会中断的表格 - 2

    我有可变数量的表格和可变数量的行,我想让它们一个接一个地显示,但如果表格不适合当前页面,请将其放在下一页,然后继续。我已将表格放入事务中,以便我可以回滚然后打印它(如果高度适合当前页面),但我如何获得表格高度?我现在有这段代码pdf.transactiondopdf.table@data,:font_size=>12,:border_style=>:grid,:horizontal_padding=>10,:vertical_padding=>3,:border_width=>2,:position=>:left,:row_colors=>["FFFFFF","DDDDDD"]pdf.

  5. ruby - 每个页面上的 Jekyll 分页 - 2

    据我们所知,Jekyll默认分页仅支持index.html,我想创建blog.html并在那里包含分页。有什么解决办法吗? 最佳答案 如果您创建一个名为/blog的目录并在其中放置一个index.html文件,那么您可以向_config.yml表示paginate_path:"blog/page:num"。不是使用根文件夹中的默认index.html作为分页器模板,而是使用/blog/index.html。分页器将根据需要生成类似/blog/page2/和/blog/page3/的页面。这将使您到达yourwebsite.com/b

  6. ruby-on-rails - RoR && "coming soon"页面 - 2

    我正在寻找一种简单的方法来为我在RubyonRails上的项目实现简单的“即将推出”(预启动)页面。用户应该能够留下电子邮件以便在项目启动时收到通知。有没有这样的插件\gem?或者我应该自己做... 最佳答案 LaunchingSoon是一个Rails插件。它还集成了MailChimp或Campaignmonitor. 关于ruby-on-rails-RoR&&"comingsoon"页面,我们在StackOverflow上找到一个类似的问题: https:/

  7. ruby - 如何让 GitHub 页面使用 master 分支? - 2

    我有一个使用Jekyll托管在GitHub上的静态网站。问题是,我真的不需要master分支,因为存储库唯一包含的是网站。这样我就必须gitcheckoutgh-pages,然后gitmergemaster,然后gitpushorigingh-pages。有什么简单的方法可以摆脱gh-pages分支并直接从master推送? 最佳答案 Theproblemis,Idon'treallyneedthemasterbranch,astheonlythingtherepositorycontainsisthewebsite.Isthere

  8. ruby - 如何设置 Mechanize 页面编码? - 2

    我试图通过点击一个链接获得一个带有ISO-8859-1编码的页面,所以代码类似于这样:page_result=page.link_with(:text=>'link_text').click到目前为止,我得到的结果编码错误,所以我看到的字符如下:'T�tulo:'insteadof'Título:'我尝试了几种方法,包括:使用代理在第一个请求中声明编码:@page_search=@agent.get(:url=>'http://www.server.com',:headers=>{'Accept-Charset'=>'ISO-8859-1'})说明页面本身的编码page_result.

  9. ruby-on-rails - 这个 C 和 PHP 程序员如何学习 Ruby 和 Rails? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它

  10. ruby-on-rails - 仅在某些页面上使用 rails_xss - 2

    我正在使用rails_xss运行Rails2.3.14插入。我有另一个用于创建管理仪表板View的插件。我的问题是rails_xss正在转义我的仪表板插件生成的所有HTML。有没有一种方法可以将rails_xss配置为不转义匹配example.com/admin或基于目录(app/views/admin)或任何类似的页面结果一样吗? 最佳答案 更新仪表板生成插件以使用raw或html_safe进行内容输出可能会更简单。 关于ruby-on-rails-仅在某些页面上使用rails_xss

随机推荐